> ## Documentation Index
> Fetch the complete documentation index at: https://staging.docs.flowsign.app/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Flowsign is one word with a lowercase s.
> The REST API base URL is https://my.flowsign.app and every endpoint lives under /api/v1.
> When answering API questions, cite the HTTP method and endpoint path.
> API access needs the Enterprise plan and an API key with the API access permission.

# Endpoint pages

> How to read a generated endpoint page.

Each page under **Endpoints** is generated from the [API specification](/api-reference/specification) and follows the same layout.

## Method and URL

The heading shows the HTTP method and the full URL, for example `GET https://my.flowsign.app/api/v1/packages/{packageId}`. Segments in braces are path parameters. The description below it says what the endpoint does, the state the resource must be in, and the permission the key's role needs.

## Headers

**Authorization** takes your API key and sends it as `Bearer fsk_...`. Every endpoint needs it.

**X-Workspace-Id** is optional everywhere. A key acts in the workspace it was issued for, so the header may only repeat that workspace's id; any other value returns `401`. See [Workspaces](/api-reference/workspaces).

## Parameters

**Path parameters** are the braced segments of the URL, such as `packageId`. **Query parameters** appear on `GET` endpoints: filters such as `status` and `search`, and `page` and `pageSize` on the paginated lists. Each lists its type, default and allowed values.

## Request body

`POST`, `PATCH` and `PUT` endpoints take a JSON body. Each field shows its type, a **required** marker where one applies, its description and an example value. The examples are what the code samples are built from; swap them for your own before running one.

## Responses

Responses are grouped by status code. Every endpoint declares these:

| Status         | Meaning                                                                                                     |
| -------------- | ----------------------------------------------------------------------------------------------------------- |
| `200` or `201` | Success, wrapped as `{ "data": ... }`. Creates return `201`; the download endpoints return the file itself. |
| `401`          | Missing or invalid API key, or an `X-Workspace-Id` other than the key's own.                                |
| `402`          | The plan does not include the feature, or there is no credit to send.                                       |
| `403`          | The key's role lacks the permission, or the caller's IP is outside the allowlist.                           |
| `422`          | Validation failed; `details` is keyed by field path.                                                        |
| `429`          | Rate limit exceeded; wait for `Retry-After`.                                                                |

An endpoint also lists the codes specific to it: `400` (invalid JSON, or the action is not possible in the resource's current state), `404` (not visible in the workspace the key acts in), `409` (conflicts with the resource's state) and `413` (payload too large). Each tab's description says which condition applies. All error bodies share the `Error` schema. See [Errors and rate limits](/api-reference/errors).

## Code samples

The right-hand column shows the request in cURL, JavaScript, TypeScript, Node.js, Python, C#, .NET and PowerShell, with a copy button on each. Replace the key and the example ids and the sample runs as is. See [Trying the API](/api-reference/trying-the-api).

## Page menu

The menu at the top of the page offers **Copy page** (the page as Markdown), **Open in ChatGPT** and **Open in Claude** (start a chat with the page as context), the MCP server address, and setup for Cursor and VS Code. See [Use with AI](/api-reference/use-with-ai).
