This guide is about managing TMS connectors — connecting Phrase TMS to third-party systems like Google Drive, GitHub, Amazon S3, WordPress, Marketo, and others. It does not cover building a new connector type from scratch; see Build a TMS Plugin for that.
Two different APIs, easy to confuse
Phrase has two separate API surfaces that both use the word “connector,” and it’s easy to reach for the wrong one:- The Connectors API only moves file content through a connector that has already been set up — listing, uploading, downloading, and converting files inside a connector’s remote storage. It has no endpoints to create, edit, or delete a connector itself.
- The TMS API (this guide) owns the connector’s actual lifecycle — creating a new connector, listing your existing ones, viewing or editing a connector’s configuration, deleting it, and checking its sync status. This is where you go to set up a new Google Drive, GitHub, Amazon S3, WordPress, or Marketo connector.
What you’ll build
A typical connector setup flow looks like this:- Confirm the connector doesn’t already exist (list existing connectors and check by name/type — avoid creating duplicates).
- For OAuth-based connector types (Google Drive, GitHub, Box, Salesforce, and others — see OAuth Connector Setup), walk the user through authorizing access to the third-party account.
- Create the connector with the fields that type requires.
- Check the connection status, and fix credentials if it’s rejected.
- Optionally, monitor sync status and browse what the connector has picked up.
Choose your path
OAuth Connector Setup
Walk through the authorization-code flow required for Google Drive, GitHub, Box, Salesforce, and other OAuth-based connector types.
Troubleshooting
Diagnose access-denied errors, per-connector-type field quirks, and common setup mistakes.
The connector lifecycle endpoints
All connector lifecycle operations live under/api2/v1/connectors on the TMS API:
Once a connector is created, keep a reference to its
uid — you’ll need it to view, edit, delete, or check the status of that connector later, and it’s what you’d use to link directly to the connector’s page in the TMS UI (/tms/connectors/edit/{uid}).
A connector being successfully created is a different thing from its connection being successfully tested. If
PATCH/POST succeeds but a follow-up connection test reports an error status (e.g. GENERAL_ERROR, UNAUTHORIZED), the connector object still exists — you’ll usually need to go fix its credentials rather than starting over.