Contendar Help

Get Blog

Get one blog post by its ID, with the full content in three formats.

GET /blogs/{blogId}

Use this while you wait for the native WordPress and Webflow integrations. Pull the post in the format your tool needs, then push it into your CMS.

Authentication

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

Path parameters

ParameterTypeNotes
blogIdUUIDThe ID of the blog post. Get it from List blog posts .

Query parameters

ParameterTypeNotes
projectIdUUIDRequired. The project the post belongs to.

Response

{
  "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
  },
  "content": {
    "markdown": "# How to price a SaaS product

Value based pricing starts with...",
"html": "How to price a SaaS product
Value based pricing starts with...",
"plainText": "How to price a SaaS product

Value based pricing starts with..."
},
"images": [
{
"type": "cover-image",
"altText": "A pricing table on a laptop screen",
"url": " https://storage.googleapis.com/...signed ...",
"createdAt": "2026-08-25T08:31:00.000Z"
}
],
"createdAt": "2026-08-25T08:30:00.000Z",
"updatedAt": "2026-08-26T09:00:00.000Z"
}

See List blog posts for the meaning of the shared fields.

Content

The content object holds the same post in three formats. Pick the one your tool accepts.

FieldFormatUse it for
content.markdownMarkdownThe source format. Best for a CMS that accepts Markdown.
content.htmlHTMLPaste straight into WordPress, Webflow, or any rich text editor.
content.plainTextPlain textText only, no tags. Good for previews, search, or email.

The content is taken from the latest version of the post. If the post has been rewritten, you get the rewritten version.

Images

FieldTypeNotes
typestringOne of cover-image, blog-image, newsletter-image, content-plan-image.
altTextstringThe alt text for the image.
urlstring or nullA temporary URL for the image. It expires. Fetch the post again for a fresh URL.
createdAtstringWhen the image was created, as an ISO date.

Errors

Returns 404 if no blog post with that ID exists in the project.

Example

curl "https://app.contendar.com/api/v1/blogs/b1a2c3d4-e5f6-4a70-8b9c-0d1e2f3a4b5c?projectId=YOUR_PROJECT_ID" \
  -H "Authorization: Bearer ck_your_key_here"

Related pages

Was this helpful?