Contendar Help

List Blogs

List the blog posts in a project, newest first, with paging and filters.

This endpoint returns the post details and metadata only. It does not return the post body. Use Get a blog post to read the content.

GET /blogs

Authentication

Send your API key as a bearer token. See Authentication .

Query parameters

ParameterTypeDefaultNotes
projectIdUUIDrequiredThe project to read.
pageinteger1The page number, starting at 1.
pageSizeinteger25Rows per page. The maximum is 100.
searchstringnoneFree text search across the post title.
blogIdeasIdUUIDnoneReturn only the post for this blog idea.
completedbooleannoneSet to true to return only finished posts.

Response

{
  "data": [
    {
      "blogId": "b1a2c3d4-e5f6-4a70-8b9c-0d1e2f3a4b5c",
      "projectId": "8a7b6c5d-4e3f-2a1b-0c9d-8e7f6a5b4c3d",
      "title": "How to price a SaaS product",
      "slug": "how-to-price-a-saas-product",
      "status": "completed",
      "wordCount": 1840,
      "qualityScore": 87,
      "metadata": {
        "summary": "A short guide to value based pricing for early stage SaaS.",
        "keywords": ["saas pricing", "value based pricing"],
        "coverImage": "A pricing table on a laptop screen, soft daylight.",
        "callToAction": "Start your free trial",
        "metaDescription": "Learn how to price a SaaS product with a value based method.",
        "estimatedReadTimeMinutes": 7
      },
      "createdAt": "2026-08-25T08:30:00.000Z",
      "updatedAt": "2026-08-26T09:00:00.000Z"
    }
  ],
  "pagination": { "page": 1, "pageSize": 25, "total": 1, "totalPages": 1 }
}

Response fields

FieldTypeNotes
blogIdstringThe ID of the blog post. Use it with Get a blog post .
projectIdstringThe project the post belongs to.
titlestringThe post title.
slugstringThe URL slug for the post.
statusstringThe generation status. completed means the post is finished and ready to use.
wordCountnumber or nullThe word count of the finished post.
qualityScorenumber or nullOur quality score for the post, from 0 to 100.
metadataobject or nullSEO and summary fields. null until the post has content.
metadata.summarystring or nullA short summary of the post.
metadata.keywordsarrayThe keywords the post targets.
metadata.coverImagestring or nullA text description of the cover image.
metadata.callToActionstring or nullThe call to action for the post.
metadata.metaDescriptionstring or nullThe SEO meta description.
metadata.estimatedReadTimeMinutesnumber or nullThe estimated read time in minutes.
createdAtstringWhen the post was created, as an ISO date.
updatedAtstringWhen the post was last changed, as an ISO date.

Example

curl "https://app.contendar.com/api/v1/blogs?projectId=YOUR_PROJECT_ID&completed=true&page=1&pageSize=25" \
  -H "Authorization: Bearer ck_your_key_here"

Related pages

Was this helpful?