Skip to main content

Upload Fonts

Upload custom fonts to the authenticated workspace. Before calling this endpoint, you must first upload the font file using the Get Presigned URL flow. This is a queue-based API — it returns a requestId that can be used to check the status and retrieve results using the get-request-status API.

Endpoint

POST font/create

Authentication

Include your Enterprise API credentials in the request headers:

sivi-api-key: YOUR_API_KEY

Prerequisite: Upload Font File via Presigned URL

Before calling this endpoint, you must upload the font file to S3 using the presigned URL flow:

  1. Call Get Presigned URL with { "type": "font", "extension": "ttf", "contentType": "font/ttf" }
  2. Upload your .ttf file to the returned uploadUrl via HTTP PUT
  3. Use the uploadUrl as the uploadedURL parameter in this endpoint

Request Body Example

{
"uploadedURL": "https://media.hellosivi.com/user-data/w_abc123/fonts/MyCustomFont.ttf?X-Amz-Algorithm=..."
}

Multiple Fonts Example

{
"uploadedURL": [
"https://media.hellosivi.com/user-data/w_abc123/fonts/FontOne.ttf?X-Amz-Algorithm=...",
"https://media.hellosivi.com/user-data/w_abc123/fonts/FontTwo.ttf?X-Amz-Algorithm=..."
]
}

Request Parameters

ParameterTypeRequiredDescription
uploadedURLString/ArrayYesPresigned URL(s) returned by Get Presigned URL after uploading the font file(s). Can be a single URL string or an array of URLs

Response

The API returns a requestId that can be used to check the status and retrieve results:

{
"status": 200,
"body": {
"requestId": "sbhMkIZKCPp"
}
}

Checking Request Status

Use the get-request-status API with the requestId to check the status and get the results.

Error Responses

Authentication Error (401 Unauthorized)

{
"status": 401,
"body": {
"message": "Failed to authenticate request. Please add sivi-api-key header in request"
}
}

Invalid Input (422 Unprocessable Entity)

{
"status": 422,
"body": {
"message": "Invalid uploadedURL format"
}
}

Server Error (500 Internal Server Error)

{
"status": 500,
"body": {
"message": "Server internal error"
}
}

Usage Notes

  • You must call Get Presigned URL with type: "font" and extension: "ttf" first, upload the font file to the presigned URL, then pass that presigned URL as uploadedURL here
  • The font ID is automatically extracted from the URL filename
  • You can upload multiple fonts in a single request by providing an array of URLs
  • After upload completes, the fonts will be available via Get Fonts with source: "user"