PostMantis
API ReferenceUploads

Finalize an upload

Verifies the uploaded object, promotes it to a verified artifact, and returns the artifact id and a temporary read URL. Use the artifact id in post media references.

POST
/api/v1/uploads/complete

Verifies the uploaded object, promotes it to a verified artifact, and returns the artifact id and a temporary read URL. Use the artifact id in post media references.

Authorization

BearerAuth
AuthorizationBearer <token>

PostMantis API key from the dashboard. Include as Authorization: Bearer <key>.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

artifactId*string
Formatuuid

Response Body

application/json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

curl -X POST "https://loading/api/v1/uploads/complete" \  -H "Content-Type: application/json" \  -d '{    "artifactId": "b2c3d4e5-f6a7-8901-bcde-f23456789012"  }'
{  "data": {    "artifactId": "b2c3d4e5-f6a7-8901-bcde-f23456789012",    "storageKey": "user-123/...",    "url": "https://cdn.example.com/...",    "createdAt": "2026-05-05T10:00:00.000Z",    "kind": "video",    "mimeType": "video/mp4",    "sizeBytes": 12345678  }}
{  "type": "https://postmantis.com/problems/invalid-request",  "title": "Invalid request",  "status": 400,  "detail": "The request payload failed validation.",  "code": "invalidRequest"}
{  "type": "https://postmantis.com/problems/unauthorized",  "title": "Unauthorized",  "status": 401,  "detail": "Authentication required.",  "code": "unauthorized"}
{  "type": "https://postmantis.com/problems/forbidden",  "title": "Forbidden",  "status": 403,  "detail": "The authenticated API key is not allowed to perform this action.",  "code": "forbidden"}
{  "type": "https://postmantis.com/problems/rate-limited",  "title": "Too many requests",  "status": 429,  "detail": "Too many requests.",  "code": "rateLimited"}