Skip to content

Knowledge Management · Beta

Strapi
API integration

Ship Knowledge Management features without building the integration. Full Strapi API access via Proxy, normalized data through Unified APIs, and 30+ MCP-ready tools for AI agents — all extensible to your exact use case.

Built for specific customer use cases. Issues are resolved quickly.

Talk to us
Strapi

Use Cases

Why integrate with Strapi

Common scenarios for SaaS companies building Strapi integrations for their customers.

01

Embed Strapi as a content source for localization platforms

Translation and localization SaaS companies can let users connect their Strapi instance, pull source documents by content type, and push translated versions back — eliminating manual import/export workflows.

02

Power SEO and content optimization workflows

SEO platforms can read live content from a customer's Strapi CMS, analyze it, and write optimized titles, metadata, and body copy back directly — turning recommendations into one-click publishes.

03

Push generated assets into customers' media libraries

DAM tools, AI image generators, and design platforms can offer an 'Export to Strapi' action that uploads files into the customer's Strapi Media Library and attaches them to the right content entry.

04

Surface help center content in support widgets

Customer support and in-app widget platforms can pull FAQs and support articles from a customer's Strapi instance and display them natively, without forcing teams to duplicate knowledge bases.

05

Automate user and role provisioning into Strapi

Identity, SSO, and HR platforms can use the Unified User Directory API to create, update, and revoke Strapi users and roles whenever employees are onboarded or offboarded — keeping knowledge base access in sync.

What You Can Build

Ship these features with Truto + Strapi

Concrete product features your team can ship faster by leveraging Truto’s Strapi integration instead of building from scratch.

01

Dynamic content type sync

Fetch, create, and update entries across any custom Strapi content type using the document endpoints, with the plural_api_id resolved per-customer at runtime.

02

Contextual media uploads

Upload files to a customer's Strapi Media Library and attach them to a specific entry and field using ref, refId, and field parameters in a single call.

03

Two-way content publishing

Pull documents into your product for editing, translation, or enrichment, then write changes back to Strapi using update_a_strapi_document_by_id without leaving your UI.

04

Unified user and role provisioning

Use the Unified User Directory API to list, create, update, and delete Strapi users and roles alongside other CMS and knowledge tools through one consistent schema.

05

Auth and session lifecycle management

Trigger Strapi auth flows — register, login session, refresh, logout, password reset, and email confirmation — directly from your app to manage end-user access programmatically.

06

Media library browser

List, retrieve, and delete files in a customer's Strapi Media Library to power an embedded asset picker or cleanup tooling inside your product.

SuperAI

Strapi AI agent tools

Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.

create_a_strapi_upload

Upload one or more files to Strapi's Media Library, optionally linking them to a specific content-type entry. Returns the uploaded file object(s). Required: files. To link files to an entry, also supply ref, refId, and field.

list_all_strapi_documents

List all documents from a Strapi content type. Returns an array of document records for the specified collection. Required: plural_api_id (the plural API ID of the target content type, e.g., 'articles').

get_single_strapi_document_by_id

Get a single document from a Strapi content type by id. Returns the full document record. Required: plural_api_id and id.

create_a_strapi_document

Create a new document in a Strapi content type. Returns the created document record including its id. Required: plural_api_id and a data body containing the document fields.

update_a_strapi_document_by_id

Update an existing document in a Strapi content type by id. Returns the updated document record. Required: plural_api_id, id, and a data body with the fields to update.

delete_a_strapi_document_by_id

Delete a document from a Strapi content type by id. Returns an empty response on success. Required: plural_api_id and id.

list_all_strapi_upload_files

List all uploaded files in Strapi. Returns an array of file objects.

get_single_strapi_upload_file_by_id

Get a single uploaded file in Strapi by id. Returns the file object details. Required: id.

delete_a_strapi_upload_file_by_id

Delete an uploaded file in Strapi by id. Returns an empty response on success. Required: id.

create_a_strapi_auth_register

Register a new local user in Strapi. Returns a JWT token and the created user object including id, username, and email. Required: username, email, password.

create_a_strapi_auth_forgot_password

Trigger a forgot-password email flow in Strapi for a registered user. Sends a password-reset email to the provided address. Required: email.

create_a_strapi_auth_reset_password

Reset a Strapi user's password using a password reset code. Returns the authenticated user's jwt token and user object on success. Required: code, password, passwordConfirmation.

create_a_strapi_auth_change_password

Change the authenticated Strapi user's password. Returns the updated user object along with a new JWT token. Required: currentPassword, password, passwordConfirmation.

list_all_strapi_auth_email_confirmation

Confirm a Strapi user's email address using the confirmation token sent via email. Typically redirects or returns a confirmation response on success. Required: confirmation.

create_a_strapi_auth_send_email_confirmation

Send an email confirmation message to a Strapi user. Triggers a confirmation email to the provided address so the user can verify their account. Required: email.

