---
title: "Add TM"
method: POST
path: "/tms"
tags: ["Translation Memory"]
---

# Add TM

`POST /tms`

## Request

- Base URL: `https://api.crowdin.com/api/v2`
- URL: `https://api.crowdin.com/api/v2/tms`
- Auth: none declared
- TypeScript: <https://skmtc.dev/crowdin/apis/crowdin-api-v2/docs/tms/post.ts> (a function with typed inputs; its response is checked against the schema)

**Required scopes:** `tm` (Read and Write).

## Request body

- CrowdinTmCreateForm
  - `name` string, required: Translation Memory name
  - `languageId` string, required: Translation Memory Language Identifier. Get via [List Supported Languages](#operation/api.languages.getMany)
  - `isShared` boolean: Whether TM should be shared to all projects within the account

## Response `201`

TM was successfully created

- CrowdinTmResource: Base schema of resource container. Container is a wrapper object that contains payload in required `data` property and provides space for adding any other metadata.
  - `data` Tm, required
    - `id` integer
    - `userId` integer, nullable
    - `name` string
    - `languageId` string, nullable
    - `languageIds` string[], nullable
    - `segmentsCount` integer: Translation units count
    - `defaultProjectIds` integer[]
    - `projectIds` integer[], nullable
    - `isShared` boolean: Whether TM should be shared to all projects within the account
    - `webUrl` string
    - `createdAt` string, date-time, nullable
    - `managerIds` integer[]: IDs of managers who can manage this resource. The resource owner sees all managers; a manager sees only their own ID. Other users get an empty list. Pending invitations aren't included. Get via [List Managers](#operation/api.managers.getMany)

## Other responses

- `400`: Invalid Request Parameters
- `405`: Method Not Allowed

---

[API](https://skmtc.dev/crowdin/apis/crowdin-api-v2.md) - [All operations](https://skmtc.dev/crowdin/apis/crowdin-api-v2/llms.txt) - [OpenAPI document](https://skmtc.dev/crowdin/apis/crowdin-api-v2/revisions/27aae7751699?raw)
