Skip to main content

Custom feeds

Custom feeds, under Content sources, is where your own systems put data into Reelwire: each event they send becomes a post on every channel listening to the stream it names. They sign in with a key from API keys, under Connections. Custom feeds are on every tier, Free included: what a plan sells is render allowance, storage and seats, never whether the product can be driven from your own code. Reelwire's ready-made feeds and the posts you write in the Post composer publish alongside them.

The Custom feeds screen

Streams​

The Custom feeds screen lists your streams. A stream is a named place your data arrives. It renders through one template, and every channel subscribing to it chooses the variant and the version. One route serves every stream: you name the stream in the body as streamId and send an API key as a bearer token. An ID is only accepted with a key belonging to the account that owns it.

Every new workspace starts with one, Default stream, drawn through the first template the workspace is offered, and Default channel already listens to it. To send to it, make a key under API keys with Custom feeds - Send raw data ticked, and post that template's published format with the stream's ID.

There is no field mapping. Every template publishes the keys it accepts at /v1/formats/template/{id}, so a producer written against the published format sends the content directly and there is nothing in between to configure. See Sending events in the API reference for the request in full.

Add new stream asks for a name and the template, and shows the ID the stream will have. Nothing is rendered until you tick a channel under its Settings.

Each row says whether the stream is Live or Paused, its name, its template and its ID (the search above the table reads all three, and Status shows only the live or only the paused ones), then:

  • Pause stops the stream accepting data until you press Resume. Anything sent meanwhile is refused with a message saying the stream is paused.
  • Preview plays the template's reference video, so you can see what the stream's clips look like before any of your data arrives: choose the variant, the version and the aspect ratio above it, or step through the template's styles with Previous variant and Next variant.
  • Settings changes the name or the template, and chooses the stream's channels.
  • Remove asks you to type the stream's name first.

Channels, in a stream's Settings, lists your channels, each with its brand's logo and its platform's mark, the ones already listening first, with a search above them and ten to a page. Tick a channel and it posts what the stream carries; untick one and it stops, which is said above Save before you press it, and clips already made stay as they are. Settings on a ticked channel chooses its Visual variant, its Version and its Look there: Done keeps them, and nothing changes until Save. The stream shows under each of those channels' Sources, where it can also be paused.

Two things to know:

The ID cannot change. Your system names it in every request, so changing it would break that silently. The ID is minted when you open the Add dialogue, before the stream exists, so what you copy out of the dialogue is what gets created.

Changing a stream's template resets the channels. A channel subscribing to a stream renders through the template set here, in the variant and version that channel chose. Change the template and every one of those channels goes back to the default variant and the latest version.

Removing a stream stops it accepting data. Anything still sending its ID gets a refusal saying the stream was removed, rather than silence. The channels listening to it stop listening. Data it already received still renders and posts, and its posts stay on Posts.

Get your code​

The card Get your code, under the streams, writes a working sender for one of your streams, ready to copy into your own system, in Node.js, Python, PHP, C# or curl. Choose the stream and the language above the code. It holds the route, your API key as a bearer token (written as YOUR_API_KEY, never the key itself: make one under API keys with Custom feeds - Send raw data ticked and put it there), the stream's ID, a fresh event ID per event, the time it happened, and the data, starting from the stream's template example so the first run renders. Where a language needs a package installed, the first line names it.

Test tool​

The Test tool's Response dialogue after Check

The card Test tool, under Get your code, is a built-in custom feed simulator: it sends one of your streams an event from the dashboard, as your own system would, so you can see the whole chain work before your system sends anything. Open test tool opens it on one stream, with the event's data written as JSON and starting from the stream's template example, in the variant its channels draw (the template's first where they draw different ones). The stream's ID, a fresh event ID and the time are added for you, as your system would add them. Only live streams are offered: resume a paused one to test it.

  • Check tests the event against the template, in the variant each listening channel draws, and stores nothing.
  • Send test event sends it for real: every channel listening to the stream renders a post of it, which counts against this month's videos, and hands it over like any other. Follow it on Posts.

Either answer opens in a Response dialogue: what Reelwire sent back, exactly as your system would read it, and under it a green note when the event fits and a channel makes (or would make) a post of it, naming the channels, or a red one saying why not: every field that does not fit the template, or that no channel listens to the stream yet. A channel whose variant takes different content is named in the green note as left out, with the field that did not fit it, while the others post. Data that is not valid JSON is caught in the tool itself, before anything is sent. Fill with the template's example, under the data, puts the stream's template example back, asking first if you changed it.

No API key is needed for either: the test tool acts as you, signed in, and only a person can use it. It needs the Operations permission.

If the subscription is cancelled​

The gate is on creating things, not on running them. A cancelled workspace keeps the streams and the subscriptions it already has, so nothing stops a script that is already sending. What it stops is making new ones, and resubscribing on any tier, Free included, opens it again. While it is cancelled, Custom feeds and API keys are not in the menu either; resubscribing brings them back.