API reference
Everything an assistant can do with an Avrosh account, with the exact text the model reads before it decides to call. No account needed to read this page.
What this is
Avrosh speaks MCP over streamable HTTP. Point an MCP client — Claude, or anything else that speaks the protocol — at the URL below, and it can read your businesses, their calls and transcripts, and create or change a business.
https://us.avrosh.com/mcpIt is JSON-RPC 2.0 in a POST body. If you are wiring it by hand rather than through a client, initialize, tools/list and tools/call are the three methods you need.
Authentication
Every request carries Authorization: Bearer avk_…. Create a key in the Avrosh dashboard under Docs; it is shown once, because only its hash is stored.
One key reaches every business on the account that made it, and no others. There are no scopes to configure and nothing to switch on — a connected assistant receives the whole toolset. What bounds it is whose account the key belongs to, which is enforced in the database rather than by a permission anybody sets.
curl https://us.avrosh.com/mcp \
-H "Authorization: Bearer $AVROSH_KEY"Tools
Six of them. Reads are safe to call freely; the two that write are marked, and both refuse while a business is in free mode.
list_businessesreads
List every business on this Avrosh account, with its id, name, timezone, currency, plan status and whether it has a live phone number.
get_businessreads
Full configuration of one business: language, timezone, currency, what the AI is allowed to do, and its phone numbers.
list_callsreads
The 100 most recent phone calls for one business, newest first: who the other party was, direction, status, duration, and a one-line summary when the AI wrote one.
get_transcriptreads
What was actually said on one call, in order.
create_businesswrites
Create a new business on this account.
update_businesswrites
Change a business's settings: its name, default language, timezone, what the AI handles on the phone (call_types), or what it says about being an AI when a caller asks (ai_disclosure).
list_knowledgereads
Every knowledge chapter this business has written about itself, with the full text of each - this is what the AI is grounded on when a customer asks a factual question.
add_knowledge_chapterwrites
Write one NEW chapter of knowledge: a title and a body of plain text, in the operator's own words - opening hours, what is and is not offered, policies, anything a customer would phone to ask.
update_knowledge_chapterwrites
Rewrite one existing chapter: its title, its body, or both.
delete_knowledge_chapterwrites
Remove one chapter so the AI stops answering from it.
restore_knowledge_chapterwrites
Bring back a chapter deleted in the last 7 days, exactly as it was.
list_menu_itemsreads
Every item on this business's menu or product list - category, name, description, price, availability, dietary and allergen tags, photos.
create_menu_itemwrites
Add one item to the menu or product list.
update_menu_itemwrites
Change one menu item: name, price, category, description, dietary or allergen tags.
set_menu_item_availabilitywrites
Mark one item sold out (false) or back on sale (true).
delete_menu_itemwrites
Remove one item from the menu.
restore_menu_itemwrites
Bring back an item deleted in the last 7 days, photos and all.
remove_menu_item_photowrites
Remove one photo from an item's gallery, by its URL as returned in list_menu_items.
set_menu_item_thumbnailwrites
Pick which gallery photo is the item's thumbnail - the one shown first on cards.
list_bookable_typesreads
Every bookable type this business sells - rooms, services, or rentable units - with capacity, prices, schedule kind ('day' = per-night, 'time' = appointment slots), slot configuration and weekly hours.
create_bookable_typewrites
Add one bookable type.
update_bookable_typewrites
Change one bookable type: name, prices, capacity, description, amenities, or the deposit asked to confirm a booking.
set_bookable_type_schedulewrites
Configure how one type is booked: kind ('day' per-night or 'time' appointment slots), slot length, service duration, turnaround buffer, minimum lead time, and weekly open hours.
delete_bookable_typewrites
Remove one bookable type from sale.
restore_bookable_typewrites
Bring back a type deleted in the last 7 days, exactly as it was.
list_bookingsreads
Bookings for one business, pending holds first.
get_bookingreads
One booking in full, by id: customer, dates or slot, assigned unit or team member, payment state, extras and the running total.
confirm_bookingwrites
Confirm a PENDING hold - the step that turns a hold into a real booking and stops its expiry clock.
cancel_bookingwrites
Cancel a pending or confirmed booking.
list_work_queuereads
Everything still OPEN for one business - orders waiting to be accepted or finished, and service requests waiting to be picked up or done.
accept_orderwrites
Mark one pending order as accepted - the kitchen or counter has it.
finish_orderwrites
Mark one accepted order as done - delivered or handed over.
accept_requestwrites
Mark one open service request as accepted - somebody is on it.
finish_requestwrites
Mark one accepted service request as done.
assign_requestwrites
Hand one open or accepted service request to a specific team member, or send staff_id null to put it back in the shared pool.
list_customersreads
The people this business has on record: name, email, phone, the operator's private note, booking count, last seen.
get_customerreads
One customer in full, by id.
export_customer_datareads
Everything held about one person, assembled for a data-subject access request: their contact record, bookings, orders and conversation references, across every branch of a group.
erase_customerwrites
IRREVERSIBLY strip one person's identity from the records, GROUP-WIDE - every branch, every booking they are on (the business records survive, the person is scrubbed off them).
Errors
A tool that fails for a business reason returns a normal result with isError: true and a readable message, not a JSON-RPC error — so a client can relay it instead of dropping the connection. Protocol errors stay protocol errors.
invalid_api_keyHTTP 401. The key is unknown or revoked. Not retryable - make a new key in the dashboard under Docs.
business_deletedThe business was deleted and is in its recovery window. Call list_businesses for the current set.
free_readonlyThe business is in free mode. Reads work; changes do not, until the account is activated. This is the same refusal the operator gets in their own browser.
business_existsA business with that name is already on the account. Returned instead of silently creating a duplicate, because a timed-out create that gets retried would otherwise make two.
no_changesupdate_business was called with no fields to change. Send at least one.
Not here yet
Placing a call. Deliberately absent rather than unbuilt. An assistant that can dial is an assistant that a document it happens to be reading can talk into dialling, so it needs a number typed by a person, a per-day ceiling, and a consent record of its own before it ships. We would rather say that than ship it and hope.
Assigning a phone number and knowledge base editing are next, in that order.