All integrations

Amara

DOCS & KNOWLEDGE · FILES & DOCS

Videos, subtitle versions, and teams in the Amara account they connected.

Acts as the person, not as itself

Each user connects their own account. Every call carries both identities — the agent and the person it is acting for — so the agent can never reach past what that individual can already do.

Credentials never touch the agent

Tokens live in the vault and attach server-side at call time. The agent holds a session, not a secret, and revoking access does not mean rotating a key.

Every call on the record

Who asked, which agent acted, which action ran, and the verdict that let it through — one audit trail across every integration, not one per vendor.

What an agent can do

Each action is granted on its own. An agent allowed to read is not thereby allowed to write, and the scope beside each row is what the acting user must have connected for it to run at all.

amara_delete_api_teams_team_slug_members_user_identifierWRITE

Remove a user from a team via DELETE /api/teams/{team_slug}/members/{user_identifier}/. Removes a user's membership of a team.

api
amara_delete_api_teams_team_slug_projects_project_slugWRITE

Delete a project via DELETE /api/teams/{team_slug}/projects/{project_slug}/. Deletes a team project.

api
amara_delete_api_teams_team_slug_subtitle_requests_job_idWRITE

Delete a subtitle request via DELETE /api/teams/{team_slug}/subtitle-requests/{job_id}/. Deletes a subtitle request. Only admins of the request's SOURCE team can do this.

api
amara_delete_api_videos_video_idWRITE

Delete a video via DELETE /api/videos/{video_id}/. Deletes a video and answers 204 No Content. Only possible for a video that is part of a team you are an ADMIN of.

api
amara_delete_api_videos_video_id_languages_language_code_subtitlesWRITE

Delete subtitles via DELETE /api/videos/{video_id}/languages/{language_code}/subtitles/. Deletes ALL subtitle versions for a language and answers 204 No Content. Only allowed if the video is part of a team and the API user is an ADMIN of that team.

api
amara_delete_api_videos_video_id_urls_url_idWRITE

Delete a video URL via DELETE /api/videos/{video_id}/urls/{url_id}/. Deletes one of a video's URLs and answers 204 No Content. Take the id from the URL listing's `resource_uri`.

api
amara_get_api_activityREAD

Legacy activity list via GET /api/activity/. DEPRECATED by Amara: a site-wide activity list filtered by query parameter. Amara's own documentation says new code should use the video, team or user activity resources instead. Its `type` filter is an INTEGER code rather than the name the other three take, and `before`/`after` are unix timestamps rather than ISO-8601. If both `team` and `video` are given, `team` wins and `video` is ignored.

api
amara_get_api_languagesREAD

List available languages via GET /api/languages/. Lists every language Amara supports, as a mapping of language code to English name. Requires the API key even though it is reference data (measured: 403 without one).

api
amara_get_api_teamsREAD

List teams via GET /api/teams/. Lists teams, paginated. The response data is the same as the single-team endpoint's.

api
amara_get_api_teams_slugREAD

Get details on a team via GET /api/teams/{slug}/. Gets one team: its type, description, visibility, membership and video policies, and links to its members, projects, applications, languages and activity.

api
amara_get_api_teams_slug_activityREAD

Team activity via GET /api/teams/{slug}/activity/. Lists activity on one team's videos and on the team itself (members joining and leaving, videos moved in or out, review and approval events). Paginated.

api
amara_get_api_teams_slug_membersREAD

List team members via GET /api/teams/{slug}/members/. Lists a team's members with each one's role. Paginated.

api
amara_get_api_teams_slug_members_user_identifierREAD

Get details on a single member via GET /api/teams/{slug}/members/{user_identifier}/. Gets one team membership: the user, their role, and for a `proj_lang_manager` the projects and languages they manage.

api
amara_get_api_teams_team_slug_applicationsREAD

List applications to your team via GET /api/teams/{team_slug}/applications/. Lists the membership applications made to a team, with each applicant's note and status (Pending, Approved, Denied, Member Removed, Member Left). A team only has applications when its membership policy is by application. Paginated.