create_a_strapi_auth_refresh

Refresh a Strapi authentication session by exchanging a refresh token for a new JWT access token. Returns a new JWT. Required: refreshToken.

create_a_strapi_auth_logout

Log out the currently authenticated Strapi user by invalidating their active session token. Returns a confirmation response on success. No additional parameters are required.

list_all_strapi_users

List all users registered in strapi. Returns an array of user objects including id, username, email, confirmed, and blocked fields.

get_single_strapi_user_by_id

Get a single strapi user by id. Returns the full user object including id, username, email, confirmed, blocked, and role. Required: id.

create_a_strapi_user

Create a new user in strapi. Returns the created user object including id, username, and email. Required: username, email, password.

update_a_strapi_user_by_id

Update an existing strapi user by id. Returns the updated user object including id, username, and email. Required: id.

delete_a_strapi_user_by_id

Delete a strapi user by id. Returns the deleted user object on success. Required: id.

list_all_strapi_users_count

Get the total count of registered users in Strapi. Returns a single numeric value representing the total number of users.

list_all_strapi_roles

List all roles in Strapi. Returns an array of role objects from the users-permissions plugin.

get_single_strapi_role_by_id

Get a single Strapi role by id. Returns the role object from the users-permissions plugin. Required: id.

create_a_strapi_role

Create a new role in Strapi via the users-permissions plugin. Returns the created role object.

update_a_strapi_role_by_id

Update an existing Strapi role by id via the users-permissions plugin. Returns the updated role object. Required: id.

delete_a_strapi_role_by_id

Delete a Strapi role by id via the users-permissions plugin. Required: id.

list_all_strapi_permissions

List all available permissions in Strapi. Returns the permissions object containing the full set of registered permissions across all plugins and controllers.

list_all_strapi_me

Get the profile of the currently authenticated user in Strapi. Returns the user object for the authenticated user.

create_a_strapi_auth_session

Authenticate a Strapi user using local credentials. Returns a jwt token and the authenticated user object.

Why Truto

Why use Truto’s MCP server for Strapi

Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 500+ integrations.

01

Auto-generated, always up to date

Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.

02

Fine-grained access control

Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.

03

Multi-tenant by design

Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.

04

Works with every MCP client

Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.

05

Built-in auth, rate limits, and error handling

Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.

06

Expiring and auditable servers

Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.

Unified APIs

Unified APIs for Strapi

Skip writing code for every integration. Use Truto’s category-specific Unified APIs out of the box or customize the mappings with AI.

Unified User Directory API

Roles

The Role object represents a role of a User.

View Docs

Users

The User object represents a User.

View Docs

How It Works

From zero to integrated

Go live with Strapi in under an hour. No boilerplate, no maintenance burden.

01

Link your customer’s Strapi account

Use Truto’s frontend SDK to connect your customer’s Strapi account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.

02

We handle authentication

Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.

03

Call our API, we call Strapi

Truto’s Proxy API is a 1-to-1 mapping of the Strapi API. You call us, we call Strapi, and pass the response back in the same cycle.

04

Unified response format

Every response follows a single format across all integrations. We translate Strapi’s pagination into unified cursor-based pagination. Data is always in the result attribute.

FAQs

Common questions about Strapi on Truto

Authentication, rate limits, data freshness, and everything else you need to know before you integrate.

How does authentication to a customer's Strapi instance work?

Truto handles credential collection and storage for each end user's Strapi instance, so you don't need to build or maintain the connection flow. Your app calls Truto's tools with a connection identifier and Truto attaches the right credentials to each request.

Can we work with custom content types that vary per customer?

Yes. Strapi exposes every content type dynamically via its plural_api_id, and the document tools (list, get, create, update, delete) operate against whatever content types a customer has defined — so you can support fully custom schemas at runtime.

Can we upload files and link them to a specific content entry?

Yes. create_a_strapi_upload supports ref (content type), refId (entry ID), and field parameters, which lets you upload a file and attach it to a specific field on a specific entry in one request.

Does the integration support user and role management?

Yes. You can list, create, update, and delete users and roles through Strapi-specific tools, and also access them through Truto's Unified User Directory API for a normalized schema across multiple integrations.

How fresh is the data — is there webhook support?

The current tool set is request-based (REST), so freshness depends on how often your app polls list endpoints like list_all_strapi_documents. If you need event-driven sync, reach out to Truto to discuss adding webhook support.

Does this work with both Strapi Cloud and self-hosted Strapi?

Yes. Strapi exposes the same REST API regardless of hosting, so the integration works against Strapi Cloud and self-hosted instances as long as the API is reachable and the connected user has the right permissions.

Strapi

Get Strapi integrated into your app

Our team understands what it takes to make a Strapi integration successful. A short, crisp 30 minute call with folks who understand the problem.

Talk to us