# Businesses

Add businesses through a Lead source, complete their intake applications, and follow their progress.

Base URL: https://api.levr.ai/v1

Authentication: Bearer — Portal API key

[REST guide](https://docs.levr.ai/rest-api.md) · [OpenAPI specification](https://docs.levr.ai/generated/openapi.json)

OpenAPI defines exact REST schemas. Each record’s Application Contract defines its current questions and accepted answers.

## Bring a business into your Portal

A business is the company seeking funding. Client intake optionally collects information and documents; funding work can start before intake exists.

1. List API Lead sources and choose the one that should receive the business. If needed, create a Lead source by name.
2. Check its `readiness`. If setup is missing, ask a Portal administrator to resolve the reported setup issues.
3. Fetch the returned `business_contract_url`. Its `request_schema` defines the business and initial application information this Lead source accepts.
4. Create the business through that Lead source. Store the returned business and client intake application IDs.
5. Open the [client intake application guide](https://docs.levr.ai/rest-api-reference/client-intake-applications/index.md) to complete or submit the intake.

Use the returned schema rather than assuming fields such as `owners` or `legal_name` exist. Contacts linked to a business and owners entered in an application serve different purposes.

To clean up an unused API Lead source, send `DELETE /v1/source-channels/{source_channel_id}/` with an `Idempotency-Key` header and no request body. This requires Businesses write access. A source with attributed businesses or Deals returns `409`; keep it for those existing records. This operation does not move attribution. Removal revokes any legacy credential owned by the source; the Portal API key remains active. Retry with the same key to replay the successful removal response.

## Manage contacts

Business contacts are a complete replacement set. Use people available in the same Portal. A `primary_person_id` must also appear in `person_ids`; null clears the primary designation. An empty set clears the contacts. Read the current set and its ETag before replacing it, then read back the result.

## Collect information after creating a business

For an existing source-owned business with no intake, call
`POST /v1/businesses/{business_id}/client-intake/` with no request body and a caller-generated
`Idempotency-Key`. Requires `businesses: write`. The effective published source
intake template is used even when automatic intake is off. The response contains
`business_id`, `application_id`, `created`, and `frontend_link`: `201` for creation,
`200` when returning existing intake. An exact retry replays the original response.
This preserves business metadata and projects and sends no invitation.

In MCP, use `businesses.create_client_intake` with `provider_slug`, `business_id`,
and a UUID `idempotency_key`. Review the resulting intake, then share it separately.
The API share endpoint requires `client_intake_applications: write`; internal AI
sharing uses the existing approval flow. An intake share grants application access,
not workspace membership. Existing project matching answers are not automatically
synchronized when intake is submitted; use the intake evidence in that project's autofill workflow.


- [List businesses](https://docs.levr.ai/rest-api-reference/businesses/list-businesses.md): `GET /businesses/`

- [List Lead sources available for API business submissions](https://docs.levr.ai/rest-api-reference/businesses/list-business-source-channels.md): `GET /source-channels/`

- [Create a business through an API source channel](https://docs.levr.ai/rest-api-reference/businesses/create-source-channel-business.md): `POST /source-channels/{source_channel_id}/businesses/`

- [Create a Lead source for API business submissions](https://docs.levr.ai/rest-api-reference/businesses/create-business-source-channel.md): `POST /source-channels/`

- [Create client intake](https://docs.levr.ai/rest-api-reference/businesses/create-business-client-intake.md): `POST /businesses/{business_id}/client-intake/`

- [Upload a file requested by a successful business submission](https://docs.levr.ai/rest-api-reference/businesses/upload-business-submission-file.md): `POST /source-channels/{source_channel_id}/business-files/{upload_token}/`

- [Get a business and its portal status](https://docs.levr.ai/rest-api-reference/businesses/get-business-status.md): `GET /businesses/{business_id}/`

- [Get the current dynamic business submission contract](https://docs.levr.ai/rest-api-reference/businesses/get-source-channel-business-contract.md): `GET /source-channels/{source_channel_id}/business-contract/`

- [List Business contacts](https://docs.levr.ai/rest-api-reference/businesses/list-business-people.md): `GET /businesses/{business_id}/people/`

- [Read source-scoped client progress](https://docs.levr.ai/rest-api-reference/businesses/get-business-activation.md): `GET /businesses/{business_id}/activation/`

- [Replace Business contacts](https://docs.levr.ai/rest-api-reference/businesses/replace-business-people.md): `PUT /businesses/{business_id}/people/`

- [Update a Business](https://docs.levr.ai/rest-api-reference/businesses/update-business.md): `PATCH /businesses/{business_id}/`

- [Move one Business to a workflow stage](https://docs.levr.ai/rest-api-reference/businesses/move-business-stage.md): `PATCH /businesses/{business_id}/stage/`

- [Remove an unused API Lead source](https://docs.levr.ai/rest-api-reference/businesses/remove-business-source-channel.md): `DELETE /source-channels/{source_channel_id}/`