api
amara_get_api_teams_team_slug_applications_application_idREAD

Get details on an application via GET /api/teams/{team_slug}/applications/{application_id}/. Gets one membership application. The data is the same as the listing's. Amara documents this as `[application-uri]`; take the id from the listing's `resource_uri`.

api
amara_get_api_teams_team_slug_notificationsREAD

List team notifications via GET /api/teams/{team_slug}/notifications/. Lists the HTTP callbacks Amara sent for a team: the URL posted to, the data posted, the response status and any error. Callbacks are an ENTERPRISE feature and are registered by emailing enterprise@amara.org, not through the API. Paginated.

api
amara_get_api_teams_team_slug_notifications_numberREAD

Get details on one notification via GET /api/teams/{team_slug}/notifications/{number}/. Gets one team HTTP callback by its number. The data is the same as the listing's.

api
amara_get_api_teams_team_slug_projectsREAD

List team projects via GET /api/teams/{team_slug}/projects/. Lists a team's projects, with each one's guidelines and whether tasks are enabled for it. Paginated.

api
amara_get_api_teams_team_slug_projects_project_slugREAD

Get details on a project via GET /api/teams/{team_slug}/projects/{project_slug}/. Gets one team project. The data is the same as the listing's.

api
amara_get_api_teams_team_slug_subtitle_requestsREAD

List subtitle requests via GET /api/teams/{team_slug}/subtitle-requests/. Lists a collaboration team's subtitle requests -- the records that track work on a video's subtitles through subtitling, review and approval. Which status fields come back depends on the team's relationship to each request (source, work or evaluation team). Paginated.

api
amara_get_api_teams_team_slug_subtitle_requests_job_idREAD

Get details on a subtitle request via GET /api/teams/{team_slug}/subtitle-requests/{job_id}/. Gets one subtitle request. The data is the same as the listing's.

api
amara_get_api_users_identifierREAD

Get user data via GET /api/users/{identifier}/. Gets a user's public profile: username, id, names, homepage, biography, avatar, the languages they speak and how many videos they follow. The identifier is a username or a user id prefixed with `id$`; `me` returns the account this API key belongs to.

api
amara_get_api_users_identifier_activityREAD

User activity via GET /api/users/{identifier}/activity/. Lists the activity one user performed, across the videos and teams they work on. Paginated.

api
amara_get_api_videosREAD

List videos via GET /api/videos/. Lists videos. You probably want a query filter to limit the results: with no query parameter at all Amara lists the last 20 PUBLIC videos. `project` requires `team`, and passing `team=null` returns only videos in the public area. Results are paginated.

api
amara_get_api_videos_video_idREAD

View video details via GET /api/videos/{video_id}/. Gets one video by its Amara video id: title, description, duration, thumbnail, team, project, metadata, every URL it has, and the languages that have subtitles started.

api
amara_get_api_videos_video_id_activityREAD

Video activity via GET /api/videos/{video_id}/activity/. Lists activity on one video -- versions added, titles changed, URLs added or removed, comments -- newest first and paginated. Depending on the activity type each item may carry extra fields (`url`, `old_url`/`new_url`, `title`).

api
amara_get_api_videos_video_id_languagesREAD

List subtitle languages for a video via GET /api/videos/{video_id}/languages/. Lists a video's subtitle languages -- the containers that hold subtitles in one language -- with each one's completion state, soft limits and version history. A subtitle language is usually created when the first editing session starts. Paginated.

api
amara_get_api_videos_video_id_languages_language_codeREAD

Get details on a single subtitle language via GET /api/videos/{video_id}/languages/{language_code}/. Gets one subtitle language of a video. The response data is the same as the listing's, plus `num_versions`.

api
amara_get_api_videos_video_id_languages_language_code_subtitlesREAD

