Create an article
Creates a new article in the project the API key is scoped to. Use this when you generate content with your own agents and want ArticlesQ to host it (e.g. for the backlinks exchange). The article body is markdown.
Creates a new article in the project the API key is scoped to. Use this when you generate content with your own agents and want ArticlesQ to host it (e.g. for the backlinks exchange). The article body is markdown.
Authorization
ApiKeyAuth ArticlesQ API key sent as Authorization: Bearer aq_live_.... Each key is scoped to a single project.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
import ArticlesQ from "@articlesq/sdk";const articlesq = new ArticlesQ({ apiKey: process.env.ARTICLESQ_API_KEY });const { data, error } = await articlesq.articles.create({ title: "10 Link Building Strategies That Actually Work", keyword: "link building strategies", content: "# Introduction\n\nYour markdown here...",});{
"article": {
"id": "clx1abc234abcdef0123456789",
"slug": "best-crm-for-startups",
"title": "Best CRM for Startups in 2026",
"keyword": "best crm for startups",
"metaDescription": "A practical guide to choosing the right CRM when you're under 50 employees.",
"content": "# Introduction\n\nIf you're a startup founder evaluating CRM tools...",
"status": "draft",
"datePublished": "2026-05-23T00:00:00.000Z",
"dateModified": null
}
}{
"error": {
"title": "Unauthorized",
"status": 401,
"code": "missing_auth",
"message": "Missing Authorization header",
"instance": "/api/v1/articles",
"details": {
"property1": {},
"property2": {}
}
}
}{
"error": {
"title": "Unauthorized",
"status": 401,
"code": "missing_auth",
"message": "Missing Authorization header",
"instance": "/api/v1/articles"
}
}{
"error": {
"title": "Forbidden",
"status": 403,
"code": "insufficient_scope",
"message": "Missing required scope: articles:write",
"instance": "/api/v1/articles"
}
}{
"error": {
"title": "Error",
"status": 409,
"code": "slug_conflict",
"message": "An article with that slug already exists in this project.",
"instance": "/api/v1/articles"
}
}Get article by slug GET
Returns a single article by slug, scoped to the project the API key authorises. Slugs are unique within a project.
Update an article PATCH
Update editable fields on an article — currently `content` and `metaDescription`. Send only the fields you want to change. Returns the full updated article.