Create Bulk Purchase

Submits either an actions array of up to 1000 orders or one job that can
resolve to up to 5000 media. Orders are placed asynchronously. Returns a
background job status whose Show endpoint reports aggregate progress and
per-order results.

Orders in the batch can incur charges, so a saved credit card is required.
Supported resource types are captions (Wistia-generated English captions),
localization (a dubbed, language-specific version of a media),
extended_audio_description, and text_translation (the media's transcript
translated into another language, audio untouched). Each order's id is the
hashed ID of the media to order for.

What an order costs depends on the account, not on this endpoint. Automated
captions are included at no cost on plans that provide them and billed at
the account's configured per-minute rate otherwise; human-reviewed captions
bill per minute at the account's standard or rush rate; localizations bill
per minute once the account's free-dub allowance is used up; text
translations bill as an overage once the account's included translation
minutes are used up. Check the account's plan and billing settings for its
actual rates.

Orders are priced and placed individually: failures -- an ineligible media,
a language that already has a localization, an account not entitled to buy
-- are reported per order and do not stop the rest of the batch. Pricing and
eligibility match the equivalent single-media endpoints exactly.

Use the Create Bulk Actions endpoint for create, update, and delete work; it
does not accept purchase, and this endpoint accepts nothing else.

Requires api token with one of the following permissions

Read, update & delete anything

Tokens with the "Act with a team member's permissions" permission
(all:delegate_to_contact_permissions scope) can also be used. Requests
made with such a token are authorized using the permissions of the
contact assigned to the token.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Body Params

A bulk purchase request, in one of two shapes.

Send actions to name each media individually, and job to order for every
media under a parent. Provide exactly one of them -- a request carrying both
is rejected, and so is a request carrying neither.

actions
array of objects
length between 1 and 1000

The orders to place, one per media. Maximum 1000 per request, and the
request body must stay under 2 MB -- whichever limit is reached first. An
oversized body is rejected with a 413 and no order in it is placed.

Every order is priced and placed independently: one failing (an
ineligible media, an account without a saved card, a language that
already has a localization) does not stop the rest of the batch.

Use job instead to order for a whole folder, channel, or account.

actions
job
object

One order placed for many media, named by a parent (scope) or listed
explicitly (ids), so ordering captions for a folder of 47 videos takes one
job rather than 47 orders.

A scope resolves to exactly what List Media returns for that parent,
including media in the folder's subfolders and archived media, and to at
most 5000 media -- beyond that the job is rejected rather than truncated.

The job attempts one order for every media it resolves to. Ineligible media
fail individually without placing an order; successful orders are metered
and may incur charges according to the account's plan. Confirm the scope and
potential cost with the customer before submitting. Not available to external
contacts.

Headers
string
required
Defaults to 2026-09
Responses

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