Three lines

Uber

Developers

Creative Hub

Creative Hub is where you group processed assets into creatives that can be attached to an ad. See Creative Management Overview for how assets and creatives differ.

Creating Creatives

Creatives are created in batches. Each creative combines the assets it uses with the text and styling that go with them:

curl -X POST "https://api.uber.com/v1/ads/{account_id}/creatives" \
  -H "Authorization: Bearer <TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "creatives": [
      {
        "name": "Summer Campaign Banner",
        "type": {
          "sponsored_brands": {
            "banner_asset_id": "b3d9f0a2-1c47-4e8b-9a52-7f6c1d0e3a84",
            "title": "Summer Refresh Sale",
            "gradient_color": "#1A73E8"
          }
        }
      }
    ]
  }'

The response contains one result per submitted creative, in request order:

{
  "results": [
    { "success": { "id": "7c2f4b19-8ad3-4e60-b1f7-9e05c3a2d846" } },
    { "failure": {
        "error_code": "INVALID_ARGUMENT",
        "error_message": "title exceeds the maximum of 25 characters"
    } }
  ]
}

This is a partial-success operation: a 200 response does not mean every creative was created, so inspect each result rather than the status code.

Review Statuses

Creatives are reviewed before they can serve, and a creative must reach CREATIVE_STATUS_TYPE_APPROVED before an ad can serve it. See Creative for the full list of status values.

When a creative is rejected, review_metadata.review_notes explains why. Rejection is not recoverable in place — correct the input and create a new creative.

Listing Creatives

Get Creatives returns the account’s creatives and is the endpoint to poll while waiting for review. It supports page_token and page_limit for pagination, and a creative_id filter for one creative:

curl "https://api.uber.com/v1/ads/{account_id}/creatives?creative_id=7c2f4b19-8ad3-4e60-b1f7-9e05c3a2d846" \
  -H "Authorization: Bearer <TOKEN>"

Uber

Developers
© 2026 Uber Technologies Inc.