curl --request PATCH \
--url https://api.yalg.ai/v1/blog/articles/{id} \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"title": "How founder stories become useful content",
"keywordId": "018f9f48-08ab-71c2-887d-bbca79017364"
}
'const options = {
method: 'PATCH',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
title: 'How founder stories become useful content',
keywordId: '018f9f48-08ab-71c2-887d-bbca79017364'
})
};
fetch('https://api.yalg.ai/v1/blog/articles/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.yalg.ai/v1/blog/articles/{id}"
payload = {
"title": "How founder stories become useful content",
"keywordId": "018f9f48-08ab-71c2-887d-bbca79017364"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text){
"id": "018f9f54-22d4-783a-a3d9-8bcdf1717032",
"title": "How founder stories become useful content",
"status": "draft",
"markdown": "# How founder stories become useful content",
"createdAt": "2026-06-20T17:24:39.000Z",
"updatedAt": "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": 404,
"message": "Resource not found",
"error": "Not Found",
"code": "not_found"
}{
"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"
}Update blog article
Update blog article through the YALG API. Requests are scoped to the authenticated API key owner; cross-owner resource IDs return 404.
curl --request PATCH \
--url https://api.yalg.ai/v1/blog/articles/{id} \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"title": "How founder stories become useful content",
"keywordId": "018f9f48-08ab-71c2-887d-bbca79017364"
}
'const options = {
method: 'PATCH',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
title: 'How founder stories become useful content',
keywordId: '018f9f48-08ab-71c2-887d-bbca79017364'
})
};
fetch('https://api.yalg.ai/v1/blog/articles/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.yalg.ai/v1/blog/articles/{id}"
payload = {
"title": "How founder stories become useful content",
"keywordId": "018f9f48-08ab-71c2-887d-bbca79017364"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text){
"id": "018f9f54-22d4-783a-a3d9-8bcdf1717032",
"title": "How founder stories become useful content",
"status": "draft",
"markdown": "# How founder stories become useful content",
"createdAt": "2026-06-20T17:24:39.000Z",
"updatedAt": "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": 404,
"message": "Resource not found",
"error": "Not Found",
"code": "not_found"
}{
"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
YALG Developer API key. Send it in the x-api-key header from a server-side environment only.
Path Parameters
Resource identifier.
"018f9f40-7d7b-7712-9b0f-2e5d9fd5df3f"
Body
Updated article topic or working title.
1 - 500"How founder stories become useful content"
Updated editorial angle, positioning, or constraints for the article.
2000"Write for B2B founders who publish on LinkedIn."
Replacement SEO keyword identifiers to target in the article.
50["018f9f48-08ab-71c2-887d-bbca79017364"]
Replacement blog fuel anecdote identifiers to use as source material.
50["018f9f53-7a79-703c-993f-588d176bf5a6"]
Updated output language code.
10"en"
Editable Markdown body for the article draft or final article.
"# How founder stories become useful content"
Response
Successful response. Update blog article.
Blog article generation job.