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.

Server to server

REST API

Verify an API key created for your Portal, then discover the resources and application fields granted to your integration.

Base URL
https://api.levr.ai/v1/
Authentication
Bearer Portal API key
Format
JSON, plus documented file transfers

Read this guide as Markdown

Make your first request

Ask a Portal administrator to create an API key for your integration. Save it when it is shown; you cannot retrieve it again.

Read the API root to confirm which Portal the key belongs to and which resources it can access:

Terminal window
curl --request GET \
--url 'https://api.levr.ai/v1/' \
--header "Authorization: Bearer $LEVR_API_KEY"

Store the key in a secret manager. Keep it out of browser code, logs, prompts, and source control.

Set LEVR_API_KEY in your shell to the saved Portal API key before copying the examples. API keys belong to one environment; a staging key cannot authenticate against production. File-transfer credentials returned by an upload or download operation are separate: use the credential named by that operation.

The published OpenAPI download is public and needs no API key. The API’s /v1/openapi.json endpoint requires a Portal API key and describes the resources granted to that key. Use the documented resource paths or URLs returned by API reads; a documentation page URL is not an API endpoint.

Choose your task

Read the resource guide for the work you want to do. Each guide links to the exact operations; you do not need to read the entire reference.

AI agents can start with the Markdown reference index, then fetch only the relevant resource and operation Markdown. OpenAPI defines the exact REST paths and schemas. Application questions come from the record’s returned contract_url.

Make reliable requests

Follow the headers and inputs on each operation page. Unsupported query parameters are rejected rather than silently ignored.

Read every page

REST collections return items, next_cursor, and previous_cursor. Set page_size using the range documented for that operation. Defaults and limits can differ between collections.

For example, read a page of businesses:

Terminal window
curl --request GET \
--url "https://api.levr.ai/v1/businesses/?page_size=5" \
--header "Authorization: Bearer $LEVR_API_KEY"

If next_cursor is not null, assign that exact value to NEXT_CURSOR and request the same collection with the cursor query parameter. Encode it as a query value rather than editing or decoding it:

Terminal window
curl --get \
--url "https://api.levr.ai/v1/businesses/" \
--data-urlencode "page_size=5" \
--data-urlencode "cursor=$NEXT_CURSOR" \
--header "Authorization: Bearer $LEVR_API_KEY"

Repeat until next_cursor is null. Keep the resource, filters, ordering, and page size unchanged while paging. Start a fresh first-page request when those controls change. Cursors are opaque values scoped to their collection; never reuse one for another application or collection. For collections that support backward paging, pass a non-null previous_cursor as cursor to return to an earlier page. Answers, repeatable answer items, and answer files support forward paging only; their previous_cursor is always null.

Retry safely

For a write requiring If-Match, read the resource first and send its complete ETag, including quotes. Use the new ETag after each write. A 412 precondition_failed means the resource changed: read it again and reconcile your change before retrying.

For an operation requiring Idempotency-Key, use a new key for a new command. Reuse it only for an identical retry, with the same method, resource, payload, and precondition.

A 429 response includes Retry-After; wait at least that long. Other errors include a message and structured details identifying what needs attention. When contacting support, include the response’s Request-Id, never your API key.