> ## Documentation Index
> Fetch the complete documentation index at: https://developers.phrase.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Creating an APC

> Every field POST /api2/v3/automatedProjects needs, where its options come from, and the order the TMS UI itself resolves them in.

Creating an APC setting has more required fields than a typical create call, and several of them have a real, discoverable set of valid options — don't ask for these blind, and don't guess a shape for the ones with no dedicated list endpoint either.

## 1. Confirm the connector

Every APC belongs to an existing connector. List your connectors (`GET /api2/v1/connectors`) and confirm the one to use before anything else — never guess or fabricate a connector identifier. See [Managing TMS Connectors](/en/guides/managing-connectors/overview) if you don't have one set up yet.

## 2. Pick a project template — before languages, not after

```bash theme={null}
GET /api2/v1/projectTemplates
```

Lists your available templates by name and `uid`. Resolve this **before** asking about languages: a project template's detail response carries the source/target languages it was created with.

```bash theme={null}
GET /api2/v1/projectTemplates/{projectTemplateUid}
```

`sourceLang` and `targetLangs` on this response are inherited from the project the template was originally created from — this is exactly why the TMS UI only shows you language options once you've picked a template. Present those as your language choices; only fall back to the full, unscoped `GET /api2/v1/languages` list if the chosen template happens to have no languages set.

## 3. Browse the remote folder — don't ask for a path

```bash theme={null}
GET /api2/v1/connectors/{connectorId}/folders
GET /api2/v1/connectors/{connectorId}/folders/{encodedFolder}
```

Lists the connector's root folders, or a subfolder if you pass one. Browse and present the real folders/projects found — don't ask the user to type a path from memory, and don't guess a template like `/project/{id}` or `/space/...`.

<Note>For a `PHRASE`-type connector (TMS ↔ Phrase Strings), the browsable structure returned here is Strings projects/spaces rather than a literal filesystem path — present the real project/space names the endpoint returns. `PHRASE` is a real, valid connector type; if a browse call fails for a specific connector, that's an operation-specific failure, not evidence the connector or its type doesn't exist.</Note>

Once a folder is chosen, translate it into the create payload's `monitoredFolders[]` entry: `remoteFolder` (the folder path), `folderNames` (its path segments as a list), and `humanReadableFolderPath` — derive these from the browsed result, don't fabricate them from the folder name alone. `monitoredFolders[].localToken` is the connector's own `localToken` field (from its list/get response — not its `id`), which the backend needs to resolve which remote storage to read.

If a connector type doesn't support folder browsing at all, say so and let the user pick the folder in the TMS UI instead, then continue the rest of the flow normally.

## 4. Schedule (`frequency.frequencyOption`)

There's no list endpoint for this one — it's a genuine question — but the valid values come straight from the create endpoint's schema, so offer them as named options rather than an open "how often?":

* `WEEKLY_FIXED_TIMES` — runs at specific times on specific days of the week
* `HOUR_TIME_RANGE` — runs every N hours (`range`)
* `MINUTE_TIME_RANGE` — runs every N minutes (`range`)
* `MONTHLY_FIXED_TIMES` — runs at specific times on specific days of the month

Each option has its own sub-fields (e.g. `weeklyFixedTimes[]`, `monthlyFixedTimes[]`) — check the full request schema for the shape once you know which one applies.

## 5. Translation-export rule

At least one `translationExports[]` entry is required. Again, no list endpoint, but the schema constrains the valid values:

* `exportFrom.type`: `FINAL_WORKFLOW_STEP` or `WORKFLOW_STEP` (with `workflowStep` number, if the latter)
* `exportWhen.exportTrigger`: `SELECTED_WORKFLOW_STEP_COMPLETED`, `FINAL_WORKFLOW_STEP_COMPLETED`, or `PROJECT_COMPLETED`

A reasonable default to suggest is exporting when the final workflow step completes — but present the actual options rather than assuming silently, and don't invent a webhook-based trigger; it isn't part of this schema.

## 6. Continuous vs. one-off projects

`continuousProject: true` imports files into a single, continuously-updated project instead of creating a new project on every run. This is a yes/no the user needs to decide — there's no discoverable default.

## Putting it together

Resolve every field above — connector, template (and its languages), folder, schedule, export rule — before presenting a single confirmation message with real values for all of them. Don't send the user a list of field names to fill in one at a time, and don't offer to fetch a list "if you'd like" — fetch it, then ask.
