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

# ClickFlare API Overview

> Authenticate against the ClickFlare public API and manage campaigns, offers, landers and integrations programmatically.

The ClickFlare public API exposes the same objects you work with in the interface — campaigns, offers, landers, flows, traffic sources, affiliate networks, domains and integrations — so you can create and maintain them from your own code instead of clicking through the UI.

It is the right tool when you are launching campaigns in bulk, syncing ClickFlare with an internal system, or building automation on top of your account. For everyday work, the interface is faster.

## Base URL

```text theme={null}
https://public-api.clickflare.io
```

Endpoints sit under `/api`, so a request for your campaigns goes to:

```text theme={null}
GET https://public-api.clickflare.io/api/campaigns
```

## Authentication

Every request is authenticated with an API key sent in a header named `api-key`. There is no OAuth flow and no bearer token.

<Steps>
  <Step title="Create a key">
    In ClickFlare, go to **Settings → API Keys** and generate a key.
  </Step>

  <Step title="Send it with every request">
    Add it as the `api-key` header. A request without it returns `401 unauthorized`.

    ```bash theme={null}
    curl https://public-api.clickflare.io/api/campaigns \
      -H "api-key: YOUR_API_KEY"
    ```
  </Step>
</Steps>

<Warning>
  An API key carries the same permissions as your account. Keep it out of client-side code, out of landing pages, and out of anything you share — anyone holding it can read and modify your campaigns.
</Warning>

## What you can reach

The API covers 54 endpoints. The larger groups are the ones you would expect to automate:

| Area                   | What it covers                                                                       |
| ---------------------- | ------------------------------------------------------------------------------------ |
| **Campaigns**          | Create, update, clone, list, archive and unarchive campaigns, and upload manual cost |
| **Offers**             | Full CRUD plus cloning and archiving                                                 |
| **Landers**            | Full CRUD plus cloning and archiving                                                 |
| **Flows**              | Create and manage flows and their paths                                              |
| **Traffic sources**    | Manage sources and their token mappings                                              |
| **Affiliate networks** | Manage networks and their postback templates                                         |
| **Integrations**       | Cost and conversion API integrations, and their settings                             |
| **Domains**            | List and manage tracking domains                                                     |
| **Workspaces**         | Manage workspaces and their contents                                                 |
| **Reporting**          | Pull report data                                                                     |
| **Event logs**         | Read event and system activity logs                                                  |

Smaller groups cover scripts, boards, columns, settings and the raw conversion uploader.

## Full endpoint reference

The complete specification — every path, parameter, request body and response — lives on the developer portal:

<Card title="ClickFlare Public API reference" icon="code" href="https://developers.clickflare.com/">
  Browse all 54 endpoints with their full request and response schemas.
</Card>

The raw OpenAPI document is served at `https://public-api.clickflare.io/api/swagger.json` if you want to generate a client from it.

## Before you automate

<AccordionGroup>
  <Accordion title="Create one of everything by hand first" icon="list-check">
    Build a working campaign through the interface before you script it. The API mirrors the same objects and the same required fields, and it is far easier to see what a valid offer or flow looks like when you can inspect one you already made.
  </Accordion>

  <Accordion title="Elements are reusable, so create them once" icon="tag">
    Offers, landers, traffic sources and affiliate networks are shared across campaigns. Creating a new offer for every campaign fragments your reporting. Fetch the existing element and reference it instead.

    See [Offers: What They Are and How Payout Works](/docs/en/core-platform-concepts/offers-what-they-are-and-how-payout-works).
  </Accordion>

  <Accordion title="Tracking still has to be correct" icon="triangle-exclamation">
    The API creates objects; it does not verify that your tracking works. A campaign created through the API still needs the click ID appended to the offer URL and a postback configured on the network side.

    See [Tracking Conversions Using S2S Postback](/docs/en/tracking/tracking-conversions-using-s2s-postback).
  </Accordion>
</AccordionGroup>

## Related

<Columns cols={2}>
  <Card title="MCP server" icon="robot" href="/docs/en/advanced-features/click-flare-ai-integration-mcp">
    Connect ClickFlare to an AI assistant and query your account in plain language.
  </Card>

  <Card title="Tracking URLs" icon="link" href="/docs/en/settings/tracking-ur-ls">
    The click and postback URLs your campaigns use, and where to find them.
  </Card>
</Columns>