Fetch subtitles data via GET /api/videos/{video_id}/languages/{language_code}/subtitles/. Fetches a language's subtitles. Pass `format` (dfxp, sbv, srt, ssa or vtt) to get the raw subtitle file in that format instead of the JSON envelope -- and note that `format` OVERRIDES `sub_format`, which is ignored when it is given. `version_number` picks a specific version; without it the latest public version is returned.

api
amara_get_api_videos_video_id_languages_language_code_subtitles_actionsREAD

List subtitle actions via GET /api/videos/{video_id}/languages/{language_code}/subtitles/actions/. Lists the actions currently available on a language's subtitles -- the buttons in the top-right of the subtitle editor (save, save a draft, approve, reject). Which ones exist depends on the video's team, whether there is a completed draft, and the caller's role.

api
amara_get_api_videos_video_id_languages_language_code_subtitles_notesREAD

Fetch subtitle notes via GET /api/videos/{video_id}/languages/{language_code}/subtitles/notes/. Fetches the subtitle editor notes for a language: who wrote each one, when, and its text.

api
amara_get_api_videos_video_id_urlsREAD

List video URLs via GET /api/videos/{video_id}/urls/. Lists the URLs associated with a video. Every video has at least one, and several let the same subtitles be associated with the video on multiple providers (a YouTube version, a Vimeo version). Exactly one is flagged `primary`, which is what the embedder and the editor use. Paginated.

api
amara_get_api_videos_video_id_urls_url_idREAD

Get details on a video URL via GET /api/videos/{video_id}/urls/{url_id}/. Gets one video URL. The fields are the same as the listing's. Take the id from the listing's `resource_uri` rather than constructing it.

api
amara_post_api_messageWRITE

Post a message via POST /api/message/. Sends a message to a user or to a team and answers 201 Created. Send either `user` or `team`, never both.

api
amara_post_api_teamsWRITE

Create a team via POST /api/teams/. Creates a team. `name`, `slug` and `type` are required. Amara RESTRICTS team creation to Amara partners, so a non-partner account is refused.

api
amara_post_api_teams_team_slug_membersWRITE

Add a member to a team via POST /api/teams/{team_slug}/members/. Adds a user to a team with a role. `languages_managed` and `projects_managed` apply only to the `proj_lang_manager` role.

api
amara_post_api_teams_team_slug_projectsWRITE

Create a new project via POST /api/teams/{team_slug}/projects/. Creates a project on a team. `name` and `slug` are required.

api
amara_post_api_teams_team_slug_subtitle_requestsWRITE

Create a subtitle request via POST /api/teams/{team_slug}/subtitle-requests/. Creates a subtitle request for a video on a collaboration team. `video` and `language` are required, and the video must belong to the team in the path. You must be an ADMIN of the team. `team` and `evaluation_teams` are the multi-team form: they hand the work, or its evaluation, to other teams you are an admin of.

api
amara_post_api_usersWRITE

Create a user via POST /api/users/. Creates an Amara user account and answers 201 Created. `username`, `email` and `password` are required. `create_login_token` adds an `auto_login_url` to the response that signs the new user in without a password and expires in 2 hours; `find_unique_username` makes Amara pick a free variant when the username is taken, so check the username that comes back.

api
amara_post_api_videosWRITE

Add a video via POST /api/videos/. Adds a video to Amara from its URL. Any URL Amara accepts works: a direct media file or a link to an accepted provider (YouTube, Vimeo). Answers 201 Created with the new video, whose `id` is the Amara video id every other video tool takes.

api
amara_post_api_videos_video_id_languagesWRITE

Create a subtitle language via POST /api/videos/{video_id}/languages/. Creates a subtitle language container on a video and answers 201 Created. Only `language_code` is required; the soft limits are editor warnings rather than hard constraints.

api
amara_post_api_videos_video_id_languages_language_code_subtitlesWRITE

Add new subtitles via POST /api/videos/{video_id}/languages/{language_code}/subtitles/. Adds a new subtitle version to a language and answers 201 Created. Send the subtitles inline as `subtitles` or by URL as `subtitles_url`, in the format named by `sub_format` (dfxp by default). Prefer `action` over the deprecated `is_complete`: when `action` is given, `is_complete` is ignored.

