# GetReply > Send WhatsApp messages, templates, OTPs and campaigns from your own software with the GetReply API. - [Introduction](https://docs.getreply.in/introduction.md): Send WhatsApp messages from your own software with GetReply. - [Quickstart](https://docs.getreply.in/quickstart.md): Send your first WhatsApp template in five minutes. - [Authentication](https://docs.getreply.in/authentication.md): API keys, permissions and allowed IP addresses. - [Sending templates](https://docs.getreply.in/guides/sending-templates.md): Send an approved template to one person. - [Sending OTPs](https://docs.getreply.in/guides/sending-otps.md): Send one-time codes with your authentication template. - [Replies in the 24-hour window](https://docs.getreply.in/guides/replies.md): Send free-form text, files and buttons after a person writes to you. - [Media](https://docs.getreply.in/guides/media.md): Send files, and download files people send you. - [Chats, notes and history](https://docs.getreply.in/guides/inbox.md): Read a customer's chat, and work your Inbox from your own software. - [Webhooks and signatures](https://docs.getreply.in/guides/webhooks.md): Get message, campaign and account events as they happen. - [Retrying safely](https://docs.getreply.in/guides/retrying-safely.md): Idempotency-Key: retry without sending or charging twice. - [Campaigns](https://docs.getreply.in/guides/campaigns.md): Send one template to many people, now or later. - [International numbers and prices](https://docs.getreply.in/guides/international.md): Send outside India, and read the price of a message. - [Limits and the abuse guard](https://docs.getreply.in/guides/limits.md): Rate limits, sizes and how wrong keys are handled. - [What is not available yet](https://docs.getreply.in/guides/not-yet-available.md): Things the API does not do today. - [Errors](https://docs.getreply.in/reference/errors.md): Every error code, its HTTP status and its message. - [Changelog](https://docs.getreply.in/reference/changelog.md): What changed in the GetReply API. - [API reference](https://docs.getreply.in/api-reference/introduction.md): Every endpoint of the GetReply API, with a playground. - [Your account](https://docs.getreply.in/api-reference/account/your-account.md): The business name, the plan and when it ends (India date), and the wallet. - [Your WhatsApp number](https://docs.getreply.in/api-reference/account/your-whatsapp-number.md): Your WhatsApp number: display name, quality, daily messaging limit and whether it can send now. - [Check your key](https://docs.getreply.in/api-reference/account/check-your-key.md): Answers when the key works. Use it to test your setup. - [Message prices](https://docs.getreply.in/api-reference/account/message-prices.md): The price of one message in rupees, by country and category — the same prices as in the app. Filter by country, category or both. - [Your business profile](https://docs.getreply.in/api-reference/account/your-business-profile.md): Your WhatsApp business profile: about, address, description, email, websites and category. - [Edit your business profile](https://docs.getreply.in/api-reference/account/edit-your-business-profile.md): Changes only the fields you give; the rest stay. The app's rules: about at most 139 characters, address 256, description 512, email 128; one website (https or http); category one of WhatsApp's categories (e.g. retail). - [Today's usage](https://docs.getreply.in/api-reference/account/todays-usage.md): People messaged in the last 24 hours, your daily limit and what is left. The limit counts people, not messages. - [Wallet transactions](https://docs.getreply.in/api-reference/account/wallet-transactions.md): Your wallet's lines, newest first: type, amount, the balance after it, the message or campaign it belongs to, and when (India time). Read only. The newest line's balance after is your wallet's balance. - [Upload a file](https://docs.getreply.in/api-reference/messages/upload-a-file.md): Uploads a file once (multipart/form-data, the field file) and answers its media id, for media_id in any send. The app's own rules: pictures JPEG or PNG (HEIC and WEBP are turned into JPEG, a larger picture made smaller), videos MP4 or 3GPP, documents; the largest image 5 MB, video 16 MB, document 10… - [A received file](https://docs.getreply.in/api-reference/messages/a-received-file.md): A file someone sent you, a file you sent (media.id on a message) or one you uploaded: its type and a signed download link that works for 15 minutes. - [Download a received file](https://docs.getreply.in/api-reference/messages/download-a-received-file.md): No key needed. The signed link stops working after a short time. - [A message](https://docs.getreply.in/api-reference/messages/a-message.md): One message: its status, price, what it was charged, its timeline, its campaign (campaign_id and campaign_reference, null when it is not a campaign message) and what was sent (text and media). - [Mark as read](https://docs.getreply.in/api-reference/messages/mark-as-read.md): Marks a message the person sent you (its id from message.received) as read — and the ones before it. Nothing is charged. typing (they also see that you are typing) is not available yet: with typing set, the answer is not_available. - [Send a contact card](https://docs.getreply.in/api-reference/messages/send-a-contact-card.md): Sends one or more contact cards, inside the 24-hour window. Each card is WhatsApp's contact object; name.formatted_name is needed. Not switched on for every account yet: not_available until it is. - [Send buttons or a list](https://docs.getreply.in/api-reference/messages/send-buttons-or-a-list.md): Sends up to 3 reply buttons, or a list, inside the 24-hour window. When the person taps one, you get message.received with its id. - [Send a link button](https://docs.getreply.in/api-reference/messages/send-a-link-button.md): Sends text with one button that opens a link, inside the 24-hour window. Body at most 1024 characters, button text 20, header and footer 60. - [Send a location](https://docs.getreply.in/api-reference/messages/send-a-location.md): Sends a pin on the map, inside the 24-hour window. - [Send a file](https://docs.getreply.in/api-reference/messages/send-a-file.md): Sends an image, video, audio or document by https link, inside the 24-hour window. Largest files: image 5 MB, video 16 MB, audio 16 MB, document 100 MB. A caption is at most 1024 characters (not for audio). - [Send an OTP](https://docs.getreply.in/api-reference/messages/send-an-otp.md): Sends a one-time code with your approved authentication template (at most 15 characters, no spaces). Leave out the template when you have exactly one. - [React to a message](https://docs.getreply.in/api-reference/messages/react-to-a-message.md): Puts an emoji on a message the person sent you (its id from message.received). An empty emoji takes your reaction off. Inside the 24-hour window. Not switched on for every account yet: not_available until it is. - [Send a sticker](https://docs.getreply.in/api-reference/messages/send-a-sticker.md): Sends a sticker, inside the 24-hour window: one uploaded with POST /v1/media (type=sticker), or a link to a WEBP file. Not switched on for every account yet: not_available until it is. - [Send a template](https://docs.getreply.in/api-reference/messages/send-a-template.md): Sends an approved template to one person: its header (text or a file by link), one value per variable, and the values its buttons need. - [Send a template test](https://docs.getreply.in/api-reference/messages/send-a-template-test.md): The same body as Send a template. It is sent the way the app sends a campaign test: a test message (type test), priced, held and charged exactly like the app's test. No contact or chat is made. - [Send a text reply](https://docs.getreply.in/api-reference/messages/send-a-text-reply.md): Sends text inside the 24-hour window after the person last wrote to you (at most 4096 characters). Outside it, send a template. - [List templates](https://docs.getreply.in/api-reference/templates/list-templates.md): Your templates, with their status and quality. - [Create a template](https://docs.getreply.in/api-reference/templates/create-a-template.md): Creates a template and sends it for review — the same rules as in the app. It starts as pending. - [Delete a template](https://docs.getreply.in/api-reference/templates/delete-a-template.md): Deletes a template (one language with ?language=, or every language of the name). - [A template](https://docs.getreply.in/api-reference/templates/a-template.md): One template by name (add ?language= when it has more than one language). - [Edit a template](https://docs.getreply.in/api-reference/templates/edit-a-template.md): Edits a template; it goes for review again. The name, language and an approved category stay. - [List saved audiences](https://docs.getreply.in/api-reference/contacts/list-saved-audiences.md): Your saved audience names (for campaigns). - [Save an audience](https://docs.getreply.in/api-reference/contacts/save-an-audience.md): Saves an audience the way the app does: a name and one tag, read again whenever a campaign uses it. Or give a list of customers (numbers or WhatsApp username ids, at most 1,000): they get a tag with the audience's name, and the audience follows that tag. Customers who are not contacts yet are left o… - [Blocked customers](https://docs.getreply.in/api-reference/contacts/blocked-customers.md): The customers you blocked, as WhatsApp lists them. Not switched on for every account yet: not_available until it is. - [List contacts](https://docs.getreply.in/api-reference/contacts/list-contacts.md): Your contacts, newest first. - [Add or update a contact](https://docs.getreply.in/api-reference/contacts/add-or-update-a-contact.md): One contact per number: made the first time, updated after. - [Delete a contact](https://docs.getreply.in/api-reference/contacts/delete-a-contact.md): Deletes a contact. - [A contact](https://docs.getreply.in/api-reference/contacts/a-contact.md): One contact by number or WhatsApp username id. - [Edit a contact](https://docs.getreply.in/api-reference/contacts/edit-a-contact.md): Changes the name or your own fields. - [Block a customer](https://docs.getreply.in/api-reference/contacts/block-a-customer.md): Blocks a customer on WhatsApp. WhatsApp only allows it for people who wrote to you in the last 24 hours. Not switched on for every account yet: not_available until it is. - [A customer's messages](https://docs.getreply.in/api-reference/contacts/a-customers-messages.md): One chat, both directions, newest first: your messages (campaigns, replies, templates) and theirs. Never a test. - [Resume marketing messages](https://docs.getreply.in/api-reference/contacts/resume-marketing-messages.md): Undoes stop-marketing, when the person asked for offers again. - [Stop marketing messages](https://docs.getreply.in/api-reference/contacts/stop-marketing-messages.md): Marks that this person does not want marketing messages. Marketing templates and campaigns then leave them out. - [Add or remove tags](https://docs.getreply.in/api-reference/contacts/add-or-remove-tags.md): Adds and removes tags on one contact. - [Unblock a customer](https://docs.getreply.in/api-reference/contacts/unblock-a-customer.md): Unblocks a customer on WhatsApp. Not switched on for every account yet: not_available until it is. - [Add or update many contacts](https://docs.getreply.in/api-reference/contacts/add-or-update-many-contacts.md): Up to 1,000 contacts in one call, each exactly like Add or update a contact. One row's error never stops the others: every row has its own result. - [List tags](https://docs.getreply.in/api-reference/contacts/list-tags.md): Your tag names. - [Assign, close or reopen a chat](https://docs.getreply.in/api-reference/inbox/assign-close-or-reopen-a-chat.md): action is assign, close or reopen — the app's Inbox rules. assign needs member_id (an id from GET /v1/team). close marks the chat Done; the customer writing again reopens it, or reopen does. - [A customer's notes](https://docs.getreply.in/api-reference/inbox/a-customers-notes.md): The notes on a customer, newest first. Notes are never sent to the customer. - [Add a note](https://docs.getreply.in/api-reference/inbox/add-a-note.md): Adds a note to the customer's chat (at most 2,000 characters). Never sent to the customer. - [Saved replies](https://docs.getreply.in/api-reference/inbox/saved-replies.md): Your Inbox's saved replies. - [Your team](https://docs.getreply.in/api-reference/inbox/your-team.md): The people on your team: id, name and role. Read only. - [List campaigns](https://docs.getreply.in/api-reference/campaigns/list-campaigns.md): Your campaigns, newest first. - [Create a campaign](https://docs.getreply.in/api-reference/campaigns/create-a-campaign.md): Sends one approved template to many people now, or at a time you choose. The people: a list of numbers, a tag, or a saved audience. Every check runs first; a refused campaign makes nothing. - [A campaign](https://docs.getreply.in/api-reference/campaigns/a-campaign.md): One campaign with its counts and what it spent. - [A campaign's messages](https://docs.getreply.in/api-reference/campaigns/a-campaigns-messages.md): Per person: number, status, why it did not reach them, price. Up to 1,000 a page. Read them all in order with cursor (each answer's next_cursor); page still works. - [Pause a campaign](https://docs.getreply.in/api-reference/campaigns/pause-a-campaign.md): Pauses a sending campaign. - [Resume a campaign](https://docs.getreply.in/api-reference/campaigns/resume-a-campaign.md): Resumes a paused campaign. - [Stop a campaign](https://docs.getreply.in/api-reference/campaigns/stop-a-campaign.md): Stops a campaign for good. Stopping a scheduled one cancels it. - [List webhooks](https://docs.getreply.in/api-reference/webhooks/list-webhooks.md): Your webhooks. The signing secret is never listed. - [Add a webhook](https://docs.getreply.in/api-reference/webhooks/add-a-webhook.md): Adds an https link we post events to (at most 5). The signing secret is in this answer only. - [Delete a webhook](https://docs.getreply.in/api-reference/webhooks/delete-a-webhook.md): Deletes a webhook. Nothing is sent to it again. - [A webhook's deliveries](https://docs.getreply.in/api-reference/webhooks/a-webhooks-deliveries.md): Every try of the last 7 days: the event, the status code and how long it took. Never the body. - [Switch a webhook on](https://docs.getreply.in/api-reference/webhooks/switch-a-webhook-on.md): Posts a webhook.test event to the link first. Only a 2xx answer switches the webhook on; anything else leaves it as it was and answers webhook_test_failed with the status code your link gave (null when it gave none). - [New signing secret](https://docs.getreply.in/api-reference/webhooks/new-signing-secret.md): Makes a new secret, shown once. The old one keeps signing for 24 hours, beside the new one. - [Send a test event](https://docs.getreply.in/api-reference/webhooks/send-a-test-event.md): Queues a webhook.test event for this webhook. ## OpenAPI Specs - [openapi](/openapi.json) This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.