Upload a blob
const url = 'https://api.ebitex.io/content/management/v1/blobs';const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.ebitex.io/content/management/v1/blobs \ --header 'Authorization: Bearer <token>'Stores raw bytes as a blob. Send the file itself as the body with its media type as Content-Type; the response is the descriptor a media field stores.
Storage is content-addressed within the organization, so uploading bytes it already holds stores nothing new and returns the existing blob’s id. That makes it safe to upload a whole asset directory on every run. To find out what is already stored without uploading, use GET /blobs.
Key: a management key with content.management.write.
Authorizations
Section titled “Authorizations”Responses
Section titled “ Responses ”{ "blobId": "…", "contentType": "image/png", "sizeBytes": 88213 }
validation_failed: no Content-Type header, or the bytes could not be stored.
missing_api_key or invalid_api_key: no key was sent, or it is unknown, revoked or expired.
payment_required: the organization’s subscription needs attention.
scope_denied: the key lacks this route’s scope. tier_required: the Content Management API needs the Pro plan or above. ip_denied: the caller’s address is outside the key’s allowed ranges. app_not_available: Content is not enabled for the organization.
blob_too_large: the upload is over the size limit given in maxBytes.
quota_exceeded: the organization’s blob storage quota is full; the response gives the quota key and its limit.
Rate limit or quota exceeded; Retry-After says how long to wait. too_many_failed_authentications: too many bad keys from this address.