Sending to Drive and Dropbox
A finished project’s files can go straight into a Google Drive or Dropbox folder: each audio file, video and transcript, in a folder named after the project and the day it finished, under the show’s name for a show’s project (“Podcasts › Acme Weekly › Episode 12 (2026-10-06)”). The zip and the email still come as always.
Connections and destinations
Section titled “Connections and destinations”A connection is a Google Drive or Dropbox login, connected by an owner or admin in account settings (it needs a browser). A destination is a connection plus a folder.
GET /v1/connections (projects:read) the logins; never their credentialsGET /v1/destinations (projects:read)POST /v1/destinations (destinations:manage) {"connectionId", "name", "target"}GET /v1/destinations/{id} (projects:read)PATCH /v1/destinations/{id} (destinations:manage) {"name"}, {"target"}DELETE /v1/destinations/{id} (destinations:manage) removes it; deliveries keep their recordtarget is the folder: {"path": "/Podcasts"} on Dropbox, {"folderId": "…", "path": "Podcasts"} on Drive (the
folder chosen in Google’s picker); anything else is 400 invalid_target. A name is 1 to 200 characters. Up to 100
destinations per account (409 destination_limit); a connection that isn’t the account’s, or was removed, is 400
unknown_connection.
A connection whose login stopped working shows "status": "needs_reconnect": reconnect it in account settings, and
deliveries waiting on it go through.
A connection belongs to the account, not to the person who made it. When that person leaves the team, it keeps
working (files still go to its folders) and shows "connectedByFormerMember": true, and the account’s owners get an
email listing the logins they connected. If a login is that person’s own, disconnect it and connect one of the
team’s; connecting the same login again makes it the reconnecting person’s.
Sending a project
Section titled “Sending a project”Name the destinations when you create the project, up to 5:
{ "deliveries": ["dst_…"], "files": [{ "fileName": "host.wav" }] }Leave deliveries out and a show’s project gets the show’s default destinations (defaults.delivery, see
Shows and usage). Files are sent when the project completes.
To send a finished project somewhere (again), while its files exist:
POST /v1/projects/{id}/deliveries (projects:write) {"destinations": ["dst_…"]}A key limited to a show can only use its show’s default destinations (403 show_limited). More than 5 waiting
at once is 400 too_many_destinations; a destination that isn’t the account’s is 400 unknown_destination, and
one whose connection was removed is 400 connection_removed.
Statuses and retries
Section titled “Statuses and retries”The project’s deliveries lists each one: waiting, sending, delivered (with externalUrl, the folder),
failed (with error) or cancelled. The project itself stays completed whatever happens to its deliveries.
- A busy or unreachable service is tried again, from a minute apart up to an hour, for 24 hours.
- A login that stopped working marks the connection
needs_reconnectand keeps trying, so reconnecting finishes it. - A folder that’s gone, or an account out of space, fails it with the reason.
- Files that are gone (deleted, or past the 30 days without Keep) fail it:
files_expired.
A failed delivery’s error.code:
| Code | |
|---|---|
folder_missing | The folder was deleted or moved. |
folder_forbidden | The login can’t write to the folder any more. |
storage_full | The Drive or Dropbox account is out of space. |
files_expired | The project’s files are gone. |
timed_out | 24 hours of tries didn’t get the files there. |
connection_removed | The connection was removed from the account. |
destination_archived | The destination was removed. |
provider_error | Google or Dropbox refused the files for another reason (error.message says what). |
POST /v1/deliveries/{id}/retry tries a failed one again, into the folder it made (409 already_retried if it’s
already being tried again).
Failures are also emailed to the account’s owners and admins, at most once an hour, listing each one with its id.
Anyone can turn these emails off for themselves with deliveryAlerts in PATCH /v1/email-preferences. A test
project’s failures aren’t emailed.
Events
Section titled “Events”delivery.succeededanddelivery.failed, with the delivery asdata.object.connection.needs_reconnectwhen a login stops working.project.completedcarriesoutputs: each file with aurlthat works as long as the files do (30 days, or for good when kept). Every webhook attempt checks the files first: if they’re gone,filesAvailableisfalseand there are no links.
Test mode
Section titled “Test mode”A test project’s deliveries go through every status without reaching Google or Dropbox.