Create Sources

Push the creators, shows, and accounts a brand works with into Fairing. Each source you push becomes a response option on that brand's auto suggest questions.

🔒

Partner-only endpoint

Access is limited to approved source contributors. A valid Fairing token that isn't from an approved contributor receives a 403. Contact us if you're a
partner who needs access.

Terminology

TermMeaning
SourceA creator, show, or account a customer might name when asked how they heard about a brand — e.g. a YouTube creator, a podcast, an Instagram account.
ChannelThe platform a source lives on. Must be one of the supported channels below.
Channel source IDThe source's handle or identifier on that channel — e.g. a YouTube handle. Optional.

Response options shown to customers concatenate the name and the channel source ID: Name (channel source id) — e.g. MrBeast (@MrBeast).

Behaviour

The endpoint allows up to one hundred sources to be created per request. One invalid source never blocks the rest of the batch: the valid ones are created, the invalid ones come back under rejected with field-level errors.

Deduplication and Idempotency

Sources are deduplicated on the combination of: channel, name and channel source id; compared case insensitively.

Deduplication happens within one request and across multiple as well. Retries are safe: re-pushing a source that already exists writes nothing new and simply echoes it back. If a request times out, you can retry the whole batch.

A source another partner already pushed for the same brand still comes back under created — your contribution is recorded separately — but customers see one response option, not two.

Two sources with…Result
the same channel, name, and channel source IDone source
names differing only in casing — MrBeast and mrbeastone source
channel source IDs differing only in a leading @@MrBeast and MrBeastone source
the same name on different channelstwo distinct sources
the same channel and name, one with a channel source ID and one withouttwo distinct sources

Response

A well-formed batch returns 200 when every source was created, or 207 when at least one was rejected. Both carry the same body, partitioned into what was stored and what was refused:

{
  "created": [
    { "name": "MrBeast", "channel": "YouTube", "channel_source_id": "MrBeast" },
    { "name": "The Daily", "channel": "Podcast", "channel_source_id": null }
  ],
  "rejected": [],
  "summary": { "created": 2, "rejected": 0 }
}
  • created reflects what was stored, after normalization. The channel comes back in canonical casing, and the channel source ID comes back bare, without a leading @.
  • rejected echoes each refused source back exactly as you sent it, next to its errors.
  • summary counts both partitions.

Treat 200 and 207 the same way: the batch was accepted and processed.

ℹ️

Handles are stored bare

Send @MrBeast or MrBeast: both are accepted. Fairing strips the leading @, so the response echoes MrBeast. Display re-adds it. A channel source ID that is blank, whitespace, or just @ is treated as absent and comes back as null.

Body Params
sources
array of objects
required
sources*
Responses

Language
Credentials
Header
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json