UploadKit
API Reference

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:

FieldTypeRequiredDescription
namestringYesHuman-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:

CodeHTTPCause
TIER_LIMIT_EXCEEDED403Project limit for your tier has been reached

Project limits by tier:

TierMax projects
Free2
Pro10
Team50
EnterpriseUnlimited

PATCH /api/v1/projects/:id

Update a project's name.

Request body:

FieldTypeRequiredDescription
namestringNoNew 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:

CodeHTTPCause
NOT_FOUND404Project 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:

CodeHTTPCause
NOT_FOUND404Project does not exist or belongs to a different account

You can also manage projects from the Projects section of the dashboard.

On this page