Developers

Skribra for developers and AI agents

Everything machine-readable about Skribra, in one place: a public REST API that needs no key, an OpenAPI 3.1 specification, a markdown representation of every page on this site, and the two integration surfaces customers use to publish — the Content API and the webhook.

Public REST API
https://skribra.com/api/v1
No key. No sign-up. CORS open to any origin.
OpenAPI 3.1
/openapi.json
Both APIs in one document. YAML at /openapi.yaml.
Markdown
/llms.txt
Every page also answers Accept: text/markdown.
No authentication

The public content API

Everything skribra.com publishes is readable as JSON: the SEO glossary, the free tools, the agents, the product features, the competitor comparisons, pricing, and the blog Skribra writes for itself. Use it to evaluate Skribra, to cite it, or to build on it — no account required.

curl https://skribra.com/api/v1/search?q=internal+linking curl https://skribra.com/api/v1/glossary/backlink curl https://skribra.com/api/v1/pricing
  • GET /api/v1Index of every collection, with its URL
  • GET /api/v1/search?q=Search every page title and description on the site
  • GET /api/v1/pagesEvery page, with its HTML and markdown URLs
  • GET /api/v1/glossaryThe SEO glossary — definitions, key points, sources
  • GET /api/v1/agentsThe named agents, and the signal each one watches
  • GET /api/v1/featuresProduct features, with FAQs
  • GET /api/v1/comparisonsCompetitor comparisons and feature matrices
  • GET /api/v1/toolsThe free SEO and writing tools
  • GET /api/v1/pricingPlans, prices and limits
  • GET /api/v1/articlesSkribra's own published blog articles

Responses are { "data": … }; lists carry { "data": { "items": [], "pagination": {} } }. Errors carry a stable code and a message, the same shape as the Content API. Every resource includes a url and a markdown_url, so you can list cheaply as JSON and fetch only the page you need as markdown.

acceptmarkdown.com

Markdown for every page

Every page on this site has a markdown representation of the same content — not a summary. Ask for it by header or by suffix; both return Content-Type: text/markdown and Vary: Accept, so a cache between us cannot hand you the wrong one.

curl -H "Accept: text/markdown" https://skribra.com/glossary/backlink curl https://skribra.com/glossary/backlink.md curl https://skribra.com/index.md # the home page

Blog articles come back with the body converted to markdown, tables included. A path that does not exist answers 404 with a markdown body listing where to look next — the same list you are reading now.

Discovery

Machine-readable files

  • /llms.txt
    The site index in the llmstxt.org format: every page, grouped, with a one-line description. Long reference lists sit under ## Optional.
  • /llms-full.txt
    The whole site as one markdown file — home, agents, features, comparisons, tools and all glossary terms. Blog articles are linked, not inlined.
  • /openapi.json · /openapi.yaml
    OpenAPI 3.1 for both APIs. Also served at /api/openapi.json and /api/openapi.yaml.
  • /.well-known/api-catalog
    RFC 9727 linkset naming both APIs, their OpenAPI description and their documentation.
  • /sitemap.xml
    Every URL on the site, blog articles included.
  • /robots.txt
    All crawlers welcome, AI crawlers named explicitly.
For customers

The authenticated Content API

A different API for a different job: pull your own published articles out of Skribra and render them on your own site, with no webhook receiver and no database to keep in sync. One bearer key per account, three endpoints, at https://api.skribra.com/v1.

  • Content API documentation
    Authentication, the three endpoints, caching, incremental sync with updatedSince, error codes and rate limits.
  • Publish webhook documentation
    The push half: Skribra POSTs each article to an endpoint you host. Payload shape, signature verification, redirects and content-health flags.
  • CMS integrations
    WordPress, Shopify, Webflow and Notion, if you would rather not write code at all.