Skip to main content
POST
Get multimodal upload URLs

Authorizations

Authorization
string
header
required

API key issued by EverOS, sent as Authorization: Bearer <api_key>.

Body

application/json
objectList
object[]
required

Objects to sign for upload. At most 50 per request (status: 1007 if exceeded). Each fileId must be unique within the request (status: 1009 on duplicates).

Required array length: 1 - 50 elements

Response

Envelope response (MMS returns HTTP 200 for every business outcome; only unmatched routes return 404). status: 0 means success and result.data is a SignResponse. Non-zero status values seen on this endpoint:

  • 20003 — request body bind failure (malformed JSON).
  • 2018 — parameter validation failed (e.g. missing objectList, fileId, fileName, or fileType); result.data is the validator error string.
  • 1012mms-token missing, invalid, expired, or revoked (emitted by the auth middleware before the handler runs).
  • 1013 — token lacks the required object:sign scope.
  • 1007objectList exceeds the per-request limit of 50.
  • 1002fileType not one of image/video/file.
  • 1009 — duplicate fileId within the request.
  • 1004 — S3 operation failed (bucket unavailable).
  • 1005 — presigned POST generation failed.
  • 2015 — object metadata persistence failed.
  • 20001 — unhandled internal server error.

Response envelope for the sign endpoint. The result.data shape depends on status:

  • status: 0 (success) — result.data is a SignResponse, as modelled below.
  • status: 2018 (validation failed) — result.data is a plain string carrying the validator error message, not a SignResponse.
  • all other non-zero statuses — result.data is null.

Generated clients should treat result.data as populated only when status is 0.

error
string

"OK" on success, otherwise a human-readable error message decoded from the business error.

request_id
string
status
integer

Business status code; 0 means success

result
object