Quick AI Phone Call
An AI agent calls one or more numbers from a shared LumisReach number and works toward your goal, with
retries when nobody picks up.
Quick AI Text
An AI agent opens an SMS thread from a registered shared sender and keeps answering replies until the goal
is met.
AI Phone Number
Buy a number and configure the agent that answers it — calls and, optionally, texts — in a single request.
Shared senders
Quick calls and quick texts go out from numbers LumisReach owns, on the LumisReach Official account. That is what removes the setup step: you do not buy a number, register a brand, or wait for provisioning before your first call. What this means in practice:- The recipient sees a LumisReach number, not one of yours. A single job can go out from more than
one number — each destination reports its own
from_number— so no single number carries an entire job. - Texts are already registered. The shared SMS senders sit on LumisReach’s approved A2P 10DLC campaign, so the first message is registered traffic rather than filtered traffic.
- Everything the conversation produces is yours. Call records, recordings, transcripts, messages and contacts are written into your workspace, scoped to your organization like any other data.
- Replies come back to us, not to you. A shared number cannot ring your phone. When someone needs
to be able to call or text you back, provision your own number with
POST /v1/quick/ai-numbers.
Daily limits
Carriers flag a number that places too many calls in a day, and a flagged shared number would degrade every account using the pool. So each shared number has a daily ceiling, and the pool spreads work to stay under it:- Calls: up to 75 per number per day once the number is warmed up. A number bought in the last week is held to 15/day and 40/day in its second week, the same ramp outbound campaigns use.
- Texts: up to 500 outbound messages per number per day.
- Selection: each leg draws a number at random from those that still have room, weighted by how much room is left, so traffic self-levels instead of piling onto one number.
Every shared LumisReach … number has reached its daily volume limit; destinations a job could not
cover are recorded with end_reason: "shared_pool_daily_limit" rather than dropped. Provision your
own number with POST /v1/quick/ai-numbers when you need volume beyond what the shared pool allows.
Pricing
Quick actions are priced per action and charged to the wallet of the organization that owns the API key you authenticate with. They do not draw down plan-included minutes or messages — the shared sender carries no line fee, so the usage is billed à la carte.The 0.60. Talk time is billed by
the second at the per-minute rate. For texts, only outbound messages are billed; replies from the
recipient are free.
Place an AI call
retry_delay_minutes until
retry_attempts is exhausted.
What you can configure
Send AI text messages
first_message and the agent writes the opener from the goal. After that it answers each reply
on its own until the goal is met, max_messages outbound messages have been sent, the recipient
goes quiet for conversation_timeout_hours, or they text STOP.
Check on a job
Both kinds of job report through the same endpoint.status is one of pending, in_progress, completed, no_answer, failed,
opted_out or canceled. While a call is live, live_call_status reports what the call itself is
doing (ringing, in_progress, …) so polling shows the call as it happens. end_reason explains
how a finished target ended: answered, goal_achieved, voicemail, max_attempts,
max_messages, opted_out, canceled, shared_pool_daily_limit, or the provider’s error text.
from_number is the shared number that particular destination was reached from.
To stop a job early, POST /v1/quick/actions/{id}/cancel. Remaining dials and AI replies stop; a
call that is already connected is allowed to finish.
Buy a number with an AI agent
When people need to reach you — an inbound line, a number on a listing, a callback number — buy one and configure its agent in the same request:handle_calls (default true) controls whether the AI answers inbound calls. handle_texts
(default false) puts the same agent on inbound SMS for that number. Provisioning is asynchronous —
poll until it reports ready:
status moves provisioning → ready, or failed if the number could not be wired up. While it is
provisioning, phone_number is null; once it is ready, the number is live and answering.