> ## Documentation Index
> Fetch the complete documentation index at: https://docs.storytime.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Campaign Details

<Columns cols={2}>
  <Column>
    ### Get details for a single campaign, structured as offer groups → tiers → offers, plus redemption locations.

    #### Required Scopes: `campaigns:read`

    <ResponseField name="ok" type="boolean">
      true on success
    </ResponseField>

    <ResponseField name="creatorId" type="string (uuid)">
      Echoed back
    </ResponseField>

    <ResponseField name="campaign" type="object">
      <Accordion title="child attributes" defaultOpen iconType="regular">
        <ResponseField name="brand.imageUrl" type="string (url)">
          Brand logo
        </ResponseField>

        <ResponseField name="status" type="string">
          `AVAILABLE`, `ACTIVATED`, or `ENDED` (creator's status)
        </ResponseField>

        <ResponseField name="active" type="boolean">
          Whether the brand currently has the campaign live
        </ResponseField>

        <ResponseField name="startsAt" type="string (date)">
          `YYYY-MM-DD`
        </ResponseField>

        <ResponseField name="endsAt" type="string (date) | null">
          `null` = open-ended
        </ResponseField>

        <ResponseField name="imageUrl" type="string (url)">
          Campaign hero image
        </ResponseField>

        <ResponseField name="offerGroups" type="object array">
          <Accordion title="child attributes" defaultOpen iconType="regular">
            <ResponseField name="status" type="string">
              `ACTIVE`, `PAUSED`, `DRAFT`, or `INACTIVE`
            </ResponseField>

            <ResponseField name="anyLocation" type="boolean">
              `true` = valid at all of the brand's locations
            </ResponseField>

            <ResponseField name="tiers" type="object array">
              <Accordion title="child attributes" defaultOpen iconType="regular">
                <ResponseField name="tierNum" type="number">
                  1-based tier position
                </ResponseField>

                <ResponseField name="name" type="string | null">
                  Display name; fall back to `Tier {tierNum}`
                </ResponseField>

                <ResponseField name="checkInType" type="string">
                  `LOCATION`, `NONE`, `CODE`, or `QR_CODE`
                </ResponseField>

                <ResponseField name="offers" type="object array">
                  <Accordion title="child attributes" defaultOpen iconType="regular">
                    <ResponseField name="value" type="number">
                      **Cents** when `redemptionType` is `PAID`; whole **dollars** (estimated value) for gifted offers
                    </ResponseField>

                    <ResponseField name="redemptionType" type="string">
                      `VOUCHER_SCREEN` (collab pass), `PROMO_CODE`, or `PAID`
                    </ResponseField>

                    <ResponseField name="instructions" type="string | null">
                      Redemption instructions for the creator
                    </ResponseField>
                  </Accordion>
                </ResponseField>
              </Accordion>
            </ResponseField>

            <ResponseField name="locations" type="object array">
              <Accordion title="child attributes" defaultOpen iconType="regular">
                <ResponseField name="address" type="string">
                  Full street address
                </ResponseField>

                <ResponseField name="mapTileUrl" type="string (url)">
                  Static map preview image
                </ResponseField>
              </Accordion>
            </ResponseField>
          </Accordion>
        </ResponseField>
      </Accordion>
    </ResponseField>
  </Column>

  <Column>
    ```shellscript bash wrap theme={null}
    curl -sS https://api.storytime.io/v1/creators/<creatorId>/campaigns/<campaignId> \
      -H "Authorization: Bearer pk_live_xxxxxxxxxxxxxxxxxxxxxxxx"
    ```

    ```json 200 theme={null}
    {
      "ok": true,
      "creatorId": "7d4e2a10-0000-4000-8000-000000000101",
      "campaign": {
        "id": "0b1f3d3e-4c1a-4a5e-9b6a-000000000001",
        "name": "Summer Tasting Menu",
        "description": "Join us for our new summer tasting menu — a five-course seasonal experience. Share your visit in a Reel or carousel and tag us.",
        "brand": {
          "id": "a9c8b7d6-0000-4000-8000-000000000201",
          "name": "Marlow & Vine",
          "imageUrl": "https://cdn.storytime.io/uploads/demo-brand-marlow.jpg"
        },
        "status": "AVAILABLE",
        "active": true,
        "startsAt": "2026-07-01",
        "endsAt": "2026-07-31",
        "imageUrl": "https://cdn.storytime.io/uploads/demo-summer-tasting.jpg",
        "offerGroups": [
          {
            "id": "d1e2f3a4-0000-4000-8000-000000000401",
            "name": "West Village Dinner",
            "status": "ACTIVE",
            "anyLocation": false,
            "tiers": [
              {
                "id": "c1d2e3f4-0000-4000-8000-000000000501",
                "tierNum": 1,
                "name": "Standard",
                "checkInType": "LOCATION",
                "offers": [
                  {
                    "id": "b1c2d3e4-0000-4000-8000-000000000601",
                    "description": "Five-course summer tasting menu for two",
                    "value": 150,
                    "redemptionType": "VOUCHER_SCREEN",
                    "instructions": "Show your collab pass to the host when you arrive."
                  }
                ]
              }
            ],
            "locations": [
              {
                "id": "f1a2b3c4-0000-4000-8000-000000000701",
                "name": "Marlow & Vine",
                "address": "21 Grove St, New York, NY 10014",
                "lat": 40.7331,
                "long": -74.0037,
                "mapTileUrl": "https://cdn.storytime.io/uploads/demo-map-marlow-grove.png"
              }
            ]
          }
        ]
      }
    }
    ```
  </Column>
</Columns>
