Get a presigned media upload URL
curl --request GET \
--url https://api.social-api.ai/v1/media/upload-url \
--header 'Authorization: <api-key>'const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://api.social-api.ai/v1/media/upload-url', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.social-api.ai/v1/media/upload-url"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text){
"expires_at": "2026-03-14T09:15:00Z",
"media_id": "<string>",
"upload_url": "<string>"
}{
"error": {
"code": "resource.not_found",
"message": "Account not found",
"meta": {}
}
}{
"error": {
"code": "resource.not_found",
"message": "Account not found",
"meta": {}
}
}{
"error": {
"code": "resource.not_found",
"message": "Account not found",
"meta": {}
}
}Media
Get a presigned media upload URL
Returns a presigned PUT URL for client-side media upload. Upload the file directly via HTTP PUT to the returned URL, then call POST /v1/media/:id/verify to confirm.
GET
/
media
/
upload-url
Get a presigned media upload URL
curl --request GET \
--url https://api.social-api.ai/v1/media/upload-url \
--header 'Authorization: <api-key>'const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://api.social-api.ai/v1/media/upload-url', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.social-api.ai/v1/media/upload-url"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text){
"expires_at": "2026-03-14T09:15:00Z",
"media_id": "<string>",
"upload_url": "<string>"
}{
"error": {
"code": "resource.not_found",
"message": "Account not found",
"meta": {}
}
}{
"error": {
"code": "resource.not_found",
"message": "Account not found",
"meta": {}
}
}{
"error": {
"code": "resource.not_found",
"message": "Account not found",
"meta": {}
}
}Authorizations
Prefix your API key with "Bearer ". Example: Authorization: Bearer sapi_key_...
Query Parameters
MIME type (e.g. image/jpeg)
Original filename