Start free. Scale as your blog grows.Get started

API reference

Authors API

Retrieve the authors in your ContioReach workspace.

Use it to build author pages and bylines, or to resolve an author slug before requesting their posts.

Endpoint

GEThttps://cms-api.contioreach.com/v1/authors
curl
curl "https://cms-api.contioreach.com/v1/authors" \
  -H "X-API-Key: YOUR_API_KEY"

Query parameters

ParameterTypeDescription
pagenumberPage of results to return. Starts at 1.
limitnumberAuthors per page.
idstringReturn the single author matching this id.
slugstringReturn the single author matching this slug.

Response

GET /v1/authors?limit=1
{
  "success": true,
  "data": [
    {
      "id": "ffb69c16-be70-47f1-b206-d7464c0bdbd5",
      "name": "Team Contioreach",
      "slug": "team-contioreach",
      "image": "https://contiocdn.com/…/author.webp",
      "bio": "Team Contioreach publishes expert content on SEO, AI search, content strategy, and automation…",
      "twitter": null,
      "website": null,
      "postCount": 64
    }
  ],
  "meta": {
    "page": 1,
    "limit": 1,
    "total": 1,
    "totalPages": 1,
    "hasNextPage": false,
    "hasPrevPage": false
  }
}

Author fields

FieldTypeDescription
idstringUnique identifier.
namestringDisplay name.
slugstringURL-safe identifier for your author route.
imagestring | nullAbsolute URL of the author avatar.
biostring | nullShort biography.
twitterstring | nullTwitter or X handle.
websitestring | nullPersonal or company website.
postCountnumberNumber of published posts by the author.

twitter, website, image, and bio can all be null. Render bylines and author cards so a missing field collapses rather than leaving a gap.

The same author objects appear inline on every post, in the authors array, minus postCount. If you are already fetching the article, read post.authors[0] for the byline instead of making a second request.

Examples

List every author

JavaScript
const res = await fetch(
  "https://cms-api.contioreach.com/v1/authors",
  { headers: { "X-API-Key": process.env.CMS_API_KEY } }
);

const { data: authors } = await res.json();

Resolve an author page

JavaScript
const authorRes = await fetch(
  `https://cms-api.contioreach.com/v1/authors?slug=${slug}`,
  { headers: { "X-API-Key": process.env.CMS_API_KEY } }
);

const author = (await authorRes.json()).data[0];

if (!author) notFound();

const postsRes = await fetch(
  `https://cms-api.contioreach.com/v1/blogs?author=${slug}&limit=12&minimal=true`,
  { headers: { "X-API-Key": process.env.CMS_API_KEY } }
);

const { data: posts, meta } = await postsRes.json();

Byline from a post you already have

JavaScript
const author = post.authors?.[0] || null;

// author.name, author.image, author.bio

Errors

StatusCodeMeaning
401INVALID_API_KEYThe API key is missing, incorrect, or inactive.
429USAGE_LIMIT_EXCEEDEDYour plan's monthly API calls are used up. Requests resume when the allowance resets.

A slug that matches nothing returns 200 with an empty data array rather than a 404, so check the array length before rendering.

Was this page helpful?