Analyze and store the user website context
curl --request POST \
--url https://api.yalg.ai/v1/blog/site/analyze \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"siteUrl": "https://yalg.ai"
}
'const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({siteUrl: 'https://yalg.ai'})
};
fetch('https://api.yalg.ai/v1/blog/site/analyze', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.yalg.ai/v1/blog/site/analyze"
payload = { "siteUrl": "https://yalg.ai" }
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"siteUrl": "https://yalg.ai",
"audience": "B2B creators and founders",
"positioning": "Turn personal anecdotes into publishable content.",
"recap": {
"siteName": "YALG",
"detectedLanguage": "en",
"oneLineSummary": "YALG turns stories into a multi-format content pipeline.",
"positioning": "Practical content production cockpit.",
"offerSummary": "Plan, generate, review, and publish content.",
"targetAudience": "Creators, consultants, founders, and operators",
"brandVoice": "Focused, capable, and calm",
"proofPoints": [
"Multi-format content workflow"
],
"contentPillars": [
"Content planning",
"Blog production"
],
"seoAngles": [
"AI blog writing workflow"
],
"writingGuidelines": [
"Stay practical and concrete"
],
"ctaGuidance": "Invite readers to set up their content pipeline.",
"avoidInArticles": [
"Do not overstate automated outcomes"
],
"confidence": "high",
"visualIdentity": {
"colors": [
{
"hex": "#ff3366",
"role": "accent",
"label": "YALG accent",
"source": "theme-color"
},
{
"hex": "#09090b",
"role": "text",
"label": "Ink",
"source": "css"
}
],
"logo": {
"url": "https://yalg.ai/logo.svg",
"alt": "YALG",
"kind": "svg",
"background": "transparent"
},
"typography": {
"fontFamilies": [
"Inter"
],
"style": "Modern sans-serif"
},
"imageryStyle": "Clean product-led editorial visuals.",
"layoutCues": [
"High contrast",
"Compact cards"
],
"coverImageGuidelines": [
"Use brand accent as a subtle cue"
],
"avoidVisuals": [
"Generic stock photos"
],
"confidence": "high"
}
},
"analyzedAt": "2026-06-20T17:24:39.000Z"
}{
"statusCode": 400,
"message": "Validation failed",
"error": "Bad Request",
"code": "validation_failed"
}{
"statusCode": 401,
"message": "Invalid or missing API key",
"error": "Unauthorized",
"code": "unauthorized"
}{
"statusCode": 403,
"message": "Access denied",
"error": "Forbidden",
"code": "forbidden"
}{
"statusCode": 409,
"message": "Resource conflict",
"error": "Conflict",
"code": "conflict"
}{
"statusCode": 429,
"message": "Rate limit exceeded",
"error": "Too Many Requests",
"code": "rate_limit_exceeded",
"retryAfter": 60
}{
"statusCode": 500,
"message": "Internal server error",
"error": "Internal Server Error",
"code": "internal_server_error"
}Blog
Analyze and store the user website context
Analyze and store the user website context. Requests are scoped to the authenticated API key owner; cross-owner resource IDs return 404.
POST
/
v1
/
blog
/
site
/
analyze
Analyze and store the user website context
curl --request POST \
--url https://api.yalg.ai/v1/blog/site/analyze \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"siteUrl": "https://yalg.ai"
}
'const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({siteUrl: 'https://yalg.ai'})
};
fetch('https://api.yalg.ai/v1/blog/site/analyze', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.yalg.ai/v1/blog/site/analyze"
payload = { "siteUrl": "https://yalg.ai" }
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"siteUrl": "https://yalg.ai",
"audience": "B2B creators and founders",
"positioning": "Turn personal anecdotes into publishable content.",
"recap": {
"siteName": "YALG",
"detectedLanguage": "en",
"oneLineSummary": "YALG turns stories into a multi-format content pipeline.",
"positioning": "Practical content production cockpit.",
"offerSummary": "Plan, generate, review, and publish content.",
"targetAudience": "Creators, consultants, founders, and operators",
"brandVoice": "Focused, capable, and calm",
"proofPoints": [
"Multi-format content workflow"
],
"contentPillars": [
"Content planning",
"Blog production"
],
"seoAngles": [
"AI blog writing workflow"
],
"writingGuidelines": [
"Stay practical and concrete"
],
"ctaGuidance": "Invite readers to set up their content pipeline.",
"avoidInArticles": [
"Do not overstate automated outcomes"
],
"confidence": "high",
"visualIdentity": {
"colors": [
{
"hex": "#ff3366",
"role": "accent",
"label": "YALG accent",
"source": "theme-color"
},
{
"hex": "#09090b",
"role": "text",
"label": "Ink",
"source": "css"
}
],
"logo": {
"url": "https://yalg.ai/logo.svg",
"alt": "YALG",
"kind": "svg",
"background": "transparent"
},
"typography": {
"fontFamilies": [
"Inter"
],
"style": "Modern sans-serif"
},
"imageryStyle": "Clean product-led editorial visuals.",
"layoutCues": [
"High contrast",
"Compact cards"
],
"coverImageGuidelines": [
"Use brand accent as a subtle cue"
],
"avoidVisuals": [
"Generic stock photos"
],
"confidence": "high"
}
},
"analyzedAt": "2026-06-20T17:24:39.000Z"
}{
"statusCode": 400,
"message": "Validation failed",
"error": "Bad Request",
"code": "validation_failed"
}{
"statusCode": 401,
"message": "Invalid or missing API key",
"error": "Unauthorized",
"code": "unauthorized"
}{
"statusCode": 403,
"message": "Access denied",
"error": "Forbidden",
"code": "forbidden"
}{
"statusCode": 409,
"message": "Resource conflict",
"error": "Conflict",
"code": "conflict"
}{
"statusCode": 429,
"message": "Rate limit exceeded",
"error": "Too Many Requests",
"code": "rate_limit_exceeded",
"retryAfter": 60
}{
"statusCode": 500,
"message": "Internal server error",
"error": "Internal Server Error",
"code": "internal_server_error"
}Authorizations
ApiKeyAuthbearer
YALG Developer API key. Send it in the x-api-key header from a server-side environment only.
Body
application/json
Required string length:
3 - 1000Example:
"https://example.com"
Response
Created successfully. Analyze and store the user website context.
Stored website context for blog generation.
⌘I