> ## Documentation Index
> Fetch the complete documentation index at: https://docs.isnap.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Introduction

> The iSnap API sends and receives iMessage, RCS and SMS from real devices, manages the lines that carry them, and reports events by webhook.

The iSnap API sends and receives iMessage, RCS and SMS from real devices. It is for developers who add messaging to their own product, and for the coding agents and AI agents that work with them. You obtain lines, send and receive messages on them, and learn what happened to each message by webhook.

The API serves lines, messages, chats, attachments, recipient lookups, trials, BYOD pairing, pre-orders, hosted macOS sessions and webhook subscriptions. Two things are done outside the API:

* API keys are created and revoked in the [iSnap dashboard](https://platform.isnap.ai).
* A direct account pays in the iSnap dashboard, by card: it buys lines, BYOD slots and hosted macOS sessions there, and pays the first month of a [pre-order](/guides/pre-orders#confirm-and-payment). See [Accounts](/concepts#accounts).

For what only iSnap can do, such as granting wholesale partner status or lifting the suspension of a line, write to [support@isnap.ai](mailto:support@isnap.ai).

## What you can do

| Task | Page |
| - | - |
| Send a message and track its status | [Sending messages](/guides/sending-messages) |
| Receive messages and read chats | [Receiving messages](/guides/receiving-messages) |
| Send and receive files | [Attachments](/guides/attachments) |
| Send reactions, typing indicators, read receipts and contact cards | [Chat features](/guides/conversations) |
| Check whether a handle can receive iMessage | [Recipient lookup](/guides/lookup) |
| Know what a line can send, and why a message is held | [Sending limits](/guides/sending-limits) |
| Get a line from the marketplace, or create a shared line | [Getting a line](/guides/getting-a-line) |
| Order a rented line and state the area codes you prefer | [Pre-orders](/guides/pre-orders) |
| Run a line on your own Mac and iPhone, or Android phone | [BYOD lines](/guides/byod) |
| Rent a hosted macOS session | [Hosted macOS sessions](/guides/hosted-macos-sessions) |
| Configure, monitor, cancel or transfer a line | [Managing lines](/guides/managing-lines) |
| Let a prospect exchange messages with a line before they buy | [Trials](/guides/trials) |
| Receive events at your endpoint | [Webhooks overview](/webhooks/overview) |
| List the events your subscriptions received in the last 72 hours | [Events feed](/webhooks/pulling-events) |
| Call the API from TypeScript | [SDK overview](/sdk/overview) |
| Find an operation, the credential it takes and its errors | [API reference](/api-reference/introduction#operations) |

## The path to a first call

1. Sign up at [platform.isnap.ai/signup](https://platform.isnap.ai/signup), then create an API key in the [iSnap dashboard](https://platform.isnap.ai). The full key is shown once.
2. Call `GET /v1/version`, which needs no key, to check that you reach `https://api.isnap.ai`.
3. Call `GET /v1/lines/my` with your key to list your lines.
4. Send a message from an active line to a phone number of your own, then read its status.

A new account has no line, and `GET /v1/lines/my` returns an empty `lines`: see [Getting a line](/guides/getting-a-line).

The [Quickstart](/quickstart) runs these four steps, in curl, TypeScript and Python.

Know this before the first send. An `isnap_test_` account key is not a separate test environment: it acts on the same account, lines and billing as an `isnap_live_` key. Every send is a real message to a real recipient. See [Test keys](/authentication#test-keys).

## Next steps

> **[Quickstart](/quickstart)**
>
> Create a key, call the API, send a message and track it.

> **[Core concepts](/concepts)**
>
> Lines, line kinds, statuses, services and identifiers, each defined once.

> **[Authentication](/authentication)**
>
> The three kinds of key, the order of the checks, and every refusal.

> **[Errors and rate limits](/errors-and-rate-limits)**
>
> The error format, what to retry, and the request-rate limit.

> **[AI agents](/ai-agents)**
>
> Rules for an agent that calls the API, and a checklist for one that writes a client.

> **[API reference](/api-reference/introduction)**
>
> Every operation, its credential, and the conventions of the API.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.