# uip api-workflow pack

> `uip api-workflow pack` builds an API Workflow project and packages it into a `.nupkg` ready to publish. Code signing is optional — pass a `.pfx` certificate path, password, and timestamp server to produce a signed package.

`uip api-workflow pack` builds an API Workflow project and packages it into a `.nupkg` ready to publish. Code signing is optional — pass a `.pfx` certificate path, password, and timestamp server to produce a signed package.

## Synopsis

```
uip api-workflow pack <projectPath> <destinationPath> [options]
```

- `<projectPath>` — path to the API Workflow project directory or `.uip` file.
- `<destinationPath>` — directory where the `.nupkg` is written.

## Options

| Flag | Description |
|---|---|
| `--package-id <id>` | NuGet package ID (overrides the project default). |
| `--package-version <version>` | NuGet package version. |
| `--package-author <author>` | NuGet package author. |
| `--package-description <desc>` | NuGet package description. |
| `--signing-certificate-path <path>` | Path to a `.pfx` certificate for signing. |
| `--signing-certificate-password <password>` | Certificate password. |
| `--signing-timestamp-server <url>` | Timestamp server URL for signed packages. |

## Examples

```bash
# Pack with the project's defaults
uip api-workflow pack ./my-workflow ./output

# Override package metadata
uip api-workflow pack ./my-workflow ./output \
    --package-id MyOrg.Workflows.Onboarding \
    --package-version 1.2.0 \
    --package-author "Contoso Ltd."

# Sign the package
uip api-workflow pack ./my-workflow ./output \
    --signing-certificate-path ./certs/codesign.pfx \
    --signing-certificate-password "$CERT_PASSWORD" \
    --signing-timestamp-server http://timestamp.digicert.com
```

## Data shape (--output json)

```json
{
  "Code": "ApiWorkflowPack",
  "Data": {
    "Success": true,
    "Packages": ["./output/my-workflow.1.0.0.nupkg"]
  }
}
```

## Related

- [uip api-workflow build](./uip-api-workflow-build.md) — fast compile-only check before packing.
- [uip api-workflow run](./uip-api-workflow-run.md) — execute the workflow locally before packaging.

## See also

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