Rename, reorder or delete vendor files
AI agents: read /llms.txt; add .md to any page URL. This page as Markdown: /reference/vendor-files/v1-vendor-media-sync.md. Index of every page and the rules for every call: /llms.txt. Guides and concepts in one file: /llms-full.txt. OpenAPI: /openapi.json.
POST/
Changes several of the vendor's files in one request and returns all its files. The last path segment must be the word sync.
Each item names a file and an action: update sets its name and position, delete removes it. Items run in order, all or nothing.
Path parameters
Your team slug, shown as Team ID next to your API key in Profile.
- Example
your-team
- Example
The vendor's id (
idfrom List vendors). A hash id from an earlier answer; unique keys and document numbers (such asPO0042) don't work here.- Example
EDhVUaC6jbLbed
- Example
Always the word
sync. The route only matchessync: any other value answers 405 (an HTML page unless you sendAccept: application/json).- One of:
"sync" - Example
sync
- One of:
Request body
application/json, required.
- At least 1 item
Response
200Successful response.
All the vendor's files after the changes.
Fields of each item (18)
Customer files:
tax_exemption,internal_fileorexternal_file. Vendor files:default,mockuporproduction_file.The display name.
Bytes.
custom_propertiesobject | arraycustomer_idstringCustomer files only.
dimensionsobject | nullPixel size of an image, read from its header; null for other files and for images uploaded before the size was recorded.
is_imagebooleanpositioninteger | nullWhere the file sorts.
previewobject | nullPreview image links
small,mediumandlarge(250, 800 and 1200 px), or null when there is no preview.preview_statestringready: the preview links work.processing: an image over 10 MB whose stored preview a worker is still making (seconds); read the file again, or in the web app wait formedia.preview_state_changedon the team channel.too_large: an image over 120 megapixels; it never gets a preview.failed: the worker gave up.none: not an image.- One of:
"ready","processing","too_large","failed","none"
- One of:
show_in_pdfboolean | nullsource_media_idstring | nullurlstring | nullWhere to download the file.
view_urlstring | nullA signed link to view the file. It expires: read it fresh, and don't store it.
Errors
401The API key is missing or wrong (
unauthenticated).403You are not allowed to do this.
api_access_not_in_plan: your team's plan doesn't include API access (Pro and above, with an active subscription or trial), so every request answers this until the team upgrades. When your role lacks the permission the operation needs, the body is only{"message": "Insufficient Permission"}. Other refusals use the error envelope, withunauthorizedoruser_is_not_authorized.404Not found.
page_not_found: the team slug is unknown, you are not a member of the team, or an id in the path is not one of this team's.code: null, with a message that starts "No query results for": there is no record with that id.- When
- An
idis not a file of this vendor. Nothing is changed.error.codeis null anderror.messagenames the record type. - Fix
- List the vendor's files first.
405
- When
- The last path segment is not
sync. - Fix
- End the path with
/media/sync.
422The request was refused and changed nothing.
validation_failedlists what to fix inerror.fields; other codes name a business rule, explained inerror.message. A few checks answer with only{"message": "..."}. An operation that calls another service (a payment provider, a carrier, an accounting app) can answerconnect_timeout("Please retry again") when that service does not answer in time: the change may or may not have happened there, so read the record back before you retry.- When
datais empty, or an item has noidor anactionother thanupdateanddelete.error.codeisvalidation_failed.- Fix
- Fix each field named in
error.fields; its keys are field paths such ascontact.0.phone.
Related
- GETList a vendor's files
/v1/ api/ store/ {team_slug}/ vendor/ {hash_id}/ media
