# uip api-workflow init

> Syntax and options for `uip api-workflow init`, which scaffolds a new API Workflow project with boilerplate files.

`uip api-workflow init` scaffolds a new API Workflow project: `project.uiproj`, `entry-points.json`, `bindings_v2.json`, and a minimal `Workflow.json` with a single pass-through step that maps declared input defaults, then the caller's actual input, into `$input`. When run inside a solution directory, the new project is auto-registered in the surrounding solution's `.uipx` file.

## Synopsis

```
uip api-workflow init <name> [options]
```

- `<name>` — API Workflow project name. Letters, numbers, spaces, underscores (`_`), and hyphens (`-`) only; also used as the target directory name.

## Options

| Flag | Description |
|---|---|
| `--force` | Initialize even if the target directory is not empty. Writes files without clearing existing contents — it does not delete anything already there. |
| `--skip-solution-registration` | Do not auto-register this project in the surrounding solution. |

## Examples

```bash
# Create a new API Workflow project
uip api-workflow init my-api-workflow
```

```bash
# Initialize into a non-empty directory
uip api-workflow init my-api-workflow --force
```

## Data shape (--output json)

```json
{
  "Code": "ApiWorkflowInit",
  "Data": {
    "Status": "Created successfully",
    "Path": "/workspace/my-api-workflow",
    "SolutionRegistration": {
      "Registered": true
    }
  }
}
```

`SolutionRegistration` reflects whether the project was linked into a parent solution's `.uipx`. When the registration flow needs the user to take a manual step (for example, no parent solution was found), the response adds a `NextSteps` field with instructions.

## Related

- [uip api-workflow build](./uip-api-workflow-build.md) — compile the project this command scaffolds.
- [uip api-workflow validate](./uip-api-workflow-validate.md) — validate the workflow JSON before packaging.

## See also

- [API Workflow tool overview](./uip-api-workflow.md)
- [Global options](./global-options.md)
- [Exit codes](./exit-codes.md)
