---
title: "GET /affiliate/campaigns/{id}"
method: GET
path: "/affiliate/campaigns/{id}"
---

# GET /affiliate/campaigns/{id}

`GET /affiliate/campaigns/{id}`

Returns a single campaign based on the ID supplied

## Path parameters

- `id` string, required

## Response `200`

Campaign response

- AffiliateCampaign
  - `data` object
    - `id` string — The id of the campaign
    - `name` string — The name of the campaign
    - `period` object — The period of the campaign. If this field is null, the campaign is a permanent campaign.
      - `startAt` string — The start date of the campaign
      - `endAt` string — The end date of the campaign
    - `type` string — The type of the campaign. Possible values: `PersonalCoupon`, `GenericCoupon`, `Offer`
    - `offerType` 'Spreadsheet' | 'Url' — Type of offer (when type is Offer). Possible values: `Spreadsheet`, `Url`
    - `categories` string[] — The categories of the campaign
    - `description` string — The description of the campaign
    - `code` string — The coupon code of the campaign
    - `url` string — The URL of the campaign
    - `organizationId` string — The id of the brand that the campaign belongs to
    - `isHighlight` boolean — If this campaign is a highlight campaign
    - `status` 'onTime' | 'expired' | 'scheduled' — The status of the campaign, calculated automatically based on the period. Possible values: `onTime` (active campaign within period), `expired` (campaign expired - period.endAt has passed), `scheduled` (campaign scheduled - period.startAt has not arrived yet)
    - `createdAt` string — The date and time the campaign was created
    - `channels` object[] — List of all your channels. Each channel generates a URL with its specific parameters. If a channel has any brand restrictions, the link will not be generated and the message field will be filled with the restriction type.
      - `id` string — Channel identifier
      - `name` string — Channel name
      - `availableChannel` object
        - `id` string — Available channel identifier
        - `name` string — Available channel name
      - `shortUrls` string[]
      - `message` string — If the channel has any brand restrictions, the link will not be generated and this field will contain the restriction type. Possible values: `This channel is not allowed by the organization.` `Organization approval is required to generate links.`
    - `mediaKit` MediaKit, nullable — Marketing materials available for affiliates. Returns null when not available.
      - `banners` string[], nullable — Array of banner URLs available for marketing
      - `emailMarketing` unknown
  - `meta` Meta
    - `total` integer
    - `page` integer
    - `limit` integer
    - `totalPages` integer

## Other responses

- `401` — API key missing or invalid
- `403` — Valid key without required scope
- `404` — Campaign not found
- `429` — Rate limit exceeded (60 req/60s per key + IP)

---

[API](https://skmtc.net/lomadee/apis/lomadee-public-api.md) · [All operations](https://skmtc.net/lomadee/apis/lomadee-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/lomadee/lomadee-public-api/versions/e9ae83c68dbe/schema)
