Skip to main content
POST
Uploads a file, on the Management API host (api.scanova.io), authenticated with your raw Management API key.
file
required
The file to upload. Either file or upload is required.
file
Alias for file — provide one or the other.
string
Comma-separated categories to restrict validation against (image, video, audio, pdf, doc, script). See List allowed file types for what each category accepts.
string
How this file will be used: avatar, qr_logo, qr_content, poster, qr_image, profile_pic, banner, smart, thumbnail, or unknown (default).
string
Free-text category label, e.g. a QR category slug or "Custom Design".
integer
A bulk media batch id, from Create a bulk media batch, to associate this upload with.

Validation

  • Extension and MIME type must both be present in the allow-list for the detected file_type category — a mismatch (e.g. a .png extension on a file that’s actually a PDF) is rejected.
  • Size is checked against the category’s limit — except pdf/doc files, where the account’s DOCUMENT_FILE_SIZE plan quota (in MB) overrides the static cap.
  • JavaScript (.js) uploads are parsed to confirm they’re syntactically valid JS before the size check runs.
  • SVGs are scanned for embedded scripts and rejected if any are found.
  • Files with no extension are rejected outright.
400 for any validation failure above, with a message identifying the problem.

Authorizations

Authorization
string
header
required

Send your Management API key as the raw value of the Authorization header — no "Bearer " or "Token " prefix, and no other characters. Example: Authorization: 401f7ac837da42b97f613d789819ff93537bee6a. A header containing more than one space-separated part is rejected outright. Requests also require the request's Host header to be the management API host (e.g. api.scanova.io) — the same key sent to the regular API host will not authenticate.

Response

File uploaded.