Create Bulk Purchase
create_bulk_purchasePlace bulk purchase orders for Wistia media, including captions, localization, audio descriptions, or text translations, in one asynchronous batch.
Instructions
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 anythingTokens 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.
Requires confirm=true for the requested mutation. May share access, notify people or incur provider charges.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| job | No | 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. | |
| account | No | Named private Wistia account; selects credentials, not a remote account ID. | |
| actions | No | 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. | |
| confirm | No | Must be true for the specific user-requested write. | |
| payload | No | Complete JSON request body instead of body flags. Supports current nested customization, caption and nullable values. | |
| payload_file | No | Regular local JSON body file, at most 5 MB. Cannot be mixed with body flags or payload. |