---
title: "Assign strings to a user"
method: POST
path: "/content-assignments-api/v3/projects/{projectId}/strings/assign"
tags: ["content-assignments-v3"]
---

# Assign strings to a user

`POST /content-assignments-api/v3/projects/{projectId}/strings/assign`

## Request

- Base URL: `https://api.smartling.com`
- URL: `https://api.smartling.com/content-assignments-api/v3/projects/{projectId}/strings/assign`
- Auth: HTTP bearer

Assigns up to `500` strings, identified by `hashCodes`, to a user
for a workflow step and locale. Content is assigned directly by
hashcode; there's no task-bucket or claiming concept.

The operation runs asynchronously. Poll the process status
endpoint with the returned `processUid` for progress and outcome.

The target user must have a workflow assignment for the step and
locale before they can be assigned to content in that step.

Translation Resource Managers (TRMs), Agency Account Owners (AAOs),
and other roles with access to the endpoint can assign any user who
has that workflow assignment. A Translation Resource (TR) can only
assign content to themselves, and only when claiming is enabled for
the account.

Returns `400` when: `hashCodes` is empty or exceeds `500` entries;
`localeId` or `workflowStepUid` is missing or not accessible to
the caller; `userUid` is missing or does not resolve to a known
user; the target user has no workflow assignment for the step and
locale; the caller is a TR and `userUid` is not the caller's own
UID; the caller is a TR and claiming is not enabled for the
account; or the workflow is not configured for the locale.

## Path parameters

- `projectId` string, required: Unique identifier of a Smartling project — 9 lowercase alphanumeric characters.

## Request body

- TranslationAssignUserCommand: Identifies the strings to act on, by hashcode, for a workflow step and locale. Used directly by the remove-strings endpoint, and as the base of `TranslationAssignUserCommand` for the assign endpoint.
  - `localeId` string, required: Locale identifier. Either a 2-letter language code (`en`) or a language-region pair (`en-US`). The language part is always lowercase; the region part is always uppercase.
  - `workflowStepUid` string, required: Workflow step unique identifier — 12 lowercase alphanumeric characters.
  - `hashCodes` Hashcode[], required: Hashcodes of the strings to assign or remove. Capped at 500 entries per request.
  - `userUid` string, required: Unique identifier of a user — 12 lowercase alphanumeric characters.

## Response `200`

Assignment queued for async processing.

- TranslationAssignmentProcessResponse: Response envelope for an async assign or remove operation.
  - `response` object, required
    - `code` 'SUCCESS', required
    - `data` object, required
      - `processUid` string, required: Unique identifier of an async process (UUID v4).

## Other responses

- `400`: The request failed validation.
- `401`: Provided credentials are not valid.
- `403`: Caller does not have access to the requested resource.
- `404`: The project, locale, workflow step, or user does not exist.
- `500`: Unexpected error

## Changes

- **2026-10-17** `2cd7a8215799`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/smartling/apis/smartling-rest-api-reference/changes/content-assignments-api/v3/projects/:projectId/strings/assign/post.md)

---

[API](https://skmtc.dev/smartling/apis/smartling-rest-api-reference.md) - [All operations](https://skmtc.dev/smartling/apis/smartling-rest-api-reference/llms.txt) - [OpenAPI document](https://skmtc.dev/smartling/apis/smartling-rest-api-reference/revisions/e63066e7f5e9?raw)
