> ## 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.

# VisaFlo API

> Use the VisaFlo workspace API to create and look up leads, clients, cases, files, tasks, notes, and workflows in your firm.

## Build Into Your Workflow

The VisaFlo workspace API is for the operational handoffs around an immigration practice: move an intake into VisaFlo, find the right case, attach a document, create a follow-up, or launch a repeatable workflow.

Every request is scoped to the workspace that owns the API key. Your integration never sends a company ID, and it cannot read or write another firm's data.

It is not the dashboard's internal API. Do not call these endpoints with a dashboard Firebase token.

## Base URL

```text theme={null}
https://api.visaflo.app
```

All endpoints in this reference start with `/api/public`.

## What You Can Build

| Workflow              | API capabilities                                                            |
| --------------------- | --------------------------------------------------------------------------- |
| Intake handoff        | Search or create leads and clients, then create a case.                     |
| Case-aware automation | Find a case by VisaFlo ID, case number, or client email.                    |
| Document intake       | Upload a file directly to the case's `api` folder.                          |
| Operational follow-up | Create tasks, notes, and workflow task batches on a case, client, or lead.  |
| CRM sync              | Store VisaFlo IDs after a successful create and use them for later updates. |

## Start Here

1. In VisaFlo, open **Settings** > **API Settings**.
2. Create a named API key for the integration.
3. Store the key in your integration's secret manager.
4. Follow the [Quickstart](/knowledge-base/developers/quickstart) to make a verified request.
5. Start with a lookup endpoint before creating records to avoid duplicates.

<Note>
  API keys are workspace-scoped. Create separate keys for separate integrations so you can revoke one integration without interrupting another.
</Note>

## First Request

```bash theme={null}
curl "https://api.visaflo.app/api/public/lead/search?email=jane@example.com" \
  -H "X-API-Key: YOUR_API_KEY"
```

A successful API response uses this envelope:

```json theme={null}
{
  "success": true,
  "data": {}
}
```

Continue with [Authentication](/knowledge-base/developers/authentication), then follow the resource guides for [records](/knowledge-base/developers/records), [work management](/knowledge-base/developers/work-management), and [files](/knowledge-base/developers/files). The [Endpoint Reference](/knowledge-base/developers/reference) is the complete route index.
