# Sela API ## Docs - [Integrating with Sela](https://docs.trysela.com/integrating-with-sela.md): Plan, build, and test an end-to-end Sela integration. - [Features](https://docs.trysela.com/features.md): Explore Sela's core sales, transfer, scheduling, and voicemail capabilities. - [Lead Statuses](https://docs.trysela.com/lead statuses.md) - [Call Outcomes](https://docs.trysela.com/call outcomes.md) - [Zapier Integration](https://docs.trysela.com/zapier integration.md) - [Okta Integration](https://docs.trysela.com/okta integration.md): Create an Okta OIDC web application and share connection details with Sela for single sign-on. - [Introduction](https://docs.trysela.com/api-reference/introduction.md): Welcome to Sela API Reference - [Webhook Responses](https://docs.trysela.com/api-reference/webhook.md): What we send you - [List Leads](https://docs.trysela.com/api-reference/leads/list-leads.md): Lists all leads. - [Create a Lead](https://docs.trysela.com/api-reference/leads/create-a-lead.md): Creates a lead for the authenticated API user. `phone_number` is required; `email`, `lead_type`, `external_id`, and `metadata` are optional. Use `GET /api/lead-types/` to discover available lead type IDs and their public metadata fields. Unknown top-level fields are preserved in `metadata`, which le… - [Bulk Create Leads](https://docs.trysela.com/api-reference/leads/bulk-create-leads.md): Creates or reengages multiple leads in one request. Each item accepts the same fields as `POST /api/leads/`. Results preserve request order and report whether each item was created, reengaged, or failed validation. - [Bulk Update Leads](https://docs.trysela.com/api-reference/leads/bulk-update-leads.md): Updates multiple leads in one request. Each item must include an `id` and may include the same fields as `PATCH /api/leads/{id}/`. Results preserve request order and report whether each item was queued or failed request-level validation. Queued items are processed asynchronously in bounded Celery ba… - [DNC a Phone Number](https://docs.trysela.com/api-reference/leads/dnc-a-phone-number.md): Marks a phone number as DNC for the authenticated user's DNC group. If neither `call_dnc` nor `sms_dnc` is provided, both default to true (DNC both channels). If either flag is provided, the other must also be provided, and at least one of the two must be true. This endpoint only adds DNC: passing `… - [Update a Lead with Phone / Email Match](https://docs.trysela.com/api-reference/leads/update-a-lead-with-phone-email-match.md): Updates a lead a using the phone number and the email to find a matching lead. - [Retrieve a Lead](https://docs.trysela.com/api-reference/leads/retrieve-a-lead.md): Retrieves a lead. - [Update a Lead](https://docs.trysela.com/api-reference/leads/update-a-lead.md): Partially updates a lead. Update requests may include lifecycle fields such as status, status_detail, sms_dnc, and call_dnc. - [Update Live Call](https://docs.trysela.com/api-reference/leads/update-live-call.md): Updates a live call for this lead with connected representative information and other external identifiers. This endpoint is used when a customer's CRM notifies us that a loan officer picked up a transferred call. The endpoint will find the appropriate chat (using connected_timestamp if provided, ot… - [Schedule an Outbound Call](https://docs.trysela.com/api-reference/leads/schedule-an-outbound-call.md): Schedules an outbound call for a lead. The datetime should be in the future and with iso-8601 format. If not provided, the next available time will be scheduled. If the datetime is in the past, the outbound will not be scheduled. If the outbound is already scheduled, the outbound will be rescheduled… - [Pause Outbound Calls](https://docs.trysela.com/api-reference/call-control/pause-outbound-calls.md): Pauses outbound calls for a user. Non-staff API users may only pause their own calls; staff users may target any user. By default, the user's outbound calling is paused until the unpause endpoint is called. Set `only_existing_leads` to true to asynchronously pause only leads that already exist while… - [Unpause and Reschedule Outbound Calls](https://docs.trysela.com/api-reference/call-control/unpause-and-reschedule-outbound-calls.md): Unpauses outbound calls for a user and asynchronously reschedules eligible paused leads. Non-staff API users may only unpause their own calls; staff users may target any user. The response confirms that rescheduling was queued, not that every lead has already been rescheduled. - [List Lead Types](https://docs.trysela.com/api-reference/lead-types/list-lead-types.md): Returns the lead categories you can assign when creating or updating leads. Use this endpoint to discover the available lead_type IDs and the metadata fields each lead type accepts, so new leads can be routed and handled correctly. - [Retrieve a Lead Type](https://docs.trysela.com/api-reference/lead-types/retrieve-a-lead-type.md): Returns details for one lead type, including the metadata fields accepted for leads in that category. Use this before creating leads when you need to confirm which metadata keys and value types to send. - [List Webhook Subscriptions](https://docs.trysela.com/api-reference/webhooks/list-webhook-subscriptions.md): Returns the webhook subscriptions owned by the authenticated API user. Each subscription identifies the destination URL, outbound HTTP method, events that trigger delivery, and optional delivery filter. Secret headers are write-only and are never included in responses. - [Create a Webhook Subscription](https://docs.trysela.com/api-reference/webhooks/create-a-webhook-subscription.md): Creates a webhook subscription for the authenticated API user. A subscription may listen for one or more trigger values. Outbound requests default to POST when method is omitted. URL placeholders such as `{{id}}` and `{{metadata.us_state}}` are populated from each webhook payload. Optional headers a… - [Delete Webhook Subscriptions by URL](https://docs.trysela.com/api-reference/webhooks/delete-webhook-subscriptions-by-url.md): Deletes every webhook subscription owned by the authenticated API user whose destination exactly matches the supplied URL. The response contains the number of deleted objects followed by a per-model deletion count. - [Retrieve a Webhook Subscription](https://docs.trysela.com/api-reference/webhooks/retrieve-a-webhook-subscription.md): Returns one webhook subscription owned by the authenticated API user. Secret headers are write-only and are never included in the response. - [Delete a Webhook Subscription](https://docs.trysela.com/api-reference/webhooks/delete-a-webhook-subscription.md): Permanently deletes one webhook subscription owned by the authenticated API user. - [Replay Recent Chat Webhooks](https://docs.trysela.com/api-reference/webhooks/replay-recent-chat-webhooks.md): Queues webhook and configured integration-action deliveries using each requested lead's most recent chat. Only leads owned by the authenticated API user are processed; inaccessible lead IDs are skipped and counted in the response. Work is split into background-task chunks, so a 202 response means th… - [Create a Lead from a Custom Payload](https://docs.trysela.com/api-reference/lead-ingestion/create-a-lead-from-a-custom-payload.md): Creates a new Sela lead from a custom payload format. Sela configures these ingestion endpoints when an external system, such as a lead provider, cannot send Sela's standard lead API format. The endpoint can map custom field names, validate the incoming payload, and assign a default lead type so the… - [Create or Update a Lead from a Custom Payload](https://docs.trysela.com/api-reference/lead-ingestion/create-or-update-a-lead-from-a-custom-payload.md): Creates or updates a Sela lead from a custom payload format. Use this when an external system, such as a lead provider, may resend updates for an existing lead. Sela matches existing leads by external ID, phone number, or email after applying the endpoint's configured field mapping. If no matching l… - [Create a File Upload URL](https://docs.trysela.com/api-reference/file-ingestion/create-a-file-upload-url.md): Creates a temporary URL for uploading a CSV file to a preconfigured Sela file ingestion source. The source value is provided by Sela and determines how the uploaded CSV is processed. Sela configures which CSV column is used as the row lookup key. First call this endpoint with a source and filename,… ## OpenAPI Specs - [Sela_API](https://docs.trysela.com/Sela_API.yaml)