Aautoranko

API reference

Articles

A read-only mirror of the posts on your WordPress site. The plugin syncs every post, not only the ones Autoranko wrote, and Autoranko keeps a new version each time a post's content changes. These endpoints return the latest version of each post.

2 endpointsBase URL https://autoranko.com/api/public/v1Every request needs a bearer token

List synced articles

GEThttps://autoranko.com/api/public/v1/sites/{id}/articles

Lists the posts the Autoranko plugin has synced from this WordPress site: your whole content library, not only the articles Autoranko wrote. Each post appears once, at its latest synced version, without the body. Fetch GET /sites/{id}/articles/{postId} for the full HTML.

Results are ordered by WordPress post ID, ascending. Page through them with limit and offset until a page returns fewer than limit items; there's no total count. A newly connected site returns an empty list until the plugin's first sync.

Request

Path parameters
Query parameters
  • limitintegerOptional
    Page size. Values outside 1–200 are clamped to that range, not rejected.
    Default
    50
    Range
    1–200
    Example
    50
  • offsetintegerOptional
    How many posts to skip, for pagination. Negative values count as 0.
    Default
    0
    Minimum
    0
    Example
    0
  • qstringOptional
    Case-insensitive search in titles (substring match). The search covers every stored version, so a post whose title changed can match an old title; that older version is then returned.
    Example
    aeration
curl "https://autoranko.com/api/public/v1/sites/1/articles?limit=200&offset=0" \
  -H "Authorization: Bearer $AUTORANKO_TOKEN"

Response

200OKOne page of synced posts: the latest version of each, without the body.

Response bodyapplication/json
  • articlesarray of objects
    Posts on this page, ordered by WordPress post ID.
    articles items(7)ArticleSummary
    • wp_post_idstring
      WordPress post ID: a 64-bit integer serialized as a string. Use it as {postId}.
    • titlestring
      Post title as of this version (up to 500 characters).
    • statusstring
      WordPress post status as reported by the plugin, such as publish or draft.
    • urlstring
      The post's permalink (empty if the plugin didn't send one).
    • post_modifiedstring (date-time) or null
      When the post was last modified in WordPress, or null if unknown.
    • synced_atstring (date-time)
      When Autoranko stored this version.
    • versioninteger
      Snapshot number: 1 for the first sync, then +1 each time the plugin syncs changed content. Title or status changes alone don't create a new version.
  • limitinteger
    The page size that was applied (after clamping).
  • offsetinteger
    The offset that was applied.

Examples

GET/sites/1/articles?limit=2Illustrative

Response · 200 OK
{
  "articles": [
    {
      "wp_post_id": "118",
      "title": "Lawn Aeration: When and How to Do It",
      "status": "publish",
      "url": "https://demo.autoranko.com/lawn-aeration-guide/",
      "post_modified": "2026-10-20T14:32:10.000Z",
      "synced_at": "2026-10-20T14:35:02.418Z",
      "version": 3
    },
    {
      "wp_post_id": "124",
      "title": "5 Signs Your Sprinkler Heads Need Replacing",
      "status": "draft",
      "url": "https://demo.autoranko.com/?p=124",
      "post_modified": "2026-10-24T09:12:44.000Z",
      "synced_at": "2026-10-24T09:15:01.927Z",
      "version": 1
    }
  ],
  "limit": 2,
  "offset": 0
}

The demo site has no synced posts yet, so these two are illustrative.

Errors

ErrorWhen
401missing_tokenThe Authorization: Bearer … header is missing.
401invalid_tokenThe token is malformed, unknown or revoked.
404not_foundNo site with this id belongs to your account (Site not found.).
429rate_limitedThe token made more than 120 requests in the last 60 seconds.

Get an article

GEThttps://autoranko.com/api/public/v1/sites/{id}/articles/{postId}

Returns the latest synced version of one WordPress post, including its full HTML content. postId is the WordPress post ID: wp_post_id in the article list, the same number WordPress shows in the post editor's URL.

version starts at 1 and goes up each time the plugin syncs a change to the post's content. Changes to the title or status alone don't create a new version, so title and status are as of the last content change.

Request

Path parameters
curl https://autoranko.com/api/public/v1/sites/1/articles/118 \
  -H "Authorization: Bearer $AUTORANKO_TOKEN"

Response

200OKThe latest synced version of the post, with full HTML.

Response bodyapplication/json
  • articleobject
    The post.
    article keys(8)Article
    • wp_post_idstring
      WordPress post ID: a 64-bit integer serialized as a string. Use it as {postId}.
    • versioninteger
      Snapshot number: 1 for the first sync, then +1 each time the plugin syncs changed content. Title or status changes alone don't create a new version.
    • titlestring
      Post title as of this version (up to 500 characters).
    • contentstring
      The post's full HTML, as synced by the plugin.
    • statusstring
      WordPress post status as reported by the plugin, such as publish or draft.
    • urlstring
      The post's permalink (empty if the plugin didn't send one).
    • post_modifiedstring (date-time) or null
      When the post was last modified in WordPress, or null if unknown.
    • synced_atstring (date-time)
      When Autoranko stored this version.

Examples

GET/sites/1/articles/118Illustrative

Response · 200 OK
{
  "article": {
    "wp_post_id": "118",
    "version": 3,
    "title": "Lawn Aeration: When and How to Do It",
    "content": "<h2>What lawn aeration does</h2>\n<p>Aeration pulls small plugs of soil out of the lawn so air, water and fertilizer reach the roots. It relieves the compaction left by foot traffic and mowing.</p>\n<h2>When to aerate</h2>\n<p>Aerate cool-season grasses in early fall and warm-season grasses in late spring, while the grass is growing fast enough to fill the holes.</p>",
    "status": "publish",
    "url": "https://demo.autoranko.com/lawn-aeration-guide/",
    "post_modified": "2026-10-20T14:32:10.000Z",
    "synced_at": "2026-10-20T14:35:02.418Z"
  }
}

The demo site has no synced posts yet, so this post is illustrative.

Errors

ErrorWhen
401missing_tokenThe Authorization: Bearer … header is missing.
401invalid_tokenThe token is malformed, unknown or revoked.
404not_foundNo site with this id belongs to your account (Site not found.).
404not_foundThe site has no synced post with this postId (Article not found.).
429rate_limitedThe token made more than 120 requests in the last 60 seconds.

API version v1. Every path on this page is relative to https://autoranko.com/api/public/v1.