Projects Endpoints
Create, list, update, and delete projects via the REST API.
Projects are the top-level resource in UploadKit. Each project has its own API keys, file routes, files, and usage quotas. All file operations are scoped to a project via the API key used.
Project Object
{
"_id": "65f1a2b3c4d5e6f7a8b9c0d1",
"name": "My Application",
"slug": "my-application-a1b2c3",
"userId": "65f0...",
"createdAt": "2026-04-08T12:00:00.000Z",
"updatedAt": "2026-04-08T12:00:00.000Z"
}GET /api/v1/projects
List all projects belonging to the authenticated account.
curl example:
curl https://api.uploadkit.dev/api/v1/projects \
-H "Authorization: Bearer uk_live_xxxxxxxxxxxxxxxxxxxxx"Response:
{
"projects": [
{
"_id": "65f1a2b3c4d5e6f7a8b9c0d1",
"name": "My Application",
"slug": "my-application-a1b2c3",
"userId": "65f0...",
"createdAt": "2026-04-08T12:00:00.000Z"
}
]
}POST /api/v1/projects
Create a new project. A default file router (slug: default) is created automatically so the project is ready to accept uploads.
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Human-readable project name (1–100 characters) |
curl example:
curl -X POST https://api.uploadkit.dev/api/v1/projects \
-H "Authorization: Bearer uk_live_xxxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"name": "My New Application"
}'Response: { "project": { ... } } with the created project and HTTP 201 Created.
Error cases:
| Code | HTTP | Cause |
|---|---|---|
TIER_LIMIT_EXCEEDED | 403 | Project limit for your tier has been reached |
Project limits by tier:
| Tier | Max projects |
|---|---|
| Free | 2 |
| Pro | 10 |
| Team | 50 |
| Enterprise | Unlimited |
PATCH /api/v1/projects/:id
Update a project's name.
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
name | string | No | New project name (1–100 characters) |
curl example:
curl -X PATCH https://api.uploadkit.dev/api/v1/projects/65f1a2b3c4d5e6f7a8b9c0d1 \
-H "Authorization: Bearer uk_live_xxxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"name": "Renamed Application"
}'Response: { "project": { ... } } with the updated project.
Error cases:
| Code | HTTP | Cause |
|---|---|---|
NOT_FOUND | 404 | Project does not exist or belongs to a different account |
DELETE /api/v1/projects/:id
Delete a project. All API keys associated with the project are revoked; uploaded files and file routes remain in storage.
Deleting a project revokes all API keys that target it. Any service using those keys will begin receiving 401 UNAUTHORIZED immediately.
curl example:
curl -X DELETE https://api.uploadkit.dev/api/v1/projects/65f1a2b3c4d5e6f7a8b9c0d1 \
-H "Authorization: Bearer uk_live_xxxxxxxxxxxxxxxxxxxxx"Response:
{ "ok": true }Error cases:
| Code | HTTP | Cause |
|---|---|---|
NOT_FOUND | 404 | Project does not exist or belongs to a different account |
You can also manage projects from the Projects section of the dashboard.