Skip to content
Docs
Esc
↑↓navigate↵open⌘Jpreview

Upload a design-system asset to WordPress media

Uploads one image (PNG, JPEG, WebP, sanitized SVG), PDF, Word (DOCX), PowerPoint (PPT/PPTX), font (WOFF/WOFF2/TTF/OTF/EOT), JSON token file, UTF-8 guidance or source file (Markdown, text, JSONC, YAML, CSS/SCSS/Sass/Less, HTML, JS/JSX/TS/TSX, Vue/Svelte), or original ZIP of at most 100 MB to the team’s WordPress Media Library. Match the filename extension to contentType; its schema lists accepted pairs. Supply file bytes as contentBase64, not a local path. References are retained files, downloaded privately as attachments; they are never executed or extracted. Reuse operationId and the same input after an uncertain response. Returns an attachmentId; add or replace its design-system asset record with updateTeamDesignSystem. Upload alone does not change the design-system revision. Requires the team context beta.

POST/v1/teams/{teamId}/design-system/assets/upload
Authorization
AuthorizationBearer token · headerrequired

Better Auth session, OAuth access token, OAuth client-credentials token, or sfm_ Space machine credential.

or
AuthorizationOAuth2 access token · headerrequired

OAuth 2.0 with explicit Spacefast capability scopes. Use the authorization-code flow for people and client credentials for machines.

Scopes:spaces:write
Path parameters
teamIdstringrequired
min length 1
Request body
requiredapplication/json
operationIdstringrequired
min length 1 · max length 128
filenamestringrequired
min length 1 · max length 255 · matches ^[^/\\\p{Cc}]+$
contentTypestringrequired

png: image/png; jpg|jpeg: image/jpeg; webp: image/webp; svg: image/svg+xml; pdf: application/pdf; docx: application/vnd.openxmlformats-officedocument.wordprocessingml.document; ppt: application/vnd.ms-powerpoint; pptx: application/vnd.openxmlformats-officedocument.presentationml.presentation; woff: font/woff; woff2: font/woff2; ttf: font/ttf; otf: font/otf; eot: application/vnd.ms-fontobject; json: application/json; md|markdown: text/markdown; txt|md|markdown|jsonc|yaml|yml|css|scss|sass|less|html|htm|js|mjs|cjs|jsx|ts|tsx|vue|svelte: text/plain; css: text/css; html|htm: text/html; js|mjs|cjs|jsx: text/javascript; js|mjs|cjs|jsx: application/javascript; ts|tsx: application/typescript; yaml|yml: application/yaml; zip: application/zip

Allowed:image/pngimage/jpegimage/webpimage/svg+xmlapplication/pdfapplication/vnd.openxmlformats-officedocument.wordprocessingml.documentapplication/vnd.ms-powerpointapplication/vnd.openxmlformats-officedocument.presentationml.presentationfont/wofffont/woff2font/ttffont/otfapplication/vnd.ms-fontobjectapplication/jsontext/markdowntext/plaintext/csstext/htmltext/javascriptapplication/javascriptapplication/typescriptapplication/yamlapplication/zip
contentBase64stringrequired
min length 4 · max length 133333336 · matches ^[A-Za-z0-9+/]*={0,2}$(?![\s\S])
Responses
200

Response for status 200

$schemastring<uri>

Canonical JSON Schema URL for this response body. The server also sends it in the Link: rel="describedby" response header.

dataobjectrequired
Show properties
attachmentIdintegerrequired
max 9007199254740991
filenamestringrequired
contentTypestringrequired
sizeintegerrequired
max 100000000
default

Problem details (RFC 9457). Any 4xx/5xx response is one application/problem+json document.

$schemastring<uri>

Canonical JSON Schema URL for this response body. The server also sends it in the Link: rel="describedby" response header.

typestringrequired

Problem type URI resolving to the error docs page. The server derives it mechanically from code against the docs origin.

titlestringrequired

Short human-readable summary of the problem type. The server derives it mechanically from code.

statusintegerrequired

HTTP status code of this response, repeated in the body.

min -9007199254740991 · max 9007199254740991
detailstringrequired

Human-readable failure explanation for this occurrence.

codestringrequired

Stable snake_case error code naming the failed public contract.

pointerstring

RFC 6901 JSON Pointer into the failing request field, for example "/files/37/path", on validation failures.

detailsobject

Machine-readable context for the error code.

fixstring

One sentence on what to do about this error code, the same text as the type page. Read it before retrying.

suggestionsstring[]

Actionable recovery steps safe to show in dashboards, SDKs, and CLI output.

nextstring[]

Copy-pasteable commands or API requests an agent can run next.

requestIdstringrequired

The request id to quote when contacting support.

Try it
Server
Authorization
Parameters
Bodyapplication/json
Request
curl -X POST 'https://api.spacefast.com/v1/teams/string/design-system/assets/upload' \
  -H 'Authorization: Bearer YOUR_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "operationId": "string",
  "filename": "string",
  "contentType": "image/png",
  "contentBase64": "string"
}'
Response
{
  "$schema": "http://example.com",
  "data": {
    "attachmentId": 1,
    "filename": "string",
    "contentType": "string",
    "size": 1
  }
}