Strapi Integration

Connect BlogSEO to your Strapi CMS to automatically publish AI-generated articles directly to any content type, with full support for rich text, images, SEO metadata, and custom fields.

BlogSEO supports Strapi 5 (self-hosted or Strapi Cloud). Earlier versions of Strapi are not supported.

Prerequisites

Before connecting your Strapi instance, make sure you have:

  • A running Strapi 5 instance (self-hosted or Strapi Cloud)
  • Admin access to the Strapi admin panel
  • A Content Type created for your blog articles (e.g. articles, blog-posts, news-rooms)
  • The content type must include at least a Rich Text or Blocks field for the article body — BlogSEO uses this field to publish the blog content. Without it, the integration cannot work.

Creating an API Token

BlogSEO needs a Full-access API Token to read your content types, create and update entries, upload media, and publish content.

  1. Open your Strapi Admin panel
  2. Go to Settings → API Tokens → Create new API Token
  3. Give your token a descriptive name (e.g. BlogSEO)
  4. Set Token type to Full access
  5. Set Token duration to Unlimited (or as long as you want)
  6. Click Save, then copy the token — it is only shown once

For more details on API tokens, see the Strapi documentation on API Tokens.

Connecting BlogSEO to Strapi

  1. In your BlogSEO dashboard, navigate to Integrations → Strapi
  2. Click Connect Strapi
  3. Enter your Strapi CMS URL — this is the root URL of your Strapi instance (e.g. https://cms.example.com)
  4. Paste the API Token you created in the previous step
  5. Enter the Content type plural API ID — this is the plural API identifier of the content type you want BlogSEO to publish to

Finding the plural API ID

The plural API ID is the identifier Strapi uses in its REST API URLs. To find it:

  1. In Strapi Admin, go to Content-Type Builder
  2. Click on the content type you want to use
  3. Click the edit (pencil) icon next to the content type name
  4. Go to Advanced Settings
  5. The API ID (Plural) is shown there (e.g. articles, blog-posts, news-rooms)

After filling in the fields, click Test Connection to verify that BlogSEO can reach your Strapi instance and find the content type. Once the test passes, click Connect to save the integration.

Configuring Field Mapping

After connecting, BlogSEO automatically detects your content type's fields and maps them intelligently:

  • Rich Text / Blocks field: BlogSEO looks for a richtext or blocks field to publish the article body. If your content type has multiple rich text fields, you can select which one to use in the configuration modal.
  • Title field: Automatically detected from fields named title, headline, or name.
  • Slug field: Automatically generated from the article title and mapped to fields named slug or of type uid.
  • Media fields: You can select which media fields should receive the article's main image (e.g. banner, thumbnail, cover). BlogSEO uploads images directly to your Strapi media library.
  • Other scalar fields: Any remaining text, number, boolean, or enum fields are automatically filled by BlogSEO's AI based on your article content and existing entries in Strapi.

To update the field mapping, go to Integrations → Strapi and click Update Configuration.

Publishing Content

You have two options for publishing articles to Strapi:

  1. Auto-publish: Enable auto-publish in the Strapi integration settings. BlogSEO will automatically push articles to Strapi as soon as they are generated.
  2. Manual publish: From the BlogSEO dashboard, select a generated article and click Publish to push it to Strapi on demand.

Draft mode

When draft mode is enabled, articles are created as drafts in Strapi instead of being published immediately. This lets you review and edit the content in Strapi before making it live.

Tables

Strapi's Rich Text (Blocks) format does not support tables natively. When you have an active Strapi integration, BlogSEO automatically stops generating tables inside articles to avoid formatting issues.

Localization support

If your Strapi content type has localization enabled (i18n plugin), BlogSEO automatically detects available locales and maps translations accordingly. The primary article is published to your default locale, and any translations are created as localized variants of the same document.

Troubleshooting

Connection test fails

  • Check the URL: Make sure your Strapi CMS URL is correct and includes https://. It should be the root URL without any path (e.g. https://cms.example.com, not https://cms.example.com/admin).
  • Check the API Token: Ensure you copied the full token. Strapi tokens are long strings — if it looks too short, double-check in your Strapi Admin under Settings → API Tokens.
  • Token permissions: The token must be Full access. Custom or read-only tokens will not work.
  • Content type not found: Verify the plural API ID is correct. You can test it by visiting https://your-strapi-url/api/your-plural-api-id in a browser — you should see a JSON response.
  • Firewall / network issues: If your Strapi instance is self-hosted behind a firewall, make sure it is accessible from the public internet. BlogSEO's servers need to reach your Strapi API.

Articles not publishing

  • Check the content type has a rich text field: BlogSEO requires at least one field of type richtext, blocks, text, or string for the article body.
  • Check the API token hasn't expired: If you set a token duration, it may have expired. Create a new one in Strapi.
  • Check Strapi is running: Ensure your Strapi instance is online and responsive.

Images not uploading

  • Check the media library: Ensure your Strapi media library is not full or restricted.
  • Check the API token: Media uploads require a Full-access token.
  • Image URL accessibility: BlogSEO downloads your article's images and re-uploads them to Strapi. If the original image URLs are behind authentication or are expired, the upload will fail silently and the media field will be left empty.

Components not being filled in

BlogSEO's AI fills in nested components (e.g. an SEO component with meta_title and meta_description sub-fields) by looking at existing entries in your collection. If your collection is empty, the AI has no examples to learn from and will skip components entirely.

This is a Strapi limitation: the Strapi REST API does not return component schema details when querying content types. BlogSEO can only infer how components should be structured by examining real entries that already have those components populated.

To fix this, create at least one entry manually in your Strapi collection with all component fields filled in. On the next publish, BlogSEO will use that entry as a reference to correctly populate the components for new articles.

Content type fields not detected

  • If you recently added fields to your content type in Strapi, click Update Configuration in BlogSEO to refresh the schema.
  • BlogSEO refreshes the schema automatically on each publish, but the configuration modal uses cached metadata.

For additional support, contact our team through the in-app chat or at support@blogseo.io.

Was this page helpful?