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

# Introduction

> General introduction for the Sendrealm API

The Sendrealm API lets you send emails and push notifications, manage contacts, organize your contacts with audiences and topics, store versioned templates, run event-driven automations, and build campaign drafts.

## Base URL

```text theme={null}
https://api.sendrealm.com
```

## Authentication

All API endpoints are authenticated using API keys. Create an API key from the Sendrealm dashboard, then include it in the `Authorization` header for each request.

```bash theme={null}
Authorization: Bearer {apiKey}
```

Project API keys are permanently limited to their owning project. Team API keys can be limited to selected projects, and every key can be limited by permission. For a team key that can access multiple projects, requests use its default project unless you provide an authorized project explicitly:

```bash theme={null}
X-Sendrealm-Project-Id: {projectId}
```

An invalid API key returns `401`. A valid key without access to the selected project or action returns `403`.

## Resources

<CardGroup cols={2}>
  <Card title="Emails" icon="envelope" href="/api-reference/endpoint/create">
    Send transactional or product emails through the API.
  </Card>

  <Card title="Push notifications" icon="bell" href="/api-reference/endpoint/send-push-notification">
    Send notifications to push devices, contacts, external IDs, or audiences.
  </Card>

  <Card title="Push integration testing" icon="flask" href="/api-reference/endpoint/push-tests">
    Inspect apps and devices, send one-device tests, and trace delivery events.
  </Card>

  <Card title="Project" icon="folder" href="/api-reference/endpoint/project">
    Confirm the project and capabilities assigned to an API key.
  </Card>

  <Card title="Domains" icon="globe" href="/api-reference/endpoint/domains">
    Inspect sending domains, DNS records, verification state, and tracking settings.
  </Card>

  <Card title="Campaigns" icon="bullhorn" href="/api-reference/endpoint/campaigns">
    Create and edit email campaign drafts for dashboard review.
  </Card>

  <Card title="Push campaigns" icon="mobile-screen" href="/api-reference/endpoint/push-campaigns">
    Create, preview, and test push campaign drafts without launching them.
  </Card>

  <Card title="Audiences" icon="users" href="/api-reference/endpoint/create-audience">
    Create, list, update, and delete audiences.
  </Card>

  <Card title="Audience properties" icon="list-tree" href="/api-reference/endpoint/create-audience-property">
    Define custom fields for contact and audience data.
  </Card>

  <Card title="Contacts" icon="address-book" href="/api-reference/endpoint/create-contact">
    Create, list, update, and delete contacts.
  </Card>

  <Card title="Audience memberships" icon="user-plus" href="/api-reference/endpoint/attach-contact-to-audience">
    Add contacts to audiences or remove them.
  </Card>

  <Card title="Events" icon="wave-pulse" href="/api-reference/endpoint/events">
    Ingest customer events and react to Sendrealm system events.
  </Card>

  <Card title="Templates" icon="layer-group" href="/api-reference/endpoint/list-templates">
    Create, publish, restore, and reuse email or push templates.
  </Card>

  <Card title="Automations" icon="diagram-project" href="/api-reference/endpoint/automations">
    Create automation drafts, publish them, and inspect their runs.
  </Card>

  <Card title="Topics" icon="toggle-on" href="/api-reference/endpoint/topics">
    Manage reusable topic subscriptions for audience preferences.
  </Card>
</CardGroup>

## Status codes

The Sendrealm API uses HTTP status codes to indicate the result of each request.

| Status Code | Description                                 |
| ----------- | ------------------------------------------- |
| 200         | Successful request.                         |
| 201         | Resource created or notification sent.      |
| 400         | Invalid request parameters.                 |
| 401         | API key was missing or invalid.             |
| 403         | API key lacks project access or permission. |
| 404         | Resource was not found.                     |
| 409         | Resource conflict.                          |
| 422         | Request could not be processed.             |

## Automation platform guarantees

* Event ingest and automation execution use at-least-once delivery semantics.
* Reuse `idempotency_key` on `POST /events` whenever your source system can retry.
* Wait timeouts are scheduler-based and should be treated as approximate, not millisecond exact.
* Event ordering is best effort and should not be treated as a strict serial log.
* Retention windows for events, runs, and waits are controlled at the project policy level.
* Plan limits and metered usage may apply to event ingest, automation runs, waits, template tests, and send actions.
