Strapi: API Design — Auto-Generated REST & GraphQL
Docs-backedThe API is auto-generated from content type definitions. REST: GET /api/{content-type} for listing with filtering, sorting, and pagination. GET /api/{content-type}/{id} for single entry. POST for creation, PUT for update, DELETE for deletion. Filters use qs library format: ?filters[field][$eq]=value with operators ($eq, $ne, $lt, $gt, $contains, $in, etc.). Population (relation loading) uses ?populate=* or selective population. GraphQL plugin generates typed schema from content types. The API design follows Strapi's conventions rather than pure REST — the filter syntax is powerful but non-standard. Media upload uses multipart form data with the Upload plugin. Custom controllers and routes enable API extension. Internationalization adds locale-based content retrieval.