Skip to main content

Base URL

https://api.uplint.dev
For local development:
http://localhost:8000

Authentication

All endpoints require authentication via the Authorization header. Pass an API key or JWT token:
Authorization: Bearer ul_live_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6
See the Authentication guide for details on API key scopes, lifecycle, and security best practices.

Response format

All responses follow a consistent envelope format: Success:
{
  "status": "SUCCESS",
  "message": "Human-readable description",
  "data": { ... },
  "timestamp": "2026-02-10T12:00:00Z"
}
Error:
{
  "status": "ERROR",
  "message": "Human-readable error description",
  "errors": ["Specific error detail"],
  "timestamp": "2026-02-10T12:00:00Z"
}
Paginated lists include a pagination object:
{
  "status": "SUCCESS",
  "data": [ ... ],
  "pagination": {
    "page": 1,
    "page_size": 20,
    "total": 47,
    "total_pages": 3
  }
}

API groups

Files

Upload, list, download, inspect, and delete files.

File Contexts

Create and manage upload pipelines with validation rules.

API Keys

Create, manage, and revoke scoped API keys.

Rate limits

API-level rate limits apply per tenant. Context-level rate limits apply per file context and are configured when creating or updating a context. When a rate limit is exceeded, the API returns a 429 status code.

Status codes

CodeDescription
200Success
201Resource created
400Bad request — validation failed or file rejected
401Unauthorized — missing or invalid credentials
404Resource not found
409Conflict — resource already exists or invalid state transition
422Validation error — request body failed schema validation
429Rate limit exceeded