Publishing and the article API

Pull published articles into your site with the read-only article API, with curl examples and ISR patterns.

The model: you pull, we serve

Recited does not push content into your CMS. Published articles are served by a read-only JSON API, and your site pulls them on whatever schedule suits it. This works with any stack that can make an HTTP request.

The endpoints

List all published articles for a project. Authenticate with a project API key from Settings > API keys & MCP (see API keys):

bash
curl "https://app.recitedai.com/api/v1/seo/articles" \
  -H "Authorization: Bearer recitedai_your_project_key"

Articles come back newest first with the metadata needed to build routes: id, slug, tags, and publish date. Bodies are omitted by default; add includeMarkdown=true for full CommonMark bodies, and tag= to filter by an exact, case-sensitive tag (tags are edited in the article sidebar; the match is case sensitive, so pick one casing convention):

bash
curl "https://app.recitedai.com/api/v1/seo/articles?includeMarkdown=true&tag=blog" \
  -H "Authorization: Bearer recitedai_your_project_key"

Fetch one article by id:

bash
curl "https://app.recitedai.com/api/v1/seo/articles/ARTICLE_ID" \
  -H "Authorization: Bearer recitedai_your_project_key"

The single-article endpoint also accepts a per-article token, minted once from the article's Share modal. Use it when one page or partner needs one article without holding a project-wide key.

A typical Next.js ISR integration

Fetch the list at build time, render each article from its markdown, and let incremental revalidation keep pages fresh:

ts
// app/blog/[slug]/page.tsx
export const revalidate = 3600; // re-pull hourly

async function getArticles() {
  const res = await fetch(
    'https://app.recitedai.com/api/v1/seo/articles?includeMarkdown=true&tag=blog',
    { headers: { Authorization: 'Bearer ' + process.env.RECITED_API_KEY } },
  );
  const { articles } = await res.json();
  return articles;
}

With hourly revalidation, publishing in Recited means the article is live on your site within the hour, with no deploy. Any static site generator can do the equivalent with a scheduled rebuild.

Practical notes

  • Keep the API key server-side, in an environment variable. Never ship it to the browser.
  • The markdown is standard CommonMark; render it with your usual pipeline.
  • Article pulls are not counted against the agent daily allowance today. Cache them anyway: an hourly revalidate is the intended pattern, and a pull on every page view is wasteful for your site before it is for ours. See rate limits.
  • Read-only keys are all this API needs; reserve read-write keys for the MCP server.