Skip to main content
POST
/
v1
/
apps
/
{app_id}
/
deploy
/
verify-upload
Verify a presigned-URL upload landed in S3
curl --request POST \
  --url https://api.mixpeek.com/v1/apps/{app_id}/deploy/verify-upload \
  --header 'Content-Type: application/json' \
  --data '
{
  "bundle_s3_key": "<string>"
}
'
{
  "bundle_s3_key": "<string>",
  "exists": true,
  "etag": "<string>",
  "size_bytes": 123,
  "last_modified": "<string>"
}

Documentation Index

Fetch the complete documentation index at: https://docs.mixpeek.com/docs/llms.txt

Use this file to discover all available pages before exploring further.

Headers

Authorization
string

REQUIRED: Bearer token authentication using your API key. Format: 'Bearer sk_xxxxxxxxxxxxx'. You can create API keys in the Mixpeek dashboard under Organization Settings.

Examples:

"Bearer YOUR_API_KEY"

"Bearer YOUR_STRIPE_API_KEY"

Path Parameters

app_id
string
required

Body

application/json
bundle_s3_key
string
required

S3 key returned by /deploy/upload-url — the object you just PUT to.

Response

Successful Response

Confirms a presigned-URL upload landed in S3.

S3 presigned PUTs return an empty body — the ETag is only in response headers, which many clients can't surface (CORS restrictions, browser DevTools gotchas). This endpoint does a server-side HEAD on the bundle and returns the object metadata so clients can verify their upload succeeded.

bundle_s3_key
string
required

S3 key that was verified

exists
boolean
required

True if the object exists in S3

etag
string | null

S3 ETag of the uploaded object (MD5 for single-part uploads).

size_bytes
integer | null

Size of the uploaded object in bytes.

last_modified
string | null

Last-modified timestamp (ISO 8601).