Upload a file
curl --request POST \
--url https://api.aircaps.com/v1/files \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/octet-stream' \
--data '<string>'import requests
url = "https://api.aircaps.com/v1/files"
payload = "<string>"
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/octet-stream"
}
response = requests.post(url, data=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/octet-stream'},
body: '<string>'
};
fetch('https://api.aircaps.com/v1/files', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"id": "file_01k6z3m4q8w7e5r2t1y0u9i8o7",
"object": "file",
"size_bytes": 115200044,
"created_at": "2026-10-06T18:01:02Z",
"expires_at": "2026-10-07T18:01:02Z"
}{
"error": {
"type": "invalid_request_error",
"code": "unsupported_language",
"message": "language 'de' is not supported; only English (\"en\", \"en-US\", ...) is available today. Multilingual support is planned.",
"param": null,
"request_id": "req_01k6z3m4q8w7e5r2t1y0u9i8o7"
}
}{
"error": {
"type": "authentication_error",
"code": "unauthorized",
"message": "invalid API key",
"param": null,
"request_id": "req_01k6z3m4q8w7e5r2t1y0u9i8o7"
}
}{
"error": {
"type": "permission_error",
"code": "model_access_denied",
"message": "This account does not have access to A5S Async v1. To get access, talk to sales at https://research.aircaps.com/contact.",
"param": null,
"request_id": "req_01k6z3m4q8w7e5r2t1y0u9i8o7"
}
}{
"error": {
"type": "invalid_request_error",
"code": "file_too_large",
"message": "direct uploads are limited to 1 GB; use /v1/files/upload-url",
"param": null,
"request_id": "req_01k6z3m4q8w7e5r2t1y0u9i8o7"
}
}{
"error": {
"type": "rate_limit_error",
"code": "rate_limited",
"message": "too many requests; retry after the Retry-After interval",
"param": null,
"request_id": "req_01k6z3m4q8w7e5r2t1y0u9i8o7"
}
}{
"error": {
"type": "api_error",
"code": "internal_error",
"message": "internal error",
"param": null,
"request_id": "req_01k6z3m4q8w7e5r2t1y0u9i8o7"
}
}Files
Upload a file
Upload up to 1 GB in the request body. For larger files, use an upload URL.
POST
/
v1
/
files
Upload a file
curl --request POST \
--url https://api.aircaps.com/v1/files \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/octet-stream' \
--data '<string>'import requests
url = "https://api.aircaps.com/v1/files"
payload = "<string>"
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/octet-stream"
}
response = requests.post(url, data=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/octet-stream'},
body: '<string>'
};
fetch('https://api.aircaps.com/v1/files', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"id": "file_01k6z3m4q8w7e5r2t1y0u9i8o7",
"object": "file",
"size_bytes": 115200044,
"created_at": "2026-10-06T18:01:02Z",
"expires_at": "2026-10-07T18:01:02Z"
}{
"error": {
"type": "invalid_request_error",
"code": "unsupported_language",
"message": "language 'de' is not supported; only English (\"en\", \"en-US\", ...) is available today. Multilingual support is planned.",
"param": null,
"request_id": "req_01k6z3m4q8w7e5r2t1y0u9i8o7"
}
}{
"error": {
"type": "authentication_error",
"code": "unauthorized",
"message": "invalid API key",
"param": null,
"request_id": "req_01k6z3m4q8w7e5r2t1y0u9i8o7"
}
}{
"error": {
"type": "permission_error",
"code": "model_access_denied",
"message": "This account does not have access to A5S Async v1. To get access, talk to sales at https://research.aircaps.com/contact.",
"param": null,
"request_id": "req_01k6z3m4q8w7e5r2t1y0u9i8o7"
}
}{
"error": {
"type": "invalid_request_error",
"code": "file_too_large",
"message": "direct uploads are limited to 1 GB; use /v1/files/upload-url",
"param": null,
"request_id": "req_01k6z3m4q8w7e5r2t1y0u9i8o7"
}
}{
"error": {
"type": "rate_limit_error",
"code": "rate_limited",
"message": "too many requests; retry after the Retry-After interval",
"param": null,
"request_id": "req_01k6z3m4q8w7e5r2t1y0u9i8o7"
}
}{
"error": {
"type": "api_error",
"code": "internal_error",
"message": "internal error",
"param": null,
"request_id": "req_01k6z3m4q8w7e5r2t1y0u9i8o7"
}
}Authorizations
Your API key: Authorization: Bearer aircaps_sk_...
Body
application/octet-stream
The raw file bytes (any audio or video format).
The body is of type file.