Ekit Public API — v1¶
The Ekit Public API provides secure, read-only access to your project data.
It is designed for: - Headless usage - SSR frameworks (Next.js, Astro, Nuxt, etc.) - Multilingual content - High-performance pagination - Developer-friendly integration
API Token Management¶
Each project has its own dedicated API token, used to authenticate and secure API requests.
The API token can be generated only after the project has been saved. Once the project is created and stored, you will be able to generate (or regenerate) its token from this section.
⚠️ The API token is strictly bound to the current project and must not be shared or reused across multiple projects.
API Data Access Helpers¶
For each table and for every individual record, a moustache button ({ }) is available.
This button allows you to preview the correct API endpoint and syntax required to access the corresponding data via the API.
It helps ensure you are using the proper path and format when integrating the data into your templates or external applications.
Base URL¶
https://api.ekit.app/api/v1
Authentication¶
All requests require a Bearer token.
Authorization: Bearer YOUR_API_TOKEN
- Tokens are project-scoped
- Tokens are read-only
- Tokens can be regenerated at any time
- Tokens are only shown once when created
Health Check¶
GET /health¶
{
"status": "ok"
}
List rows from a table¶
GET /tables/:tableSlug¶
Query Parameters¶
| Name | Type | Description |
|---|---|---|
| lang | string | Language code (fallbacks to project default) |
| size | number | Number of items (default: 50, max: 200) |
| cursor | string | Cursor for pagination (ObjectId) |
| sort | JSON | Sorting rules |
| filter | JSON | Filtering rules |
Example¶
curl -H "Authorization: Bearer YOUR_TOKEN" \
"https://api.ekit.app/api/v1/tables/blog-posts?lang=en&size=20"
Response¶
{
"items": [
{
"uid": "696b3e9ca32ddc00adc58d3d",
"lang": "en",
"content": {
"title": "Hello world",
"description": "My first post"
},
"meta": {
"dateCreation": "2026-01-17T07:47:40.873Z",
"dateModif": "2026-01-17T07:47:40.873Z"
}
}
],
"nextCursor": "696b3e9ca32ddc00adc58d3d",
"hasMore": true
}
Get a single row¶
GET /tables/:tableSlug/:uid¶
curl -H "Authorization: Bearer YOUR_TOKEN" \
"https://api.ekit.app/api/v1/tables/blog-posts/696b3e9ca32ddc00adc58d3d"
Filtering¶
[
{ "field": "title", "op": "contains", "value": "hello" }
]
Supported operators: - contains - eq - gt - lt
Sorting¶
[
{ "field": "title", "dir": "asc" }
]
Pagination¶
Cursor-based pagination using Mongo ObjectId.
Errors¶
401 – Unauthorized
403 – Forbidden
404 – Not found
429 – Rate limit
500 – Server error