Daily Blog Post Docs

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
}
FieldRequiredDescription
idyesStable identifier — the same id your push endpoint returned when the article was published.
statusyes"published" when the article is publicly visible. Any other value means it exists but is not public.
urlnoPublic URL of the article.
slugnoURL slug — used as a fallback to match articles.
titlenoCurrent title on your site.
contentnoCurrent HTML content on your site — required for resync and adoption.
published_atnoISO 8601 publication date.
completenoSet 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 complete is true, 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 a content that 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.