# Instasent Developer Docs > Developer documentation for the Instasent APIs. Product API manages organizations, projects and audiences. Ingest API streams contacts and events. A2P Messaging API (previously the Transactional API) sends SMS over HTTP and SMPP. Legacy API is kept alive for existing integrations. Each API has a machine-readable dump under /developers/{api}/llms-full.txt. (Dashboard/Platform guides for end users live separately under /platform.) For product or dashboard questions beyond the APIs, start from the whole-site index at /llms.txt. ## Overview - [Overview](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/developers/overview): Learn about building apps and integrations on Instasent using the four public APIs, SMPP and the SDKs. ## Use with AI - [Use with AI](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/developers/further-reading/use-with-ai): These docs are published as machine-readable artifacts alongside the HTML. ## Getting Started - [Introduction](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/developers/getting-started/introduction): Instasent is a customer messaging platform with four public APIs. - [Create an account](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/developers/getting-started/create-an-account): Sign up for Instasent with a magic link, complete the onboarding wizard, and issue your first API token — all from the dashboard, no passwords involved. - [Choose your API](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/developers/getting-started/choose-your-api): Decide exactly which Instasent API fits the job in front of you: Product, Ingest, A2P Messaging (the Transactional API) or Legacy. - [Authentication](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/developers/getting-started/authentication): Every Instasent API authenticates with credentials issued in the dashboard — but each API has its own flavour. ## Product API - [Guide](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/developers/product-api/guide): The Product API is the CDP API — Instasent's Customer Data Platform: the unified audience with its events and segments, plus the organizations, projects, data sources, campaigns, automations and direct messaging around it, all under one token. - [Quickstart](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/developers/product-api/quickstart): Find a contact in the unified audience, read their recent events and send a direct SMS — end to end in under five minutes. - **Authentication** - [API tokens](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/developers/product-api/authentication): Authenticate the Product API with an organization- or project-scoped bearer token — the default method for your own server-side integrations. - [Connected apps (OAuth)](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/developers/product-api/connected-apps-and-oauth): For software other Instasent customers will install: let each of them authorize your application against their own project with OAuth 2.1, and never handle their credentials. - **Audience** - [Overview](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/developers/product-api/audience/overview): The audience is the project's single, merged view of the people it knows: contacts assembled from every data source, the attributes and events they carry, the filters that select them, the segments that keep those filters, and the endpoints that count and retrieve them. - [Contacts and attributes](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/developers/product-api/audience/contacts-and-attributes): How records arriving from several data sources become one audience contact, what the merging attributes decide, and how to read the project's live attribute catalogue: system versus custom attributes, data types, uniqueness and event-derived fields. - [Events](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/developers/product-api/audience/events): What an audience event is, how the project's event catalogue and its parameter schemas are discovered live, how events attach to a contact, and how to tell an event type that is declared apart from one that actually arrives. - [Query filter](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/developers/product-api/audience/query-filter): Search and segment the unified audience with a structured JSON filter. - [Event query filter](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/developers/product-api/audience/event-query-filter): Search and aggregate audience events with a structured JSON filter. - [Probes](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/developers/product-api/audience/probes): Two POST endpoints that measure what a project's audience actually contains before you filter it: attribute coverage (fill rate, distinct values, most frequent values, numeric and date ranges) and event volumes (which event types arrive, when the last one arrived, and the real values their parameters carry). - [Counting and retrieval](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/developers/product-api/audience/counting-and-retrieval): Which endpoint answers which question about the audience: the exact count of a filter, a quick search, a cursor traverse of a large result set, a single contact by id or identifier, and what the subscription plan lets each of them return. - [Segments](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/developers/product-api/audience/segments): A segment is a saved audience filter the project keeps by name: how to create one, read it back, understand its cached size, scroll its contacts, reference it from another filter, and audit where it is actually used. - **Campaigns** - [Overview](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/developers/product-api/campaigns/overview): How the Product API models a campaign: the five endpoints it exposes, the draft-only contract behind all of them, and the statuses a campaign moves through. - [Creating a draft](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/developers/product-api/campaigns/creating-a-draft): The POST contract for campaign drafts: what the smallest useful request looks like, the full request body field by field, the warnings the response carries, the limits and the error codes an integration has to handle. - [Audience targeting](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/developers/product-api/campaigns/audience): Point a campaign draft at the right contacts: segment UIDs, inline audience filters, exclusions and the consent policy. - [Message content](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/developers/product-api/campaigns/message): Write the copy a campaign draft carries: template variables and short links, the sender that speaks for it, SMS Unicode, RCS buttons, the SMS fallback for contacts RCS cannot reach, and how to declare languages to translate later. - [Dates and scheduling](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/developers/product-api/campaigns/scheduling): The date on a campaign draft is a calendar anchor, not a send time — nothing is scheduled from the API. - [Reading campaigns](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/developers/product-api/campaigns/reading-campaigns): The three read endpoints: one campaign by id, the project's filtered campaign list, and a digest of the whole project's campaign activity. - [Estimating and deleting](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/developers/product-api/campaigns/estimating-and-deleting): The two operations that act on a campaign which already exists: pricing a draft and removing one. - **Analytics** - [Overview](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/developers/product-api/analytics/overview): Curated, read-only performance reports for your account, campaigns, automations, flows and transactional traffic. - [Statistics catalog](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/developers/product-api/analytics/statistics): Every statistic you can request from the Analytics endpoints — delivery, engagement, conversion, cost and suppression — what each one means, which report families expose it, and which figures are approximate. - [Building queries](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/developers/product-api/analytics/building-queries): Shape an Analytics request: choose a timeframe (predefined or custom), set the timezone and output currency, break results down with group_by, narrow them with bounded filters, and attach a previous-period comparison. - [Conversions & revenue](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/developers/product-api/analytics/conversions): How the Analytics revenue statistics are computed: conversion scopes, how revenue tracking is configured, when a scope comes back null versus zero, and currency. - [Reading results](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/developers/product-api/analytics/reading-results): The Analytics response shapes: values reports, time series, grouped series and compare reports, plus the freshness block, the comparison block, warnings and the error model. - [Flow reports](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/developers/product-api/analytics/flows): Discover flows and their versions, then report on them: a flow's time series covers every version at once, or a single version when you scope it, which is how an A/B test is measured before it is promoted. - **API conventions** - [Rate limits](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/developers/product-api/rate-limits): The Product API is rate-limited per organization and per endpoint class. - [Errors](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/developers/product-api/errors): The Product API uses standard HTTP status codes. - [OpenAPI spec](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/openapi/product.openapi.yaml): machine-readable spec for Product API. - [Full docs dump](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/developers/product-api/llms-full.txt): every page under /developers/product-api concatenated for LLM context. ## Ingest API - [Guide](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/developers/ingest-api/guide): The Ingest API imports contacts and events into an Instasent project so every downstream surface — audiences, campaigns, analytics — sees the same source of truth. - [Quickstart](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/developers/ingest-api/quickstart): Load a contact and record an event in under five minutes. - [Authentication](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/developers/ingest-api/authentication): The Ingest API authenticates each request with a bearer token scoped to a datasource. - [Rate limits](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/developers/ingest-api/rate-limits): Ingest traffic is rate-limited per datasource and per endpoint. - [Errors](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/developers/ingest-api/errors): The Ingest API uses standard HTTP status codes plus a partial-success body for batched writes. - [OpenAPI spec](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/openapi/ingest.openapi.yaml): machine-readable spec for Ingest API. - [Full docs dump](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/developers/ingest-api/llms-full.txt): every page under /developers/ingest-api concatenated for LLM context. ## A2P Messaging API - [Overview](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/developers/transactional-api/overview): The A2P Messaging API — also known as the Transactional API, and formerly the SMS API — is Instasent's SMS wholesale surface: single send, bulk send, delivery reports, inbound, HLR lookup, balance and pricing, over HTTP (REST) or SMPP. - **HTTP** - [Quickstart](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/developers/transactional-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/developers/transactional-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 wholesale dispatch. - [Authentication](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/developers/transactional-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/developers/transactional-api/http/rate-limits): A2P Messaging HTTP traffic is rate-limited per organization and per endpoint. - [Errors](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/developers/transactional-api/http/errors): The A2P Messaging HTTP API uses standard HTTP status codes. - [DLRs](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/developers/transactional-api/http/dlrs): Delivery reports (DLRs) are POSTed to a webhook URL configured per API token. - **SMPP** - [Authentication](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/developers/transactional-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/developers/transactional-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/developers/transactional-api/sdks/node): Official Node.js client for the Instasent A2P Messaging API. - [PHP](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/developers/transactional-api/sdks/php): Official PHP client for the Instasent A2P Messaging API. - [Python](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/developers/transactional-api/sdks/python): Official Python client for the Instasent A2P Messaging API. - [Ruby](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/developers/transactional-api/sdks/ruby): Official Ruby client for the Instasent A2P Messaging API. - [Java](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/developers/transactional-api/sdks/java): Official Java client for the Instasent A2P Messaging API. - [OpenAPI spec](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/openapi/transactional.openapi.yaml): machine-readable spec for A2P Messaging API. - [Full docs dump](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/developers/transactional-api/llms-full.txt): every page under /developers/transactional-api concatenated for LLM context. ## Legacy API - [Overview](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/developers/legacy-api/overview): The Legacy API is Instasent's first-generation SMS surface. - [Authentication](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/developers/legacy-api/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 Legacy API. - [Full docs dump](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/developers/legacy-api/llms-full.txt): every page under /developers/legacy-api concatenated for LLM context. ## Further reading - [Query Filter](https://staging-instasent-docs-nextjs.oscar-284.workers.dev/developers/further-reading/query-filter): Shared syntax for filtering, sorting, paginating and grouping results on the Product API's list endpoints.