# BlueBot > BlueBot sends texts (iMessage, or SMS through your iPhone) from your own phone number. It needs a Mac you own that stays on with Messages signed in. It tells you about every text in and out with signed webhooks. It has a REST API, SDKs for TypeScript and Python, a CLI, an MCP server for AI assistants, and apps for Zapier, Make, n8n and Pipedream. - The docs write each operation as `POST /v1/messages`, which is `POST https://usebluebot.com/api/v1/messages`. Authenticate with `Authorization: Bearer bb_live_…`. - A text that can't go yet is accepted and held, never refused: its `hold` says why (quiet hours, the Mac offline, a daily limit, pacing) and until when. - Send an `Idempotency-Key` on every POST so a retry never sends twice. - The Mac needs macOS Sonoma (macOS 14) or later. BlueBot costs $17.99 a month with a 7-day trial. - The OpenAPI file is https://usebluebot.com/openapi.v1.json. ## What BlueBot is not - Anyone who wants to text people who didn’t ask to hear from them. BlueBot is not a bulk SMS gateway and has no cold outreach. - Anyone who needs a number they don’t own. BlueBot sends from your own number and provides none. - Anyone without a Mac that can stay on with Messages signed in. ## Get started - [BlueBot docs](https://usebluebot.com/docs.md): Send texts from your own number with one API call and get every reply as a signed webhook. These docs also cover Zapier, Make, n8n, Pipedream and AI assistants. - [Quickstart](https://usebluebot.com/docs/quickstart.md): Make an API key and text yourself from your own number in four steps, then learn the five things to know before you send in a loop. - [Limits](https://usebluebot.com/docs/limits.md): Every cap BlueBot has, why it's there and what happens when you reach it. Most of them hold a text until it can go rather than refuse it. ## Concepts - [How BlueBot works](https://usebluebot.com/docs/concepts/how-it-works.md): The whole path of a text from your app to the person's phone, and of their reply back to you, with what happens at each step and how you hear about it. - [The Mac app](https://usebluebot.com/docs/concepts/mac-app.md): What the BlueBot app in your menu bar does, what your Mac needs, the five checks it runs and how to fix each, what it means when the Mac is away, and how to keep it awake. - [Message states](https://usebluebot.com/docs/concepts/message-states.md): Every state a text can be in, every move between them and the webhook each move fires, why a text failed or was canceled, and how to settle one BlueBot couldn't confirm. - [Holds](https://usebluebot.com/docs/concepts/holds.md): Why a text that can't go yet is accepted and waits instead of failing, every reason it can wait, the order they're checked in, and when each one clears. - [Services and SMS fallback](https://usebluebot.com/docs/concepts/services.md): How BlueBot chooses between iMessage and a regular text, how a failed iMessage falls back to SMS through your iPhone, and when to ask for one or the other. - [What BlueBot can and can't do](https://usebluebot.com/docs/concepts/capabilities.md): What a Mac running BlueBot can and can't do with Messages, the reason for each limit, and how to design around the gaps before you build. - [Sending rules](https://usebluebot.com/docs/concepts/sending-rules.md): The settings that control how fast and how often your number sends, each with its default, what it does, how to read and change it through the API, and the warnings BlueBot gives when you loosen one. - [Quiet hours](https://usebluebot.com/docs/concepts/quiet-hours.md): How BlueBot keeps texts from going out at night, how the window is read in your time zone, what happens to texts sent during it, and how to change or turn it off. - [Stop words and the stop list](https://usebluebot.com/docs/concepts/stop-words.md): How a reply of STOP puts a person on your stop list, what BlueBot does with their waiting texts, how START undoes it, and how to read and change the stop list through the API. - [Data retention](https://usebluebot.com/docs/concepts/data-retention.md): What BlueBot keeps about your texts and for how long, what the API shows once the words are gone, how to export your data, and what happens when you delete your account. - [Templates](https://usebluebot.com/docs/concepts/templates.md): Save a text once with variables in it, then send it by id from the API, MCP, broadcasts, sequences and keyword replies, filled in for each person. ## Sending and receiving - [Send a text](https://usebluebot.com/docs/sending/texts.md): Every field of a send, from who to text and the words to iMessage or SMS, files, a group chat, a time to send it and your own metadata, and how to read the answer. - [Receive texts](https://usebluebot.com/docs/sending/receiving.md): How replies reach BlueBot, which chats your Mac copies, and how to hear about each text that comes in, with tapbacks, edits and unsends. - [Scheduled texts](https://usebluebot.com/docs/sending/scheduled.md): Send a text at a time you choose with send_at, change or cancel it until then, and see how quiet hours, pacing and expiry decide when it really goes. - [Change, cancel or settle a text](https://usebluebot.com/docs/sending/change-or-cancel.md): Change a scheduled text, cancel one that hasn’t gone, and settle an unconfirmed text the Mac couldn’t confirm, with which states allow which. - [Files and voice memos](https://usebluebot.com/docs/sending/files.md): Upload pictures, video, audio, PDFs and contact cards and send them on a text, read the pictures and voice memos people send you, and know the limits on each. - [Group chats](https://usebluebot.com/docs/sending/group-chats.md): Find a group chat, text into it with chat_id, and read what its members send. BlueBot can text into a group that already exists but can’t start a new one. - [Lookups](https://usebluebot.com/docs/sending/lookups.md): Ask whether a person uses iMessage. The answer is a best guess from your own Messages history and says what it’s based on. This page also covers when a lookup helps and when it doesn’t. ## API basics - [API keys and scopes](https://usebluebot.com/docs/concepts/api-keys.md): Make a key, send it with each request, give it only the scopes it needs, and revoke it when a program no longer needs it or the key leaks. - [Idempotency](https://usebluebot.com/docs/concepts/idempotency.md): Send an Idempotency-Key with every POST so a retry after a dropped connection gets the first answer instead of sending a second text. - [Pagination](https://usebluebot.com/docs/concepts/pagination.md): Every list returns one page at a time with the newest first. Each page carries a cursor for the next one. Read one page, loop through them all, or let the SDKs do it. - [Metadata](https://usebluebot.com/docs/concepts/metadata.md): Put your own ids on a text with metadata, and BlueBot hands them back on the message and on every webhook about it, so each delivery, failure and read ties back to your record. - [Rate limits](https://usebluebot.com/docs/concepts/rate-limits.md): Each key may make 120 requests a minute. How the minute is counted, the headers that say where you stand, what a 429 looks like, and how to wait it out. - [Versioning](https://usebluebot.com/docs/concepts/versioning.md): The API is /v1 and webhook payloads carry a dated version that each webhook keeps. What BlueBot may add without warning, what counts as a breaking change, and how to move to a new version. ## Webhooks - [Webhooks](https://usebluebot.com/docs/webhooks.md): BlueBot posts a signed JSON event to your address when a text comes in, a text you sent changes state, or your Mac needs you. Make a webhook, choose its events and answer fast. - [Verify signatures](https://usebluebot.com/docs/webhooks/verify.md): Check that each webhook post came from BlueBot and wasn't changed on the way, with the SDKs, any Standard Webhooks library, or a few lines of code in your language. - [Retries and the deliveries log](https://usebluebot.com/docs/webhooks/retries.md): What counts as a delivered webhook, when BlueBot tries a failed one again, why the same event can arrive twice or out of order, and how to read every attempt in the deliveries log. - [Replay deliveries](https://usebluebot.com/docs/webhooks/replay.md): Send an event to your webhook again, signed afresh, after you've fixed whatever made it fail. One delivery from the dashboard or the API, or every delivery that gave up with a short script. - [Rotate secrets](https://usebluebot.com/docs/webhooks/rotate-secrets.md): Give a webhook a new signing secret without missing a delivery. For 24 hours BlueBot signs with both the old and the new one, so you can deploy the change at your own pace. - [Test webhooks](https://usebluebot.com/docs/webhooks/testing.md): Three ways to check your webhook handler before you go live. Send a signed test event to your address, forward your account's real events to localhost with bluebot listen, or open a tunnel to your laptop. - [Event catalog](https://usebluebot.com/docs/webhooks/events.md): Every webhook event BlueBot sends, when it fires, and a full example payload for each. ## AI and MCP - [MCP server](https://usebluebot.com/docs/mcp.md): Connect Claude, ChatGPT, Cursor, VS Code or any MCP client to BlueBot, and your assistant can read your conversations, check your Mac and text people from your own number when you ask. - [MCP tools](https://usebluebot.com/docs/mcp/tools.md): The fifteen tools BlueBot's MCP server offers an assistant, what each one does, the inputs it takes and the API key scope it needs. - [OAuth or an API key](https://usebluebot.com/docs/mcp/auth.md): An assistant connects to BlueBot's MCP server by signing in with OAuth or by sending an API key. How each works, which scopes to give it, and how to cut it off. - [Example prompts](https://usebluebot.com/docs/mcp/prompts.md): Things to ask an assistant connected to BlueBot, grouped by job, with the tools it calls and what it does for each one. - [Docs for AI agents](https://usebluebot.com/docs/for-ai-agents.md): Every page of these docs comes as Markdown for language models, with llms.txt to find them, llms-full.txt to read them all at once, and a prompt that gets a coding agent to build a BlueBot integration the right way. ## No-code - [Zapier](https://usebluebot.com/docs/zapier.md): BlueBot’s Zapier app texts from your own number and starts a Zap when a text comes in, a text changes state or somebody texts STOP. This page lists every trigger, action and search and each of their fields. - [Make](https://usebluebot.com/docs/make.md): BlueBot’s Make app sends texts from your own number and starts scenarios when a text comes in, a text changes state or somebody texts STOP. Every module, its fields and what it outputs. - [n8n](https://usebluebot.com/docs/n8n.md): The BlueBot community node for n8n, with every resource and operation in the API and a trigger node that starts a workflow when a text arrives. Installing it on n8n Cloud and on your own server. - [Pipedream](https://usebluebot.com/docs/pipedream.md): BlueBot’s Pipedream components send texts from your own number and start workflows when a text comes in. Every action and source, and how to call BlueBot from your own code steps. - [Text Hooks](https://usebluebot.com/docs/text-hooks.md): A Text Hook is an address any app can post its webhook to, and each post becomes a text from your number. Set one up, map the fields, use a preset for Calendly, Typeform, Shopify, Stripe or Jotform, and test it with curl. - [Website widget](https://usebluebot.com/docs/widget.md): A “Text us” button for your website. A visitor leaves their name, number and question, and gets a text from your own number, so the conversation continues in Messages rather than in a chat window. ## SDKs and tools - [SDKs](https://usebluebot.com/docs/sdks.md): The TypeScript and Python SDKs wrap every API operation with typed models, automatic retries, idempotency keys, pagination and webhook verification. How they behave, and how to call the API from Go, Ruby and PHP without one. - [TypeScript SDK](https://usebluebot.com/docs/sdks/typescript.md): @usebluebot/sdk for Node, Bun, Deno and edge runtimes: the client, every method, pagination, idempotency and retries, typed errors, webhook verification and the types it exports. - [Python SDK](https://usebluebot.com/docs/sdks/python.md): The bluebot package for Python 3.9 and newer, sync and async on httpx with pydantic models. The client, every method, pagination, idempotency and retries, typed errors and webhook verification. - [CLI](https://usebluebot.com/docs/cli.md): The bluebot command sends and reads texts, checks your Mac, manages webhooks and forwards events to a handler on your laptop with no tunnel. Every command, flag, setting and exit code. - [OpenAPI, Postman and Insomnia](https://usebluebot.com/docs/openapi.md): The whole API as one OpenAPI 3.1 file. Import it into Postman or Insomnia and send requests with your key in a few minutes, or generate types and a client for a language the SDKs don’t cover. ## Guides - [Guides](https://usebluebot.com/docs/guides.md): Step-by-step builds for the texts people set up first, from a reply to every new lead to reminders that cancel themselves, each tested with your own number before it texts anyone else. - [Answer texts with Claude, with you approving each reply](https://usebluebot.com/docs/guides/ai-receptionist.md): Connect Claude to BlueBot’s MCP server, give it your hours, prices and booking rules, and let it read who’s waiting and draft every reply, while nothing leaves your number until you approve it. - [Build an AI agent that answers texts on its own](https://usebluebot.com/docs/guides/ai-agent.md): Build an agent with the Claude Agent SDK that a message.received webhook wakes, which reads the conversation through BlueBot’s MCP server and replies through the API, with verified signatures, an idempotency key per reply, a stop-list check and a handoff to a person. - [Confirm and remind Calendly and Cal.com bookings](https://usebluebot.com/docs/guides/booking-reminders.md): Text each person who books through Calendly or Cal.com a confirmation from your own number, then a reminder the day before that cancels itself when they cancel or reschedule. - [Appointment reminders from your own app](https://usebluebot.com/docs/guides/appointment-reminders.md): Schedule a reminder text with send_at when your app books an appointment, move it with one request when the appointment moves, cancel it when it’s canceled, and hear about any reminder that didn’t go. - [Follow up three times and stop when they reply](https://usebluebot.com/docs/guides/drip-sequence.md): Send three texts over a week from your own number and stop as soon as the person answers, with a Sequence in the dashboard or with scheduled texts that your webhook cancels on a reply. - [Answer keywords like MENU and HOURS automatically](https://usebluebot.com/docs/guides/keyword-auto-reply.md): Reply from your own number as soon as somebody texts a keyword, with keyword rules in the dashboard or with a webhook handler that looks the answer up in your own data. - [Give each person who texts you a Slack channel](https://usebluebot.com/docs/guides/slack-channel-per-conversation.md): Build a small Slack app that opens a private channel for each person who texts your number, posts their texts there, and sends whatever your team writes in the channel back to them as a text from your number. - [Log every text on the HubSpot contact’s timeline](https://usebluebot.com/docs/guides/hubspot-timeline.md): Put every text you send and every reply you get on the HubSpot contact’s timeline as a logged SMS, from a webhook handler of about sixty lines, so your team sees the whole conversation without opening Messages. - [Text from HighLevel workflows through your own number](https://usebluebot.com/docs/guides/gohighlevel.md): Send the texts your HighLevel workflows already send from your own number through BlueBot instead of a rented one, then put every reply on the contact and tag the ones who text STOP. - [Text new Follow Up Boss leads at once and log every text](https://usebluebot.com/docs/guides/follow-up-boss.md): Text each new lead in Follow Up Boss from your own number within a minute, then log every text in and out on the person in Follow Up Boss, so the whole team sees the conversation. - [Run a small CRM in Airtable that texts](https://usebluebot.com/docs/guides/airtable-crm.md): Keep your clients in an Airtable table, text any of them from your own number by ticking a box or changing their status, and get their replies, their stops and each text’s state written back to the row. - [Run appointment texts on your own server with n8n](https://usebluebot.com/docs/guides/n8n-self-hosted.md): Set up n8n on a server of your own with Docker, Caddy and Postgres, install the BlueBot community node, and build two workflows. One texts a reminder the evening before each appointment, and the other answers a reply of C or R by confirming it or sending the booking link. - [Text everyone who fills in your Typeform or Jotform](https://usebluebot.com/docs/guides/form-replies.md): Text each person who fills in your Typeform or Jotform from your own number within a minute, with a Text Hook and no code, or with a small webhook handler when you want your own logic. - [Text each new row in a Google Sheet](https://usebluebot.com/docs/guides/google-sheets.md): Send a text from your own number for every new row in a Google Sheet and write back when it went, with Zapier, Make or a short Apps Script that needs nothing else. - [Welcome new Shopify customers by text](https://usebluebot.com/docs/guides/shopify-new-customers.md): Send each new Shopify customer who agreed to texts a welcome from your own number a couple of hours after their first order, with Zapier or with a webhook handler that checks Shopify’s consent and signature. - [Add a “Text us” button to your website](https://usebluebot.com/docs/guides/text-us-button.md): Three ways to let website visitors reach your own number by text, from a plain sms link to BlueBot’s widget to a form whose posts become texts, and which to pick for your site. ## API reference - [API reference](https://usebluebot.com/docs/api.md): The base URL, how to authenticate, what requests and answers look like, the headers BlueBot reads and sends, and every operation in the API. - [List texts](https://usebluebot.com/docs/api/messages/list-messages.md): Texts in and out, newest first, including ones typed by hand on your Mac or iPhone (source: "mac"). - [Send a text](https://usebluebot.com/docs/api/messages/send-message.md): Queues a text from your own number. - [Get a text](https://usebluebot.com/docs/api/messages/get-message.md): One text, with its state, hold, files and tapbacks. - [Change a scheduled text](https://usebluebot.com/docs/api/messages/update-message.md): Changes the words, time, expiry or metadata of a text that is still scheduled. - [Cancel a text](https://usebluebot.com/docs/api/messages/cancel-message.md): Cancels a text that is scheduled or queued. - [Settle an unconfirmed text](https://usebluebot.com/docs/api/messages/resolve-message.md): An unconfirmed text is one the Mac took and couldn’t confirm before its lease ran out; it may have gone. - [Upload a file](https://usebluebot.com/docs/api/files/upload-file.md): Uploads a picture, video, audio file, PDF or contact card (.vcf) of up to 25 MB to send. - [Get a file](https://usebluebot.com/docs/api/files/get-file.md): A file, with a fresh url that reads it for an hour. - [List chats](https://usebluebot.com/docs/api/chats/list-chats.md): The chats the Mac has seen, newest first, with their participants. - [Get a chat](https://usebluebot.com/docs/api/chats/get-chat.md): One chat and its participants. - [Is this number on iMessage?](https://usebluebot.com/docs/api/lookup/lookup-number.md): A best guess from your own Messages history: what the newest chat with the person used. - [Get the Mac](https://usebluebot.com/docs/api/device/get-device.md): The Mac that sends for you: whether it is online, its setup checks, how many texts are waiting and today’s counts against the limits. - [BlueBot’s status](https://usebluebot.com/docs/api/device/get-status.md): Whether BlueBot itself is up. - [Get the sending rules](https://usebluebot.com/docs/api/settings/get-settings.md): Pacing, new people per day, quiet hours, stop words, expiry and which chats the Mac copies. - [Change the sending rules](https://usebluebot.com/docs/api/settings/update-settings.md): Changes the settings you send; the rest stay. - [List the stop list](https://usebluebot.com/docs/api/stops/list-stops.md): People BlueBot won’t text, newest first: those who texted a stop word and those you added. - [Stop texting somebody](https://usebluebot.com/docs/api/stops/add-stop.md): Puts a person on the stop list and cancels their queued and scheduled texts. - [Text somebody again](https://usebluebot.com/docs/api/stops/remove-stop.md): Takes a person off the stop list. - [List events](https://usebluebot.com/docs/api/events/list-events.md): The last 30 days of events, newest first, in the shape a webhook receives them. - [Get an event](https://usebluebot.com/docs/api/events/get-event.md): One event, as a webhook received it. - [List webhooks](https://usebluebot.com/docs/api/webhooks/list-webhooks.md): Every webhook on the account. - [Make a webhook](https://usebluebot.com/docs/api/webhooks/create-webhook.md): BlueBot posts each event of the types you choose to url, signed the Standard Webhooks way with the secret in the answer, which is shown this once. - [Get a webhook](https://usebluebot.com/docs/api/webhooks/get-webhook.md): One webhook and how its deliveries are going. - [Change a webhook](https://usebluebot.com/docs/api/webhooks/update-webhook.md): Changes the address, the event types or the description, or pauses or resumes it. - [Delete a webhook](https://usebluebot.com/docs/api/webhooks/delete-webhook.md): Deletes the webhook and drops its waiting deliveries. - [Send a test event](https://usebluebot.com/docs/api/webhooks/test-webhook.md): Sends an example event of the type you choose to this webhook alone, signed like a real one, and answers once it was tried. - [Rotate the signing secret](https://usebluebot.com/docs/api/webhooks/rotate-webhook-secret.md): Makes a new signing secret, shown this once. - [List deliveries](https://usebluebot.com/docs/api/webhooks/list-deliveries.md): What BlueBot tried to deliver to this webhook in the last 30 days, newest first, with each answer’s status. - [Send a delivery again](https://usebluebot.com/docs/api/webhooks/replay-delivery.md): Sends the same event to the webhook again as a new delivery, signed afresh. - [Who am I?](https://usebluebot.com/docs/api/account/get-me.md): The account and key a request acts as, the plan and whether the Mac is online. - [List conversations](https://usebluebot.com/docs/api/conversations/list-conversations.md): Your conversations as the dashboard’s inbox shows them, one per person or group chat, the most recent first. - [Get a conversation](https://usebluebot.com/docs/api/conversations/get-conversation.md): One conversation with its last text, how many texts in are unread, and whether the person is waiting on you. - [Mark a conversation read or done](https://usebluebot.com/docs/api/conversations/update-conversation.md): read: true marks every text in it read in the dashboard. - [List a conversation’s texts](https://usebluebot.com/docs/api/conversations/list-conversation-messages.md): The texts in one conversation, in and out, newest first. - [Get the numbers](https://usebluebot.com/docs/api/analytics/get-analytics.md): Counts for the last 7, 30 or 90 days, ending now and read in your time zone: texts in and out by day and by hour, delivery and reply rates, how long people take to answer you and how long you take to answer them, iMessage against SMS, where texts came from, and the conversations waiting on you with what to fix next. - [List contacts](https://usebluebot.com/docs/api/contacts/list-contacts.md): Your contacts, the most recently texted first. - [Add a contact](https://usebluebot.com/docs/api/contacts/create-contact.md): Adds a person with their name, tags and custom fields, which templates fill in. - [Get a contact](https://usebluebot.com/docs/api/contacts/get-contact.md): One contact, with their tags, custom fields and whether they are on your stop list. - [Change a contact](https://usebluebot.com/docs/api/contacts/update-contact.md): Changes the fields you send and leaves the rest. - [Delete a contact](https://usebluebot.com/docs/api/contacts/delete-contact.md): Takes the person off your contacts. - [List templates](https://usebluebot.com/docs/api/templates/list-templates.md): Your saved texts, newest first, with the variables each one names. - [Make a template](https://usebluebot.com/docs/api/templates/create-template.md): Saves a text with {{variables}}. - [Get a template](https://usebluebot.com/docs/api/templates/get-template.md): One template and the variables it names. - [Change a template](https://usebluebot.com/docs/api/templates/update-template.md): Changes the name, the text or both. - [Delete a template](https://usebluebot.com/docs/api/templates/delete-template.md): Deletes the template, and its name is free to use again. - [List broadcasts](https://usebluebot.com/docs/api/broadcasts/list-broadcasts.md): Your broadcasts, newest first. - [Send a broadcast](https://usebluebot.com/docs/api/broadcasts/create-broadcast.md): Sends one text to up to 500 people: contacts with any of tags, the contacts in contact_ids, or a list in recipients (people who aren’t contacts yet are added). - [Check a broadcast before sending it](https://usebluebot.com/docs/api/broadcasts/preview-broadcast.md): Answers what POST /v1/broadcasts would do with the same body, without sending anything: how many people it reaches, who is skipped, the first five texts filled in, and when the last one should go. - [Get a broadcast](https://usebluebot.com/docs/api/broadcasts/get-broadcast.md): One broadcast with its counts and, while it is sending, when the rest should go. - [List a broadcast’s recipients](https://usebluebot.com/docs/api/broadcasts/list-broadcast-recipients.md): Each person in a broadcast with where their text stands. - [Cancel the rest of a broadcast](https://usebluebot.com/docs/api/broadcasts/cancel-broadcast.md): Nobody still waiting gets their text, and texts queued but not yet taken by your Mac are canceled. - [List sequences](https://usebluebot.com/docs/api/sequences/list-sequences.md): Your sequences, newest first. - [Make a sequence](https://usebluebot.com/docs/api/sequences/create-sequence.md): A sequence is texts with waits between them. - [Get a sequence](https://usebluebot.com/docs/api/sequences/get-sequence.md): One sequence with its steps and how many people are in each state. - [Change a sequence](https://usebluebot.com/docs/api/sequences/update-sequence.md): Renames it, pauses or resumes it, archives it (which ends every active run), or replaces its steps. - [List a sequence’s people](https://usebluebot.com/docs/api/sequences/list-enrollments.md): Everyone who was added to a sequence, newest first. - [Add a person to a sequence](https://usebluebot.com/docs/api/sequences/enroll-in-sequence.md): Starts the sequence for one person, by to (added as a contact when new) or contact_id. - [Get a person’s run](https://usebluebot.com/docs/api/sequences/get-enrollment.md): One person’s run through a sequence, with a timeline of each text, wait and stop. - [Take a person out of a sequence](https://usebluebot.com/docs/api/sequences/cancel-enrollment.md): Ends this person’s run through the sequence. - [List Text Hooks](https://usebluebot.com/docs/api/text-hooks/list-text-hooks.md): Your Text Hooks, newest first. - [Make a Text Hook](https://usebluebot.com/docs/api/text-hooks/create-text-hook.md): A Text Hook is an address any app can post to (Calendly, Typeform, Shopify, Stripe, Jotform, your own form) that turns the post into a text from your number. - [Get a Text Hook](https://usebluebot.com/docs/api/text-hooks/get-text-hook.md): One Text Hook with its address and mapping. - [Change a Text Hook](https://usebluebot.com/docs/api/text-hooks/update-text-hook.md): Changes its name, mapping, words, sequence, or turns it or test mode on or off. - [Delete a Text Hook](https://usebluebot.com/docs/api/text-hooks/delete-text-hook.md): Its address stops working at once, and its recent posts are deleted. - [List keyword rules](https://usebluebot.com/docs/api/automations/list-keyword-rules.md): Your keyword rules, in the order they are tried. - [Make a keyword rule](https://usebluebot.com/docs/api/automations/create-keyword-rule.md): When an incoming one-to-one text matches, the rule replies with words or a template, tags the person, adds them to a sequence, or sends an automation.matched webhook event, in the order you list them. - [Get a keyword rule](https://usebluebot.com/docs/api/automations/get-keyword-rule.md): One keyword rule, with what it matches and does. - [Change a keyword rule](https://usebluebot.com/docs/api/automations/update-keyword-rule.md): Changes what it matches, what it does, its position, or turns it off. - [Delete a keyword rule](https://usebluebot.com/docs/api/automations/delete-keyword-rule.md): The rule stops matching at once. - [Get the away message](https://usebluebot.com/docs/api/automations/get-away-message.md): The reply sent outside your business hours, and the hours. - [Change the away message](https://usebluebot.com/docs/api/automations/update-away-message.md): Turns it on or off, or changes its words, your hours or how often one person can get it. ## Optional - [Recipes](https://usebluebot.com/docs/recipes.md): One page for each app BlueBot works with, with the trigger, the BlueBot step, the fields to map and a test that texts only you. - [Zapier recipes](https://usebluebot.com/docs/recipes/zapier.md): Send a text from any Zap, and start a Zap when someone texts you back. - [Make recipes](https://usebluebot.com/docs/recipes/make.md): Send texts from Make scenarios and start one whenever a text comes in. - [n8n recipes](https://usebluebot.com/docs/recipes/n8n.md): Text from n8n workflows, self-hosted or in the cloud, with BlueBot’s community node. - [Pipedream recipes](https://usebluebot.com/docs/recipes/pipedream.md): Send texts and react to replies in Pipedream workflows, with code steps where you need them. - [Claude recipes](https://usebluebot.com/docs/recipes/claude.md): Let Claude read your conversations and send texts from your number after you approve each one. - [ChatGPT recipes](https://usebluebot.com/docs/recipes/chatgpt.md): Add BlueBot to ChatGPT as a connector and text from your number in a chat. - [Cursor recipes](https://usebluebot.com/docs/recipes/cursor.md): Give Cursor’s agent BlueBot’s tools while you build, so it can text you when a job finishes. - [VS Code recipes](https://usebluebot.com/docs/recipes/vs-code.md): Use BlueBot’s MCP server from VS Code’s agent mode. - [Windsurf recipes](https://usebluebot.com/docs/recipes/windsurf.md): Add BlueBot’s MCP server to Windsurf so its agent can send and read texts. - [HubSpot recipes](https://usebluebot.com/docs/recipes/hubspot.md): Text new contacts and deal changes from your own number, and log replies back on the contact. - [Salesforce recipes](https://usebluebot.com/docs/recipes/salesforce.md): Text leads and contacts when records change, and bring replies back as tasks. - [Pipedrive recipes](https://usebluebot.com/docs/recipes/pipedrive.md): Text a person when a deal moves stage, and add their reply to the deal as a note. - [HighLevel recipes](https://usebluebot.com/docs/recipes/gohighlevel.md): Send texts from HighLevel workflows through your own number instead of a rented one. - [Close recipes](https://usebluebot.com/docs/recipes/close.md): Text leads from your own number when they reach a status, and log the conversation on the lead. - [Zoho CRM recipes](https://usebluebot.com/docs/recipes/zoho-crm.md): Text new leads and contacts from Zoho CRM, and bring replies back as notes. - [Attio recipes](https://usebluebot.com/docs/recipes/attio.md): Text people as records change in Attio, and keep the replies with the record. - [Follow Up Boss recipes](https://usebluebot.com/docs/recipes/follow-up-boss.md): Text each new lead from your own number within a minute, and log replies on the person. - [kvCORE (BoldTrail) recipes](https://usebluebot.com/docs/recipes/kvcore.md): Text new kvCORE leads from your own number instead of a platform number. - [Lofty recipes](https://usebluebot.com/docs/recipes/lofty.md): Text Lofty leads from your own number. - [Typeform recipes](https://usebluebot.com/docs/recipes/typeform.md): Text each person who fills in a form from your own number within seconds. - [Jotform recipes](https://usebluebot.com/docs/recipes/jotform.md): Turn each Jotform submission into a text to the person, to you, or both. - [Google Forms recipes](https://usebluebot.com/docs/recipes/google-forms.md): Text people who answer a Google Form, and text yourself the answers. - [Tally recipes](https://usebluebot.com/docs/recipes/tally.md): Post Tally’s webhook to a Text Hook and every submission becomes a text. - [Gravity Forms recipes](https://usebluebot.com/docs/recipes/gravity-forms.md): Text people who fill in a Gravity Forms form on your WordPress site. - [Calendly recipes](https://usebluebot.com/docs/recipes/calendly.md): Confirm every booking by text and remind people before the meeting. - [Cal.com recipes](https://usebluebot.com/docs/recipes/cal-com.md): Send Cal.com’s booking webhooks to a Text Hook and text each person who books. - [Acuity Scheduling recipes](https://usebluebot.com/docs/recipes/acuity-scheduling.md): Text clients when they book, reschedule or cancel an Acuity appointment. - [Google Calendar recipes](https://usebluebot.com/docs/recipes/google-calendar.md): Text the people on an event before it starts. - [Mindbody recipes](https://usebluebot.com/docs/recipes/mindbody.md): Text clients about classes and appointments from the studio’s own number. - [Google Sheets recipes](https://usebluebot.com/docs/recipes/google-sheets.md): Text each new row, and keep a sheet of every reply. - [Airtable recipes](https://usebluebot.com/docs/recipes/airtable.md): Text people as records change in a base, and write their replies back to it. - [Notion recipes](https://usebluebot.com/docs/recipes/notion.md): Text people from a Notion database, and keep their replies on the page. - [Shopify recipes](https://usebluebot.com/docs/recipes/shopify.md): Text customers when an order is placed or shipped, from the shop’s own number. - [WooCommerce recipes](https://usebluebot.com/docs/recipes/woocommerce.md): Point a WooCommerce webhook at a Text Hook and text customers about their orders. - [Stripe recipes](https://usebluebot.com/docs/recipes/stripe.md): Text customers a thank-you when they pay, and text yourself when a payment fails. - [Square recipes](https://usebluebot.com/docs/recipes/square.md): Text customers after a sale or a booking in Square. - [Zendesk recipes](https://usebluebot.com/docs/recipes/zendesk.md): Text a customer when their ticket is solved, and text yourself when an urgent one arrives. - [Intercom recipes](https://usebluebot.com/docs/recipes/intercom.md): Follow up by text from your own number when a conversation goes quiet. - [Help Scout recipes](https://usebluebot.com/docs/recipes/help-scout.md): Text customers about their conversations in Help Scout. - [Freshdesk recipes](https://usebluebot.com/docs/recipes/freshdesk.md): Text customers when a Freshdesk ticket changes, and text yourself the urgent ones. - [Jobber recipes](https://usebluebot.com/docs/recipes/jobber.md): Text clients when a visit is booked and when you’re on the way. - [Housecall Pro recipes](https://usebluebot.com/docs/recipes/housecall-pro.md): Text customers about jobs and estimates from the owner’s own number. - [ServiceTitan recipes](https://usebluebot.com/docs/recipes/servicetitan.md): Text customers from your own number with a script that reads ServiceTitan jobs through its API. - [Webflow recipes](https://usebluebot.com/docs/recipes/webflow.md): Text each person who fills in a Webflow form. - [Wix recipes](https://usebluebot.com/docs/recipes/wix.md): Text people who fill in a form or book on your Wix site. - [Squarespace recipes](https://usebluebot.com/docs/recipes/squarespace.md): Text people who fill in a form on your Squarespace site. - [WordPress recipes](https://usebluebot.com/docs/recipes/wordpress.md): Add BlueBot’s “Text us” button to a WordPress site, or text people from its forms. - [Facebook Lead Ads recipes](https://usebluebot.com/docs/recipes/facebook-lead-ads.md): Text every lead from a Facebook or Instagram lead form as soon as they submit it. - [Google Ads lead forms recipes](https://usebluebot.com/docs/recipes/google-ads.md): Text people who fill in a Google Ads lead form. - [Slack recipes](https://usebluebot.com/docs/recipes/slack.md): Get a Slack message when someone texts you, your Mac goes offline or a webhook stops. - [Discord recipes](https://usebluebot.com/docs/recipes/discord.md): Post incoming texts to a Discord channel. - [Gmail recipes](https://usebluebot.com/docs/recipes/gmail.md): Get your texts in Gmail, and text yourself when an important email arrives. - [Outlook recipes](https://usebluebot.com/docs/recipes/outlook.md): Get your texts in Outlook, and text yourself when an email from a client arrives. - [Trello recipes](https://usebluebot.com/docs/recipes/trello.md): Text someone when a card moves, and turn incoming texts into cards. - [Asana recipes](https://usebluebot.com/docs/recipes/asana.md): Turn texts into Asana tasks, and text a client when their task is done. - [ClickUp recipes](https://usebluebot.com/docs/recipes/clickup.md): Text a client when a ClickUp task changes status. - [monday.com recipes](https://usebluebot.com/docs/recipes/monday.md): Text people when an item on a monday.com board changes. - [GitHub recipes](https://usebluebot.com/docs/recipes/github.md): Text yourself when a deploy fails or a release ships, from a GitHub Action or a webhook. - [Postman recipes](https://usebluebot.com/docs/recipes/postman.md): Try every endpoint from BlueBot’s Postman collection before you write any code. - [Supabase recipes](https://usebluebot.com/docs/recipes/supabase.md): Text someone when a row changes, from a database webhook or an Edge Function. - [Vercel recipes](https://usebluebot.com/docs/recipes/vercel.md): Text from a Next.js app with the TypeScript SDK, and text yourself when a deploy fails. - [Moving from Twilio recipes](https://usebluebot.com/docs/recipes/twilio.md): Swap a Twilio send for BlueBot’s and text from your own number instead of a rented one. - [Errors](https://usebluebot.com/docs/errors.md): The one shape every refusal takes, how to handle an error by its code, which errors to retry, and every code the API answers with. - [invalid_request](https://usebluebot.com/docs/errors/invalid_request.md): 400 Invalid request. Something in the request doesn’t fit: a missing or malformed field, a bad id, or a combination the endpoint refuses. - [unauthorized](https://usebluebot.com/docs/errors/unauthorized.md): 401 Unauthorized. The request carried no key, or a key BlueBot doesn’t know: mistyped, revoked, or a test key sent to the live API. - [plan_lapsed](https://usebluebot.com/docs/errors/plan_lapsed.md): 402 Plan lapsed. The account’s plan isn’t active, so BlueBot isn’t taking new texts. - [forbidden](https://usebluebot.com/docs/errors/forbidden.md): 403 Forbidden. The key is valid but may not do this. - [insufficient_scope](https://usebluebot.com/docs/errors/insufficient_scope.md): 403 Insufficient scope. The key doesn’t carry the scope the endpoint needs. - [account_held](https://usebluebot.com/docs/errors/account_held.md): 403 Account held. BlueBot paused sending on this account, usually while it looks into reports of unwanted texts. - [not_found](https://usebluebot.com/docs/errors/not_found.md): 404 Not found. There is no such thing on this account. - [conflict](https://usebluebot.com/docs/errors/conflict.md): 409 Conflict. The request doesn’t fit the thing’s current state, or another request with the same Idempotency-Key is still running. - [idempotency_conflict](https://usebluebot.com/docs/errors/idempotency_conflict.md): 409 Idempotency key reused. The Idempotency-Key was used in the last 24 hours with a different request. - [limit_reached](https://usebluebot.com/docs/errors/limit_reached.md): 409 Limit reached. The account has as many of something as it may have. - [payload_too_large](https://usebluebot.com/docs/errors/payload_too_large.md): 413 Payload too large. The request is bigger than the endpoint takes. - [unsupported_media_type](https://usebluebot.com/docs/errors/unsupported_media_type.md): 415 Unsupported media type. The body isn’t a type the endpoint reads: JSON for most, a multipart form for file uploads, and only the file types listed for files. - [rate_limited](https://usebluebot.com/docs/errors/rate_limited.md): 429 Rate limited. Too many requests. - [internal](https://usebluebot.com/docs/errors/internal.md): 500 Internal error. Something went wrong on BlueBot’s side. - [upstream_failed](https://usebluebot.com/docs/errors/upstream_failed.md): 502 Upstream failed. A service BlueBot depends on failed. - [unavailable](https://usebluebot.com/docs/errors/unavailable.md): 503 Unavailable. BlueBot isn’t taking requests right now, during maintenance or an incident. - [The whole docs in one file](https://usebluebot.com/llms-full.txt): every page above as Markdown.