curl --request POST \
--url 'https://upload.autorender.io/api/v1/sources' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"name": "my_image_source",
"type": "image_source",
"configuration": {
"base_url": "https://cdn.example.com",
"forward_header": true
}
}'
curl --request POST \
--url 'https://upload.autorender.io/api/v1/sources' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"name": "my_s3_bucket",
"type": "s3",
"configuration": {
"access_key": "AKIA...",
"secret_key": "secret...",
"region": "us-east-1",
"bucket": "my-bucket"
}
}'
{
"success": true,
"data": {
"id": "974628c2-9b55-4ce4-adf1-9b63edff6baa",
"name": "my_image_source",
"type": "image_source",
"configuration": {
"base_url": "https://cdn.example.com",
"forward_header": true
},
"is_active": true,
"created_at": "2026-03-27T14:58:53.795Z",
"updated_at": "2026-03-27T14:58:53.795Z"
}
}
{
"error": "Validation failed",
"message": "Configuration is invalid for the specified type"
}
{
"error": "Origin name already exists in this workspace"
}
Source Management
Create source
Create a new source: S3, Azure, Google Cloud, or image source.
POST
/
api
/
v1
/
sources
curl --request POST \
--url 'https://upload.autorender.io/api/v1/sources' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"name": "my_image_source",
"type": "image_source",
"configuration": {
"base_url": "https://cdn.example.com",
"forward_header": true
}
}'
curl --request POST \
--url 'https://upload.autorender.io/api/v1/sources' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"name": "my_s3_bucket",
"type": "s3",
"configuration": {
"access_key": "AKIA...",
"secret_key": "secret...",
"region": "us-east-1",
"bucket": "my-bucket"
}
}'
{
"success": true,
"data": {
"id": "974628c2-9b55-4ce4-adf1-9b63edff6baa",
"name": "my_image_source",
"type": "image_source",
"configuration": {
"base_url": "https://cdn.example.com",
"forward_header": true
},
"is_active": true,
"created_at": "2026-03-27T14:58:53.795Z",
"updated_at": "2026-03-27T14:58:53.795Z"
}
}
{
"error": "Validation failed",
"message": "Configuration is invalid for the specified type"
}
{
"error": "Origin name already exists in this workspace"
}
Key type: requires a private key. A public key returns
403 here, because it may only
upload — see key types and scope. Call
this from your server, never from browser code.curl --request POST \
--url 'https://upload.autorender.io/api/v1/sources' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"name": "my_image_source",
"type": "image_source",
"configuration": {
"base_url": "https://cdn.example.com",
"forward_header": true
}
}'
curl --request POST \
--url 'https://upload.autorender.io/api/v1/sources' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"name": "my_s3_bucket",
"type": "s3",
"configuration": {
"access_key": "AKIA...",
"secret_key": "secret...",
"region": "us-east-1",
"bucket": "my-bucket"
}
}'
{
"success": true,
"data": {
"id": "974628c2-9b55-4ce4-adf1-9b63edff6baa",
"name": "my_image_source",
"type": "image_source",
"configuration": {
"base_url": "https://cdn.example.com",
"forward_header": true
},
"is_active": true,
"created_at": "2026-03-27T14:58:53.795Z",
"updated_at": "2026-03-27T14:58:53.795Z"
}
}
{
"error": "Validation failed",
"message": "Configuration is invalid for the specified type"
}
{
"error": "Origin name already exists in this workspace"
}
Overview
Creates a source in your workspace. Sendname, type, and a configuration object shaped for that type — the API validates the configuration against the type before creating the row.
Request body
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Letters, numbers, underscores, and hyphens only. Must be unique in the workspace. |
type | string | Yes | One of: s3, azure, google_cloud, image_source |
configuration | object | Yes | Type-specific fields (see below) |
Configuration by type
| Type | Fields |
|---|---|
s3 | access_key, secret_key, region (required), bucket (required) |
azure | connection_string (required), container_name (required) |
google_cloud | service_account_json (required), bucket_name (required) |
image_source | base_url (required, no trailing /), canonical_header, forward_header (boolean) |
Response
The created source, wrapped as{ "success": true, "data": { ... } }. Sensitive fields are masked in the response even though they were just set.
Next steps
List sources
Browse the sources in your workspace.
Update source
Change a source’s name or configuration.
Authorizations
API key for public endpoints. Can also be provided via Authorization: Bearer
Body
application/json
Was this page helpful?