# Instasent A2P Messaging API > Documentation of the A2P Messaging API — self-service messaging for applications and AI agents, sending straight from your code: SMS today, RCS and WhatsApp coming soon; single and bulk sends, delivery reports, inbound, HLR lookup, balance and pricing, over HTTP (REST) or SMPP (wholesale SMS included), with SDKs. The Legacy API is its predecessor and stays online for existing integrations. Each API has a machine-readable dump linked from its section (llms-full.txt). This is not the Platform: audience, campaigns and flows belong to Instasent's other product, a CDP for mass marketing (/platform, /platform-api). ## Overview - [Overview](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/a2p-messaging-api/overview): Send messages straight from your code — built for developers and AI agents. ## Senders & coverage - [Senders & coverage](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/a2p-messaging-api/senders): The `from` field is a sender, and some countries require it to be registered before an operator accepts it. ## AI & MCP - [AI & MCP](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/a2p-messaging-api/use-with-ai): Build with the A2P Messaging API from your AI assistant: this zone's docs as plain markdown, one autocontained dump, the OpenAPI specs and a drop-in prompt. ## HTTP - [Quickstart](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/a2p-messaging-api/http/quickstart): Send your first SMS over the A2P Messaging API in under five minutes. - [Bulk sending](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/a2p-messaging-api/http/bulk): Send many SMS in a single request via POST /sms/bulk — the A2P Messaging API's throughput endpoint for campaigns, notification fan-outs and high-volume dispatch. - [Authentication](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/a2p-messaging-api/http/authentication): The A2P Messaging API authenticates each request with a bearer token. - [Rate limits](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/a2p-messaging-api/http/rate-limits): A2P Messaging HTTP traffic is rate-limited per account and per endpoint. - [Errors](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/a2p-messaging-api/http/errors): The A2P Messaging HTTP API uses standard HTTP status codes. - [DLRs](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/a2p-messaging-api/http/dlrs): Delivery reports (DLRs) are POSTed to a webhook URL configured per API token. - [OpenAPI spec](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/openapi/transactional.openapi.yaml): machine-readable spec for the A2P Messaging API. - [Full docs dump](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/a2p-messaging-api/llms-full.txt): every page of the A2P Messaging API concatenated for LLM context. ## SMPP - [Authentication](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/a2p-messaging-api/smpp/authentication): The A2P Messaging API over SMPP authenticates each session with a system_id and password carried on the bind PDU. - [Integration](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/a2p-messaging-api/smpp/integration): Supported PDUs, submit_sm fields, message concatenation, DLRs over deliver_sm and inbound handling for the A2P Messaging API over SMPP. ## SDKs - [Node.js](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/a2p-messaging-api/sdks/node): Official Node.js client for the Instasent A2P Messaging API. - [PHP](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/a2p-messaging-api/sdks/php): Official PHP client for the Instasent A2P Messaging API. - [Python](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/a2p-messaging-api/sdks/python): Official Python client for the Instasent A2P Messaging API. - [Ruby](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/a2p-messaging-api/sdks/ruby): Official Ruby client for the Instasent A2P Messaging API. - [Java](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/a2p-messaging-api/sdks/java): Official Java client for the Instasent A2P Messaging API. ## Legacy API - [Overview](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/a2p-messaging-api/legacy/overview): The Legacy API is Instasent's first-generation SMS surface. - [Authentication](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/a2p-messaging-api/legacy/authentication): The Legacy API authenticates each request with a bearer token issued in the dashboard. - [OpenAPI spec](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/openapi/legacy.openapi.yaml): machine-readable spec for the Legacy API. - [Full docs dump](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/a2p-messaging-api/legacy/llms-full.txt): every page of the Legacy API concatenated for LLM context. ## Country requirements as data (JSON) What a country requires before a sender can be used there — SMS and RCS, the paperwork, who files it, how long it takes, what happens without it — is published as data, not only as prose. **Fetch one country, not the index.** Replace the code with the destination's ISO 3166-1 alpha-2, lowercase: https://staging-instasent-docs-nextjs.oscar-284.workers.dev/data/country-requirements/es.json Every country in one document (large, ~250 KB): https://staging-instasent-docs-nextjs.oscar-284.workers.dev/data/country-requirements.json JSON Schema describing both: https://staging-instasent-docs-nextjs.oscar-284.workers.dev/data/country-requirements.schema.json No key, no authentication, cross-origin allowed. Every file carries `about`, `authority` and `policy` next to the country records, so it can be read on its own without this index.