REST API · Creatives
Confirm uploads
Check uploaded files: present and not empty; each one's ref for the launch plans
POSThttps://api.apogee.ad/api/v1/uploads/confirm
Request
POST /uploads/confirm on https://api.apogee.ad/api/v1.
Headers
-
Authorizationstring header requiredBearer apk_…: an API key with the scope of this route. -
Content-Typestring header requiredapplication/json
Body
-
pathsarray of strings requiredThe paths POST /uploads returned
Response
200.
-
filesarray of objectsFields of each item (4)
-
pathstring -
refstring -
size_bytesnumber or null -
errorstring
-
Every answer carries X-Request-Id (give it to support), Apogee-Version: 2026-10-06, and the RateLimit and RateLimit-Policy headers.
Errors
Errors are application/problem+json with a stable code to switch on (all the codes).
| Status | Possible codes |
|---|---|
| 400 Bad request | idempotency_key_required, not_supported, request_refused, validation_failed |
| 401 Unauthorized | invalid_api_key |
| 403 Forbidden | account_not_connected, forbidden, insufficient_scope, meta_permission_denied, platform_permission_denied, upgrade_required |
| 404 Not found | not_found |
| 429 Too many requests | daily_read_cap, meta_rate_limited, platform_rate_limited, quota_exceeded, rate_limited |
| 500 Internal server error | internal_error |
Example
With your key in APOGEE_API_KEY (create one):
curl -X POST 'https://api.apogee.ad/api/v1/uploads/confirm' \
-H "Authorization: Bearer $APOGEE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"paths": [
"120200000000000001"
]
}' {
"files": [
{
"path": "120200000000000001",
"ref": "120200000000000001",
"size_bytes": 48213112,
"error": "120200000000000001"
}
]
} Access and cost
| Plans | Pro and Scale. |
|---|---|
| Scope | launch (scopes). |
| Credits | Free up to the daily free reads (5,000 a day on Pro, 10,000 on Scale), then 1 credit per read. A request that fails costs nothing, a replayed one neither (credits). |
| Rate limit | Write: 120 per 15 minutes on Pro, 240 on Scale (rate limits). |
| Daily cap | Counts 2 units toward the 2,000 units one API key can use in 24 hours. |
In the MCP
An AI assistant does the same with this tool of the MCP server:
confirm_uploads: Checks each uploaded file arrived and is not empty.
Related operations
- Create import:
POST /imports - Get import:
GET /imports/{id} - List drive folder:
GET /drive-folders - Create uploads:
POST /uploads - List TikTok posts:
GET /ad-accounts/{acc}/tiktok-posts - List TikTok music:
GET /ad-accounts/{acc}/tiktok-music - List platform templates:
GET /ad-accounts/{acc}/platform-templates