Projects API
REST API reference for project and environment management.
Projects API
Base path: https://apikee.dev/api/v1/project
List projects
GET /projectQuery parameters
| Parameter | Type | Description |
|---|---|---|
page | integer | Page number (default: 1) |
limit | integer | Per page (default: 10, max: 100) |
name | string | Filter by name |
status | string | Filter by status |
Example
curl "https://apikee.dev/api/v1/project?limit=5" \
-H "x-api-key: sk_live_..."Response 200
{
"data": [
{
"slug": "my-api",
"name": "My API",
"envs": {
"count": 2,
"list": [
{
"project_env": "my-api-production",
"type": "production",
"clients": { "count": 12, "max": 50 }
}
]
}
}
],
"pagination": { "total": 3, "page": 1, "limit": 5, "pages": 1 }
}Create project
POST /projectRequest body
{
"slug": "my-api",
"name": "My API",
"description": "Customer-facing REST API",
"envs": [
{
"type": "production",
"url": "https://api.myapp.com",
"templates": [
{
"name": "Starter",
"rateLimitDay": 1000,
"maxClients": 100
}
]
}
]
}Response 201 — returns the created ProjectSummary object.
Get project
GET /project/{project_env}Path parameters
| Parameter | Description |
|---|---|
project_env | Project-environment slug, e.g. my-api-production |
Response 200 — returns the full ProjectSummary with environment details.
Update project
PUT /project/{project_env}Request body
{
"name": "My API (Updated)",
"singleEnv": {
"url": "https://api.myapp.com/v2",
"templates": [
{ "name": "Pro", "rateLimitDay": 50000 }
]
}
}Response 200 — returns the updated ProjectSummary.
Delete project / environment / template
DELETE /project/{project_env}Query parameters
| Parameter | Type | Description |
|---|---|---|
kind | project | env | template | What to delete |
envId | string | Environment ID (when kind=env) |
templateId | string | Template ID (when kind=template) |
forceDelete | boolean | Skip confirmation checks |
Response 200
{ "success": true, "deleted": "my-api" }Get logs
GET /project/{project_env}/logsQuery parameters
| Parameter | Type | Description |
|---|---|---|
methodPath | string | Filter by endpoint, e.g. GET:/users |
clientId | string | Filter by client UUID |
status | success | error | Filter by outcome |
page | integer | Page number |
limit | integer | Per page |
Response 200
{
"data": [
{
"id": "log_abc",
"clientId": "uuid-...",
"status": "success",
"durationMs": 3,
"timestamp": "2026-03-19T14:22:01Z",
"method_path": "GET:/users",
"name": "Production Key"
}
],
"pagination": { "total": 9421, "page": 1, "limit": 10, "pages": 943 }
}
