Quickstart
Read your articles from the API in any language.
1. Set where articles live
Dashboard → your site → Settings → Site and URLs → Articles live under: the path your site serves them from, for example /blog. SEO for SaaS builds every canonical URL and every link between articles on it. If you leave it empty, articles live at the site root.
2. Collect three values
In the dashboard, open your site → Delivery:
Project ID, from the Connection card.
A content key: Content API keys → Create key. The dashboard shows it once, so store it as a secret.
The signing secret, when you add the webhook (step 5): Webhook → Signing secret → Reveal.
SEOFORSAAS_PROJECT_ID=YOUR_PROJECT_IDSEOFORSAAS_CONTENT_KEY= # Delivery → Content API keys → Create keySEOFORSAAS_WEBHOOK_SECRET= # Delivery → Webhook → Signing secret → Reveal3. List your articles
Newest first, up to 100 per page. The TypeScript tab uses the TypeScript client, one dependency-free file.
curl "https://api.seoforsaas.dev/api/v1/projects/YOUR_PROJECT_ID/content?page=1&limit=100" \ -H "Authorization: Bearer $SEOFORSAAS_CONTENT_KEY"4. Read one article
Read it by slug, the value your article route receives. The response includes links to related articles.
curl "https://api.seoforsaas.dev/api/v1/projects/YOUR_PROJECT_ID/content/by-slug/how-google-decides-what-to-show" \ -H "Authorization: Bearer $SEOFORSAAS_CONTENT_KEY"5. Refresh on publish
Add your URL in Delivery → Webhook. After you reveal the signing secret, we sign every delivery with Standard Webhooks. Before that, deliveries go out unsigned. Verify the signature, then rebuild or revalidate.
POST <your webhook URL>content-type: application/jsonwebhook-id: msg_…webhook-timestamp: 1759132800webhook-signature: v1,…{ "event": "content.created", "projectId": "YOUR_PROJECT_ID" }6. Render the article
The body is an array of typed blocks. Render them with the React components, or with your own markup from the block reference. The framework guides put all of this together: Next.js, Astro, others.