Custom API — Read endpoint
Optional read endpoint convention that lets Daily Blog Post verify, resync and adopt the articles living on your custom site.
Custom API — Read endpoint (optional)
The custom API integration pushes articles to your endpoint. If you also expose a read endpoint, Daily Blog Post can reconcile both directions:
- Verify that every article we pushed is still live on your site.
- Resync our copy when you edited an article on your side — your site is always the source of truth.
- Adopt articles that already exist on your site but not in Daily Blog Post, so they can be improved from the dashboard.
Without a read endpoint the push integration works exactly as before — this convention is entirely optional.
Configuration
In Settings → Integrations → API, fill the Read URL field with the
https URL of your listing endpoint. Daily Blog Post calls it with a GET
request, sending the same authentication header you configured for the push
endpoint.
Contract
Your endpoint must answer 200 with JSON:
{
"articles": [
{
"id": "42",
"status": "published",
"url": "https://example.com/blog/my-article",
"slug": "my-article",
"title": "My article",
"content": "<h1>My article</h1><p>…</p>",
"published_at": "2026-08-02T10:00:00.000Z"
}
],
"complete": true
}| Field | Required | Description |
|---|---|---|
id | yes | Stable identifier — the same id your push endpoint returned when the article was published. |
status | yes | "published" when the article is publicly visible. Any other value means it exists but is not public. |
url | no | Public URL of the article. |
slug | no | URL slug — used as a fallback to match articles. |
title | no | Current title on your site. |
content | no | Current HTML content on your site — required for resync and adoption. |
published_at | no | ISO 8601 publication date. |
complete | no | Set to false if the listing is partial (e.g. truncated). Defaults to true. |
Semantics
- The listing must cover all the blog articles managed through
Daily Blog Post, whatever their status. When
completeistrue, an article we pushed that is absent from the listing is treated as deleted on your site and archived in Daily Blog Post. - If you cannot guarantee a full listing, return
complete: false: absent articles are then left untouched (unverifiable) instead of archived. - Articles present in the listing with
status: "published"and acontentthat differs from our copy are resynced into Daily Blog Post (your version wins). - Published articles in the listing that Daily Blog Post does not know yet are imported as published articles, ready to be optimized from the dashboard.
Reconciliation runs weekly. The endpoint should answer within 20 seconds; listings are capped at 5 000 articles.
Redirects
Daily Blog Post follows a redirect only when it stays on your site: same
host, or between the apex domain and its www. variant (https://example.com
→ https://www.example.com), on https. A redirect to any other host, or a
downgrade to http, is refused and the check is recorded as failed. Point the
Read URL at the final host whenever you can.