Skip to content
Levr API Documentation
Download OpenAPI specOpenAPI

Hand off to an AI agent

Copy instructions to your AI agent

Copy this guide into your AI agent. It links to the current REST API and MCP documentation.

You are helping someone integrate their system with Levr. Use Levr's published documentation and machine-readable contracts as the source of truth. Do not invent endpoints, fields, or MCP tools.

  1. Start with the Levr API documentation to choose between a server-to-server REST integration and a user-authorized MCP connection.
  2. For REST, read the Markdown REST API guide, choose the user’s task, then fetch only the relevant resource guide and operation Markdown. Resource indexes include task guidance. For funding recommendations, start with the Matchmaking guide. Use the OpenAPI specification for exact paths, authentication, parameters, and envelope schemas.
  3. For REST client intake, Deal applications, or project Criteria, fetch that resource's contract_url. Its Application Contract is the authority for the current questions, stable keys, repeatable groups, file-transfer steps, accepted answer shapes, conditional visibility, supported operation URLs, and integration instructions. Repeatable fields require the returned item_id. File bytes use the expiring upload_url and multipart field named file; they never belong in JSON. Do not substitute a static example or the latest application definition.
  4. For an AI client acting with a signed-in user's access, read the MCP connection instructions in Markdown first, then the Model Context Protocol guide if needed. Let the connected MCP server expose its current tools and input contracts; do not infer tools from the REST API. Read the relevant MCP resource guide and follow the discovered tool’s revision, file-transfer, and confirmation requirements.
  5. Use URLs from the record handoff when supplied; otherwise use this documentation environment. Keep API keys and file-transfer credentials out of browser code, logs, prompts, and source control.
  6. Before implementing a write, verify authentication, required inputs, idempotency, error responses, and retry guidance in the current contract. If an operation is not documented, do not assume it exists.

Early access

Request an integration

Tell us what your integration needs to do. Add an email if you want a reply.

Businesses

Create a business

Read as Markdown
POST/businesses/

Create a business and its primary contact in the receiving Portal. The required source_channel_id identifies its attribution and initial setup. Business profile is the baseline; the other starting experiences add starter setup.

Client intake and Deal sources also create an empty application. Use the returned contract_url to read its requirements and answers_url to save answers. A matchmaking source enables matchmaking; create a Project and funding request separately when needed. Applications are submitted separately.

Starting experiences do not limit later operations: add intake, create a Deal, or enable client matchmaking on a baseline business through the follow-up APIs. Each operation still requires its own permission, record scope, and provider setup. See Extend a business profile.

Follow an example flow for business profiles, client intake, Deal applications, or matchmaking.

Required permissions
lead_submissions:write
Available scopes
Entire Portal or Selected source channels

Headers and URL parameters

NameLocationTypeRequired
Idempotency-KeyUse a unique key for each business creation. Retry with the same key, body and endpoint. Legacy endpoints have separate retry records; retry an unfinished legacy request on its original endpoint.
View parameter schema
headerstringYes

Request body

application/json · Required body

FieldTypeRequired
businessBusiness and primary contact details. Requires name, primary_contact_name and primary_contact_email.objectYes
invite_clientSend true to invite the primary contact during creation, before answers are saved, or false to skip the invitation. Null or omission uses the source default.boolean or nullNo
source_channel_idLead source for attribution and initial setup. It does not restrict which authorized follow-up workflows can be started.stringYes
View request schema

Example request

cURL
curl --request POST \
  --url "https://api.staging.levr.ai/v1/businesses/" \
  --header "Authorization: Bearer $LEVR_API_KEY" \
  --header "Idempotency-Key: $IDEMPOTENCY_KEY" \
  --header "Content-Type: application/json" \
  --data "@request.json"

Responses

StatusWhat it means
201

Business created; follow the returned application links to add answers.

View response headers

application/json

View response schema

Illustrative data. Use the identifiers, cursors, and URLs returned by your requests.

View example response
400

Correct the request fields and try again.

View response headers

application/json

View response schema

Illustrative data. Use the identifiers, cursors, and URLs returned by your requests.

View example response
401

Provide a valid API key and try again.

View response headers

application/json

View response schema

Illustrative data. Use the identifiers, cursors, and URLs returned by your requests.

View example response
403

This API key does not allow the requested action.

View response headers

application/json

View response schema

Illustrative data. Use the identifiers, cursors, and URLs returned by your requests.

View example response
404

The requested resource was not found or is not available to this API key.

View response headers

application/json

View response schema

Illustrative data. Use the identifiers, cursors, and URLs returned by your requests.

View example response
409

The request conflicts with the resource's current state. Refresh it before trying again.

View response headers

application/json

View response schema

Illustrative data. Use the identifiers, cursors, and URLs returned by your requests.

View example response
422

Correct the invalid values and try again.

View response headers

application/json

View response schema

Illustrative data. Use the identifiers, cursors, and URLs returned by your requests.

View example response
429

Too many requests were sent. Wait before trying again.

View response headers

application/json

View response schema

Illustrative data. Use the identifiers, cursors, and URLs returned by your requests.

View example response
500

Levr could not complete the request. Keep the request ID and retry when safe.

View response headers

application/json

View response schema

Illustrative data. Use the identifiers, cursors, and URLs returned by your requests.

View example response