/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
| Name | Location | Type | Required |
|---|---|---|---|
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 | header | string | Yes |
Request body
application/json · Required body
| Field | Type | Required |
|---|---|---|
businessBusiness and primary contact details. Requires name, primary_contact_name and primary_contact_email. | object | Yes |
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 null | No |
source_channel_idLead source for attribution and initial setup. It does not restrict which authorized follow-up workflows can be started. | string | Yes |
View request schema
Example request
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"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 '{
"source_channel_id": "srcch_2m8q7c9k4x6p3n5d",
"invite_client": false,
"business": {
"name": "Northstar Foods Inc.",
"primary_contact_name": "Maya Chen",
"primary_contact_email": "maya.chen@northstarfoods.example"
}
}'Responses
| Status | What it means |
|---|---|
201 | Business created; follow the returned application links to add answers. View response headers
View response schemaIllustrative 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
View response schemaIllustrative 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
View response schemaIllustrative 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
View response schemaIllustrative 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
View response schemaIllustrative 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
View response schemaIllustrative 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
View response schemaIllustrative 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
View response schemaIllustrative 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
View response schemaIllustrative data. Use the identifiers, cursors, and URLs returned by your requests. View example response |
