Strapi Typed Client
Automatic TypeScript type generation and a fully typed API client for Strapi v5 with populate type inference
strapi-typed-client
Automatic TypeScript type generation and a fully typed API client for Strapi v5. Install a Strapi plugin, run a single CLI command, and get clean TypeScript interfaces plus a ready-to-use fetch client with full autocomplete.
Quick Start
1. Install
npm install strapi-typed-client2. Enable the Strapi plugin
// config/plugins.ts
export default {
'strapi-typed-client': {
enabled: true,
},
}3. Generate types
npx strapi-types generate --url http://localhost:13374. Use
import { StrapiClient } from 'strapi-typed-client'
const strapi = new StrapiClient({
baseURL: 'http://localhost:1337',
})
const articles = await strapi.articles.find({
filters: { title: { $contains: 'hello' } },
populate: { category: true, cover: true },
})
articles[0].category.name // fully typedFeatures
- Clean, flat TypeScript interfaces from your Strapi schema
- Typed API client —
find,findOne,create,update,delete - Automatic type inference for
populate— no manual casting - Nested populate with unlimited depth
- Separate Input types for create/update (relations as IDs)
- DynamicZone support with union types
- Components and nested components
- Entity-specific filter types
- Next.js integration (
withStrapiTypes, cache, revalidate, tags) - Schema hashing — skips regeneration when nothing changed
- Framework-agnostic — works with any TypeScript project
Requirements
- Strapi v5
- Node.js >= 18
Documentation
Full documentation is available at boxlab-ltd.github.io/strapi-typed-client:
- Getting Started — installation, plugin setup, first generation
- CLI Commands — generate, check, watch
- Client Usage — CRUD operations, error handling
- Populate — type inference, nested populate
- Filtering & Sorting — filters, pagination, field selection
- Next.js Integration — auto-generation, cache options
- Plugin Config — requireAuth, endpoints, schema hashing
- API Reference — full StrapiClient API
Issues & Contributing
Found a bug or have a feature request? Open an issue on GitHub.
Pull requests are welcome — please open an issue first to discuss what you'd like to change.
License
MIT
Install now
npm install strapi-typed-client
Create your own plugin
Check out the available plugin resources that will help you to develop your plugin or provider and get it listed on the marketplace.