api
amara_post_api_videos_video_id_languages_language_code_subtitles_actionsWRITE

Perform a subtitle action via POST /api/videos/{video_id}/languages/{language_code}/subtitles/actions/. Performs one of the available actions on a language's subtitles. Equivalent to opening the editor, changing nothing and clicking that button. An action can also be performed while adding subtitles, through the subtitles endpoint's `action` field.

api
amara_post_api_videos_video_id_languages_language_code_subtitles_notesWRITE

Add a subtitle note via POST /api/videos/{video_id}/languages/{language_code}/subtitles/notes/. Posts a subtitle editor note on a language and answers 201 Created.

api
amara_put_api_teams_team_slug_applications_application_idWRITE

Approve or deny an application via PUT /api/teams/{team_slug}/applications/{application_id}/. Decides a membership application: `Approved` admits the applicant to the team, `Denied` refuses them. Amara documents this as `[application-uri]`; take the id from the application listing's `resource_uri`.

api
amara_put_api_teams_team_slug_languages_blacklistedWRITE

Set a team's blacklisted languages via PUT /api/teams/{team_slug}/languages/blacklisted/. Replaces a team's blacklisted languages with the list sent as the body -- a JSON ARRAY of language codes, not an object. Subtitles are not allowed in a blacklisted language. (Documented at apidocs.amara.org#blacklisted-languages-resource; absent from the extracted ledger and added by this build after measuring the route mounted.)

api
amara_put_api_teams_team_slug_languages_preferredWRITE

Set a team's preferred languages via PUT /api/teams/{team_slug}/languages/preferred/. Replaces a team's preferred languages with the list sent as the body -- a JSON ARRAY of language codes, not an object. Preferred languages have tasks auto-created for each of the team's videos. (Documented at apidocs.amara.org#preferred-languages; absent from the extracted ledger and added by this build after measuring the route mounted.)

api
amara_put_api_teams_team_slug_members_user_identifierWRITE

Change a team member's role via PUT /api/teams/{team_slug}/members/{user_identifier}/. Changes an existing member's role on a team, and the projects and languages they manage.

api
amara_put_api_teams_team_slug_projects_project_slugWRITE

Update a project via PUT /api/teams/{team_slug}/projects/{project_slug}/. Updates a team project's name, description or guidelines. The slug cannot be changed: it is not in the update's request data.

api
amara_put_api_teams_team_slug_subtitle_requests_job_idWRITE

Update a subtitle request via PUT /api/teams/{team_slug}/subtitle-requests/{job_id}/. Updates a subtitle request: assign or unassign the subtitler, reviewer, approver or evaluator (send null to unassign), move the work stage, or change the due dates. Which fields are accepted depends on the team's relationship to the request; `team` and `evaluation_teams` are source-team fields and can only be changed before that work starts. `work_status` is the deprecated way to complete a request -- prefer `work_stage`.

api
amara_put_api_users_identifierWRITE

Update your account via PUT /api/users/{identifier}/. Updates a user account's username, email or name. The identifier is a username or a user id prefixed with `id$`.

api
amara_put_api_videos_video_id_languages_language_codeWRITE

Update a subtitle language via PUT /api/videos/{video_id}/languages/{language_code}/. Updates a video's subtitle language. The request data is the same as when creating one EXCEPT that `language_code` is not allowed -- the language is identified by the path. (Documented at apidocs.amara.org#update-a-subtitle-language; it is absent from the extracted ledger and was added by this build after measuring the route mounted.)

api
amara_put_api_videos_video_id_urls_url_idWRITE

Make a video URL primary via PUT /api/videos/{video_id}/urls/{url_id}/. Makes this URL the video's primary URL -- the one the embedder and the editor use. There is only one field, `primary`, and only `true` is meaningful.

api

Put Amara behind one governed endpoint.

Same permissions, same audit trail, whatever else you connect next.