List articles
Returns a paginated list of articles for the project the API key is scoped to. The article body is included for each item.
Returns a paginated list of articles for the project the API key is scoped to. The article body is included for each item.
Authorization
ApiKeyAuth AuthorizationBearer <token>
ArticlesQ API key sent as Authorization: Bearer aq_live_.... Each key is scoped to a single project.
In: header
Query Parameters
page?integer
limit?integer
includeDrafts?boolean
By default only published articles are returned. Set to true to also include draft articles (e.g. to preview work in progress).
Response Body
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 } = await articlesq.articles.list({ page: 1, limit: 20 });console.log(data?.articles);{
"articles": [
{
"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
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 1,
"totalPages": 1,
"hasNext": false,
"hasPrev": false
}
}{
"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:read",
"instance": "/api/v1/articles"
}
}