> ## Documentation Index
> Fetch the complete documentation index at: https://visaflo.ca/knowledge-base/llms.txt
> Use this file to discover all available pages before exploring further.

# Endpoint Directory

> Browse the VisaFlo workspace API one endpoint at a time.

<Note>
  All endpoints below require `X-API-Key: YOUR_API_KEY` and are prefixed by `https://api.vflo.app`.
</Note>

## Records

| Method | Endpoint | Purpose |
| - | - | - |
| `POST` | [Create a lead](/knowledge-base/knowledge-base/developers/endpoints/create-lead) | Create a lead, or update the open lead with the same email. |
| `GET` | [Search leads](/knowledge-base/knowledge-base/developers/endpoints/search-leads) | Find leads by email or name. |
| `POST` | [Create a client](/knowledge-base/knowledge-base/developers/endpoints/create-client) | Create a client. |
| `GET` | [Search clients](/knowledge-base/knowledge-base/developers/endpoints/search-clients) | Find clients by email or name. |
| `POST` | [Create a case](/knowledge-base/knowledge-base/developers/endpoints/create-case) | Create a case and its configured forms. |
| `GET` | [Search cases](/knowledge-base/knowledge-base/developers/endpoints/search-cases) | Find cases by ID, number, or client email. |
| `GET` | [Get a case](/knowledge-base/knowledge-base/developers/endpoints/get-case) | Read one case. |
| `PATCH` | [Update a case status](/knowledge-base/knowledge-base/developers/endpoints/update-case-status) | Change a case status. |

## Files and Forms

| Method | Endpoint | Purpose |
| - | - | - |
| `POST` | [Upload a case file](/knowledge-base/knowledge-base/developers/endpoints/upload-case-file) | Upload one file. |
| `GET` | [Download case files](/knowledge-base/knowledge-base/developers/endpoints/download-case-files) | Get case files. |
| `POST` | [Generate forms](/knowledge-base/knowledge-base/developers/endpoints/generate-forms) | Start form generation. |
| `GET` | [Get autofill status](/knowledge-base/knowledge-base/developers/endpoints/get-autofill-status) | Poll form generation. |

## Tasks

| Method | Endpoint | Purpose |
| - | - | - |
| `POST` | [Create a task](/knowledge-base/knowledge-base/developers/endpoints/create-task) | Create one task. |
| `POST` | [Create tasks from a workflow](/knowledge-base/knowledge-base/developers/endpoints/create-tasks-from-workflow) | Apply a task template. |
| `GET` | [List tasks](/knowledge-base/knowledge-base/developers/endpoints/list-tasks) | List and filter tasks. |
| `GET` | [Get a task](/knowledge-base/knowledge-base/developers/endpoints/get-task) | Read one task. |
| `PATCH` | [Update a task](/knowledge-base/knowledge-base/developers/endpoints/update-task) | Change one task. |

## Notes and Workflows

| Method | Endpoint | Purpose |
| - | - | - |
| `POST` | [Create a note](/knowledge-base/knowledge-base/developers/endpoints/create-note) | Create a note. |
| `GET` | [List notes](/knowledge-base/knowledge-base/developers/endpoints/list-notes) | List notes for a record. |
| `GET` | [Get a note](/knowledge-base/knowledge-base/developers/endpoints/get-note) | Read one note. |
| `PATCH` | [Update a note](/knowledge-base/knowledge-base/developers/endpoints/update-note) | Change one note. |
| `GET` | [List workflows](/knowledge-base/knowledge-base/developers/endpoints/list-workflows) | List templates for task creation. |

## Integration Pattern

For inbound integrations, use this order:

1. Search for an existing client or case. For leads, skip this: `lead/create` updates the open lead with the same email.
2. Create the record only when no existing match is found.
3. Use the returned VisaFlo ID for a task, note, file upload, or case update.
4. Store the VisaFlo ID in your integration so later requests remain idempotent.

<Warning>
  `caseId` is VisaFlo's record ID. It is different from the human-readable `caseNumber` shown to staff and clients.
</Warning>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.