# Kirora > Kirora is a messaging API for email and push: contacts and events, marketing > campaigns, automated journeys, and transactional messages, on one contact list. Every > `/v1` request authenticates with an API key as a bearer token. Lists are > cursor-paginated, errors carry a stable `code`, and sends take an `Idempotency-Key`. Each page below is plain Markdown. Base URL: https://kirora.io/docs/api ## Start - [Quickstart](https://kirora.io/docs/api/quickstart.md): a key, a contact, an event and a first email, in five requests - [Agents](https://kirora.io/docs/api/agents.md): connecting Claude, Cursor or any MCP client, and what an agent key cannot do - [Transactional messages](https://kirora.io/docs/api/transactional.md): receipts, resets and alerts by email and push; templates, fallback, batches, secrets - [Push notifications](https://kirora.io/docs/api/push.md): set up iOS, Android and web push apps, register devices from your server, report taps; iPhone Home Screen web apps ## Working with the API - [Authentication](https://kirora.io/docs/api/authentication.md): keys, scopes, and the agent key's send gate - [Pagination](https://kirora.io/docs/api/pagination.md): cursor-only lists and `meta.pagination.nextCursor` - [Errors](https://kirora.io/docs/api/errors.md): the error envelope, every public code, and which to retry - [Rate limits](https://kirora.io/docs/api/rate-limits.md): per-key and per-org limits, `RateLimit-*` and `Retry-After` - [Idempotency](https://kirora.io/docs/api/idempotency.md): which requests are safe to retry, and how keys bind to a request - [Webhooks](https://kirora.io/docs/api/webhooks.md): event catalogue, signature verification, delivery and retries - [Versioning](https://kirora.io/docs/api/versioning.md): what `/v1` guarantees and how changes are signalled ## Data and integrations - [E-commerce events](https://kirora.io/docs/api/ecommerce-events.md): standard commerce event names and properties - [Staging](https://kirora.io/docs/api/staging.md): testing from a second workspace instead of a test mode ## Guides: Getting started - [Create your workspace](https://kirora.io/docs/guides/getting-started/create-your-workspace.md): Create your first workspace, set its business details and time zone, and prepare for sending. - [Invite your team](https://kirora.io/docs/guides/getting-started/invite-your-team.md): Invite teammates with their own logins and assign the right workspace roles. - [Set up a sending domain](https://kirora.io/docs/guides/getting-started/set-up-a-sending-domain.md): Verify your sending domain with DNS records so Kirora can send email under your brand. - [Set up push](https://kirora.io/docs/guides/getting-started/set-up-push.md): Configure web, iOS and Android push apps and connect device registration with your developer. - [Send your first campaign](https://kirora.io/docs/guides/getting-started/your-first-campaign.md): Set up a domain, add subscribers, design a message and review your first email campaign. ## Guides: Contacts - [Import contacts](https://kirora.io/docs/guides/contacts/import-contacts.md): Prepare a CSV, map customer fields, record consent and check import results. - [Contact attributes](https://kirora.io/docs/guides/contacts/attributes.md): Store custom customer details and use them in segments, personalisation and journey triggers. - [Groups](https://kirora.io/docs/guides/contacts/groups.md): Create and manage contact lists for newsletters, clients or members, and use them in campaigns. - [Segments](https://kirora.io/docs/guides/contacts/segments.md): Combine customer details, events and engagement into audiences that update automatically. - [Consent and unsubscribes](https://kirora.io/docs/guides/contacts/consent-and-unsubscribes.md): See how channel consent, topic choices, unsubscribes and suppression affect marketing eligibility. ## Guides: Campaigns - [Create a campaign](https://kirora.io/docs/guides/campaigns/create-a-campaign.md): Choose an audience, add email or push content and prepare a campaign for review. - [Test and preview a campaign](https://kirora.io/docs/guides/campaigns/test-and-preview.md): Check personalisation and layout, then send test email or push messages before launch. - [Schedule and send a campaign](https://kirora.io/docs/guides/campaigns/schedule-and-send.md): Review audience readiness, send now or schedule by time zone, and manage sending delays. - [Campaign results](https://kirora.io/docs/guides/campaigns/campaign-results.md): Review delivery and engagement, inspect recipient outcomes and compare campaign conversions. ## Guides: Journeys - [Journeys](https://kirora.io/docs/guides/journeys/how-journeys-work.md): Learn how triggers, steps, entry rules and exit events control automated customer journeys. - [Build a journey](https://kirora.io/docs/guides/journeys/build-a-journey.md): Choose a trigger, add messages and decisions, test paths and activate your journey. - [Journey results](https://kirora.io/docs/guides/journeys/journey-results.md): Review journey enrolments, step performance, conversions and individual contact paths. ## Guides: Email designer - [Design an email](https://kirora.io/docs/guides/email-designer/design-an-email.md): Arrange blocks, apply your brand theme and preview an email before sending a test. - [Merge tags and personalisation](https://kirora.io/docs/guides/email-designer/merge-tags-and-personalisation.md): Personalise emails with contact details and set fallbacks for missing values. - [Templates](https://kirora.io/docs/guides/email-designer/templates.md): Save reusable designs, manage versions and publish templates for transactional sends. ## Guides: Forms - [Create a signup form](https://kirora.io/docs/guides/forms/create-a-signup-form.md): Create a form that records consent and share it as a hosted page, embed or popup. - [Form submissions](https://kirora.io/docs/guides/forms/form-submissions.md): Review signup counts, submission outcomes and the contacts created by each form. ## Guides: Reports - [Reports](https://kirora.io/docs/guides/reports/understand-your-reports.md): Understand email and push metrics, conversion attribution and sending health indicators. - [Deliverability basics](https://kirora.io/docs/guides/reports/deliverability-basics.md): Monitor bounce and complaint rates, maintain a healthy audience and resolve marketing pauses. ## Guides: Integrations - [Connect an integration](https://kirora.io/docs/guides/integrations/connect-an-integration.md): Connect payment events and explore API, webhook and other data connections. ## Guides: Kiro AI - [Kiro AI](https://kirora.io/docs/guides/kiro-ai/what-kiro-ai-can-do.md): Draft campaigns and journeys, edit messages and ask about workspace results with Kiro AI. - [Use Kiro AI with Claude or Cursor](https://kirora.io/docs/guides/kiro-ai/use-kiro-ai-with-claude-or-cursor.md): Connect an MCP-compatible assistant with an agent key, then review its drafts in Kirora. ## Guides: Account - [Plans and billing](https://kirora.io/docs/guides/account/plans-and-billing.md): Understand email-based pricing, contact allowances, extra usage and billing across your workspaces. - [Workspaces](https://kirora.io/docs/guides/account/workspaces.md): Separate brands, clients and test environments into workspaces, then manage access and billing. - [Security and access](https://kirora.io/docs/guides/account/security-and-access.md): Manage teammate roles, two-factor authentication, sensitive attributes and audit logs. ## SDKs - [SDKs](https://kirora.io/docs/sdks/index.md): Choose a server library or browser SDK, check release status and find the HTTP API alternative. - [Node.js](https://kirora.io/docs/sdks/node.md): Integrate with the Kirora API using the preview Node.js library: typed requests, pagination, retries and webhook verification. - [React builders](https://kirora.io/docs/sdks/react.md): Embed email and segment builders in your React product using the preview package for partner accounts. - [CLI](https://kirora.io/docs/sdks/cli.md): Use the preview Kirora CLI to manage API resources from your terminal, with saved logins, pagination and safe retries. - [Web SDK](https://kirora.io/docs/sdks/web.md): Track signed-in customer activity and register web push with the preview Kirora browser SDK. - [Python](https://kirora.io/docs/sdks/python.md): Use the Kirora HTTP API from Python while the official client is planned. - [Go](https://kirora.io/docs/sdks/go.md): Use the Kirora HTTP API from Go while the official client is planned. - [.NET](https://kirora.io/docs/sdks/dotnet.md): Use the Kirora HTTP API from .NET while the official client is planned. - [PHP](https://kirora.io/docs/sdks/php.md): Use the Kirora HTTP API from PHP while the official client is planned. - [Java](https://kirora.io/docs/sdks/java.md): Use the Kirora HTTP API from Java while the official client is planned. - [CLI commands](https://kirora.io/docs/sdks/cli/commands.md): All 158 kirora commands, by resource. ## API reference: Events - [Track an event](https://kirora.io/docs/api/reference/trackEvent.md): POST /v1/events/track - [Track events in a batch](https://kirora.io/docs/api/reference/trackEventsBatch.md): POST /v1/events/batch - [Retrieve an event name](https://kirora.io/docs/api/reference/getEventName.md): GET /v1/events/names/{name} - [Delete an event name](https://kirora.io/docs/api/reference/deleteEventName.md): DELETE /v1/events/names/{name} - [Cancel what an event set off](https://kirora.io/docs/api/reference/cancelEvent.md): POST /v1/events/{id}/cancel - [List a contact's events](https://kirora.io/docs/api/reference/listContactEvents.md): GET /v1/contacts/{id}/events - [List event names](https://kirora.io/docs/api/reference/listEventNames.md): GET /v1/events/names ## API reference: Contacts - [Retrieve a contact](https://kirora.io/docs/api/reference/getContact.md): GET /v1/contacts/{id} - [Update a contact](https://kirora.io/docs/api/reference/updateContact.md): PATCH /v1/contacts/{id} - [Create or update a contact](https://kirora.io/docs/api/reference/identifyContact.md): POST /v1/contacts/identify - [Create or update contacts in a batch](https://kirora.io/docs/api/reference/identifyContactsBatch.md): POST /v1/contacts/batch - [Erase contacts](https://kirora.io/docs/api/reference/eraseContacts.md): POST /v1/contacts/erase - [List contacts](https://kirora.io/docs/api/reference/listContacts.md): GET /v1/contacts - [Export a contact's data](https://kirora.io/docs/api/reference/exportContactData.md): GET /v1/contacts/{id}/data-export - [List a contact's journey runs](https://kirora.io/docs/api/reference/listContactJourneys.md): GET /v1/contacts/{id}/journeys - [List saved segments currently matching this contact](https://kirora.io/docs/api/reference/listContactSegments.md): GET /v1/contacts/{id}/segments - [List a contact's consent history](https://kirora.io/docs/api/reference/listContactConsentHistory.md): GET /v1/contacts/{id}/consent-history - [List a contact's messages](https://kirora.io/docs/api/reference/listContactMessages.md): GET /v1/contacts/{id}/messages ## API reference: Push installations - [List a contact's push installations](https://kirora.io/docs/api/reference/listPushInstallations.md): GET /v1/contacts/{id}/installations - [Register a push installation](https://kirora.io/docs/api/reference/registerPushInstallation.md): POST /v1/contacts/{id}/installations - [Disable a push installation](https://kirora.io/docs/api/reference/disablePushInstallation.md): DELETE /v1/contacts/{id}/installations/{installationId} ## API reference: Attributes - [List contact attribute keys](https://kirora.io/docs/api/reference/listAttributes.md): GET /v1/attributes - [List the values of an attribute](https://kirora.io/docs/api/reference/listAttributeValues.md): GET /v1/attributes/{key}/values - [List remembered merge tag fallbacks](https://kirora.io/docs/api/reference/listMergeTagFallbacks.md): GET /v1/attributes/fallbacks ## API reference: Groups - [List a contact's groups](https://kirora.io/docs/api/reference/listContactGroups.md): GET /v1/contacts/{id}/groups - [List groups](https://kirora.io/docs/api/reference/listGroups.md): GET /v1/groups - [Create a group](https://kirora.io/docs/api/reference/createGroup.md): POST /v1/groups - [Retrieve a group](https://kirora.io/docs/api/reference/getGroup.md): GET /v1/groups/{id} - [Update a group](https://kirora.io/docs/api/reference/updateGroup.md): PATCH /v1/groups/{id} - [Delete a group](https://kirora.io/docs/api/reference/deleteGroup.md): DELETE /v1/groups/{id} - [Add contacts to a group](https://kirora.io/docs/api/reference/addGroupMembers.md): POST /v1/groups/{id}/contacts - [Remove contacts from a group](https://kirora.io/docs/api/reference/removeGroupMembers.md): POST /v1/groups/{id}/contacts/remove - [List what uses a group](https://kirora.io/docs/api/reference/getGroupUsage.md): GET /v1/groups/{id}/usage ## API reference: Segments - [List segments](https://kirora.io/docs/api/reference/listSegments.md): GET /v1/segments - [Create a segment](https://kirora.io/docs/api/reference/createSegment.md): POST /v1/segments - [Retrieve a segment](https://kirora.io/docs/api/reference/getSegment.md): GET /v1/segments/{id} - [Update a segment](https://kirora.io/docs/api/reference/updateSegment.md): PATCH /v1/segments/{id} - [Delete a segment](https://kirora.io/docs/api/reference/deleteSegment.md): DELETE /v1/segments/{id} - [List what uses a segment](https://kirora.io/docs/api/reference/getSegmentUsage.md): GET /v1/segments/{id}/usage - [Preview segment rules](https://kirora.io/docs/api/reference/previewSegment.md): POST /v1/segments/preview - [Count contacts in a segment](https://kirora.io/docs/api/reference/getSegmentCount.md): GET /v1/segments/{id}/count - [List contacts in a segment](https://kirora.io/docs/api/reference/listSegmentContacts.md): GET /v1/segments/{id}/contacts ## API reference: Templates - [List templates](https://kirora.io/docs/api/reference/listTemplates.md): GET /v1/templates - [Create a template](https://kirora.io/docs/api/reference/createTemplate.md): POST /v1/templates - [Retrieve a template](https://kirora.io/docs/api/reference/getTemplate.md): GET /v1/templates/{id} - [Update a template](https://kirora.io/docs/api/reference/updateTemplate.md): PATCH /v1/templates/{id} - [Delete a template](https://kirora.io/docs/api/reference/deleteTemplate.md): DELETE /v1/templates/{id} - [Duplicate a template](https://kirora.io/docs/api/reference/duplicateTemplate.md): POST /v1/templates/{id}/duplicate - [Publish a template](https://kirora.io/docs/api/reference/publishTemplate.md): POST /v1/templates/{id}/publish - [Roll back to a template version](https://kirora.io/docs/api/reference/restoreTemplateVersion.md): POST /v1/templates/{id}/versions/{version}/restore - [Render blocks to email HTML](https://kirora.io/docs/api/reference/renderTemplate.md): POST /v1/templates/render - [List sample emails and theme presets](https://kirora.io/docs/api/reference/getTemplateGallery.md): GET /v1/templates/gallery - [List a template's versions](https://kirora.io/docs/api/reference/listTemplateVersions.md): GET /v1/templates/{id}/versions - [Retrieve a template version](https://kirora.io/docs/api/reference/getTemplateVersion.md): GET /v1/templates/{id}/versions/{version} - [Retrieve the workspace brand theme](https://kirora.io/docs/api/reference/getBrandTheme.md): GET /v1/brand-theme ## API reference: Shared blocks - [List shared blocks](https://kirora.io/docs/api/reference/listSharedBlocks.md): GET /v1/shared-blocks - [Create a shared block](https://kirora.io/docs/api/reference/createSharedBlock.md): POST /v1/shared-blocks - [Retrieve a shared block](https://kirora.io/docs/api/reference/getSharedBlock.md): GET /v1/shared-blocks/{id} - [Update a shared block](https://kirora.io/docs/api/reference/updateSharedBlock.md): PATCH /v1/shared-blocks/{id} - [Delete a shared block](https://kirora.io/docs/api/reference/deleteSharedBlock.md): DELETE /v1/shared-blocks/{id} - [List where a shared block is placed](https://kirora.io/docs/api/reference/getSharedBlockUsage.md): GET /v1/shared-blocks/{id}/usage ## API reference: Assets - [List uploaded images](https://kirora.io/docs/api/reference/listAssets.md): GET /v1/assets - [Upload an image](https://kirora.io/docs/api/reference/uploadAsset.md): POST /v1/assets ## API reference: Forms - [List forms](https://kirora.io/docs/api/reference/listForms.md): GET /v1/forms - [Create a form](https://kirora.io/docs/api/reference/createForm.md): POST /v1/forms - [Retrieve a form](https://kirora.io/docs/api/reference/getForm.md): GET /v1/forms/{id} - [Update a form](https://kirora.io/docs/api/reference/updateForm.md): PATCH /v1/forms/{id} - [Delete a form](https://kirora.io/docs/api/reference/deleteForm.md): DELETE /v1/forms/{id} - [Archive a form](https://kirora.io/docs/api/reference/archiveForm.md): POST /v1/forms/{id}/archive - [Unarchive a form](https://kirora.io/docs/api/reference/unarchiveForm.md): POST /v1/forms/{id}/unarchive - [Retrieve form statistics](https://kirora.io/docs/api/reference/getFormStats.md): GET /v1/forms/{id}/stats - [List a form's submissions](https://kirora.io/docs/api/reference/listFormSubmissions.md): GET /v1/forms/{id}/submissions ## API reference: Campaigns - [List campaigns](https://kirora.io/docs/api/reference/listCampaigns.md): GET /v1/campaigns - [Create a campaign](https://kirora.io/docs/api/reference/createCampaign.md): POST /v1/campaigns - [Retrieve a campaign](https://kirora.io/docs/api/reference/getCampaign.md): GET /v1/campaigns/{id} - [Update a campaign](https://kirora.io/docs/api/reference/updateCampaign.md): PATCH /v1/campaigns/{id} - [Delete a draft campaign](https://kirora.io/docs/api/reference/deleteCampaign.md): DELETE /v1/campaigns/{id} - [Duplicate a campaign](https://kirora.io/docs/api/reference/duplicateCampaign.md): POST /v1/campaigns/{id}/duplicate - [Archive a campaign](https://kirora.io/docs/api/reference/archiveCampaign.md): POST /v1/campaigns/{id}/archive - [Unarchive a campaign](https://kirora.io/docs/api/reference/unarchiveCampaign.md): POST /v1/campaigns/{id}/unarchive - [Unschedule a campaign](https://kirora.io/docs/api/reference/unscheduleCampaign.md): POST /v1/campaigns/{id}/unschedule - [Cancel a campaign that is still sending](https://kirora.io/docs/api/reference/cancelCampaign.md): POST /v1/campaigns/{id}/cancel - [List a campaign's most clicked links](https://kirora.io/docs/api/reference/listCampaignLinks.md): GET /v1/campaigns/{id}/links - [Check whether a campaign can send](https://kirora.io/docs/api/reference/getCampaignEligibility.md): GET /v1/campaigns/{id}/eligibility - [Check who a campaign would reach before saving it](https://kirora.io/docs/api/reference/checkUnsavedCampaignEligibility.md): POST /v1/campaigns/eligibility - [Preview campaign content](https://kirora.io/docs/api/reference/previewCampaign.md): POST /v1/campaigns/{id}/preview - [Retrieve campaign statistics](https://kirora.io/docs/api/reference/getCampaignStats.md): GET /v1/campaigns/{id}/stats - [Chart campaign performance over time](https://kirora.io/docs/api/reference/getCampaignSeries.md): GET /v1/campaigns/{id}/series - [List campaign messages](https://kirora.io/docs/api/reference/listCampaignMessages.md): GET /v1/campaigns/{id}/messages - [Send a campaign](https://kirora.io/docs/api/reference/sendCampaign.md): POST /v1/campaigns/{id}/send - [Send a campaign to the people you list](https://kirora.io/docs/api/reference/triggerCampaign.md): POST /v1/campaigns/{id}/trigger - [Schedule a campaign](https://kirora.io/docs/api/reference/scheduleCampaign.md): POST /v1/campaigns/{id}/schedule ## API reference: Journeys - [List journeys](https://kirora.io/docs/api/reference/listJourneys.md): GET /v1/journeys - [Create a journey](https://kirora.io/docs/api/reference/createJourney.md): POST /v1/journeys - [Retrieve a journey](https://kirora.io/docs/api/reference/getJourney.md): GET /v1/journeys/{id} - [Update a journey](https://kirora.io/docs/api/reference/updateJourney.md): PATCH /v1/journeys/{id} - [Delete a journey](https://kirora.io/docs/api/reference/deleteJourney.md): DELETE /v1/journeys/{id} - [Duplicate a journey](https://kirora.io/docs/api/reference/duplicateJourney.md): POST /v1/journeys/{id}/duplicate - [Pause a journey](https://kirora.io/docs/api/reference/pauseJourney.md): POST /v1/journeys/{id}/pause - [End a journey](https://kirora.io/docs/api/reference/endJourney.md): POST /v1/journeys/{id}/end - [Activate a journey](https://kirora.io/docs/api/reference/activateJourney.md): POST /v1/journeys/{id}/activate - [Preview a contact's journey step path without sending](https://kirora.io/docs/api/reference/simulateJourney.md): POST /v1/journeys/{id}/simulate - [Retrieve per-step journey statistics](https://kirora.io/docs/api/reference/getJourneyStepStats.md): GET /v1/journeys/{id}/step-stats - [List journey definition versions](https://kirora.io/docs/api/reference/listJourneyDefinitions.md): GET /v1/journeys/{id}/definitions - [Retrieve journey statistics](https://kirora.io/docs/api/reference/getJourneyStats.md): GET /v1/journeys/{id}/stats ## API reference: Compat - [Create or update a person (Customer.io)](https://kirora.io/docs/api/reference/customerIoIdentify.md): PUT /v1/compat/customerio/api/v1/customers/{identifier} - [Track an event for a person (Customer.io)](https://kirora.io/docs/api/reference/customerIoTrack.md): POST /v1/compat/customerio/api/v1/customers/{identifier}/events - [Record attributes, events and purchases (Braze)](https://kirora.io/docs/api/reference/brazeTrackUsers.md): POST /v1/compat/braze/users/track ## API reference: Transactional - [List transactional messages](https://kirora.io/docs/api/reference/listTransactionalMessages.md): GET /v1/transactional/messages - [Send a transactional message](https://kirora.io/docs/api/reference/sendTransactional.md): POST /v1/transactional/messages - [Send up to 100 transactional messages](https://kirora.io/docs/api/reference/sendTransactionalBatch.md): POST /v1/transactional/messages/batch - [Cancel a timed send](https://kirora.io/docs/api/reference/cancelScheduledTransactional.md): POST /v1/transactional/messages/{id}/cancel - [Retrieve a transactional message](https://kirora.io/docs/api/reference/getTransactionalMessage.md): GET /v1/transactional/messages/{id} - [Retrieve what a transactional message sent](https://kirora.io/docs/api/reference/getTransactionalMessageContent.md): GET /v1/transactional/messages/{id}/content ## API reference: Push - [Send a push message](https://kirora.io/docs/api/reference/sendPushMessage.md): POST /v1/push/messages - [List a push message's deliveries](https://kirora.io/docs/api/reference/listPushMessageDeliveries.md): GET /v1/push/messages/{id}/deliveries ## API reference: Push projects - [List push projects](https://kirora.io/docs/api/reference/listPushProjects.md): GET /v1/push-projects ## API reference: Sending domains - [List sending domains](https://kirora.io/docs/api/reference/listSendingDomains.md): GET /v1/sending-domains - [Add a sending domain](https://kirora.io/docs/api/reference/createSendingDomain.md): POST /v1/sending-domains - [Check domain verification](https://kirora.io/docs/api/reference/checkSendingDomain.md): POST /v1/sending-domains/{id}/check - [Retrieve a sending domain](https://kirora.io/docs/api/reference/getSendingDomain.md): GET /v1/sending-domains/{id} - [Remove a sending domain](https://kirora.io/docs/api/reference/deleteSendingDomain.md): DELETE /v1/sending-domains/{id} - [List what sends from a domain](https://kirora.io/docs/api/reference/getSendingDomainUsage.md): GET /v1/sending-domains/{id}/usage ## API reference: Partners - [List your tenant workspaces](https://kirora.io/docs/api/reference/listWorkspaces.md): GET /v1/workspaces - [Create a workspace for one of your tenants](https://kirora.io/docs/api/reference/createWorkspace.md): POST /v1/workspaces - [Retrieve a tenant workspace](https://kirora.io/docs/api/reference/getWorkspace.md): GET /v1/workspaces/{externalId} - [Update a tenant workspace](https://kirora.io/docs/api/reference/updateWorkspace.md): PATCH /v1/workspaces/{externalId} - [Delete a tenant's workspace](https://kirora.io/docs/api/reference/deleteWorkspace.md): DELETE /v1/workspaces/{externalId} - [Suspend a tenant's sending](https://kirora.io/docs/api/reference/suspendWorkspace.md): POST /v1/workspaces/{externalId}/suspend - [Resume a tenant's sending](https://kirora.io/docs/api/reference/resumeWorkspace.md): POST /v1/workspaces/{externalId}/resume - [Cancel a tenant workspace's deletion](https://kirora.io/docs/api/reference/cancelWorkspaceDeletion.md): POST /v1/workspaces/{externalId}/cancel-deletion - [Mint a builder session for a browser](https://kirora.io/docs/api/reference/createEmbedSession.md): POST /v1/embed-sessions ## API reference: Webhooks - [List webhooks](https://kirora.io/docs/api/reference/listWebhooks.md): GET /v1/webhooks - [Subscribe a URL to events](https://kirora.io/docs/api/reference/createWebhook.md): POST /v1/webhooks - [Update a webhook](https://kirora.io/docs/api/reference/updateWebhook.md): PATCH /v1/webhooks/{id} - [Unsubscribe a webhook](https://kirora.io/docs/api/reference/deleteWebhook.md): DELETE /v1/webhooks/{id} - [Send a test event](https://kirora.io/docs/api/reference/testWebhook.md): POST /v1/webhooks/{id}/test - [Rotate a webhook signing secret](https://kirora.io/docs/api/reference/rotateWebhookSecret.md): POST /v1/webhooks/{id}/rotate-secret - [List webhook deliveries](https://kirora.io/docs/api/reference/listWebhookDeliveries.md): GET /v1/webhooks/deliveries - [Send a failed delivery again](https://kirora.io/docs/api/reference/redeliverWebhookDelivery.md): POST /v1/webhooks/deliveries/{deliveryId}/redeliver - [List webhook events](https://kirora.io/docs/api/reference/listWebhookEvents.md): GET /v1/webhooks/events ## API reference: Messages - [List sent messages across every source](https://kirora.io/docs/api/reference/listSentMessages.md): GET /v1/messages/deliveries - [Retrieve a sent message](https://kirora.io/docs/api/reference/getSentMessage.md): GET /v1/messages/deliveries/{id} - [Export sent messages as CSV](https://kirora.io/docs/api/reference/createMessageExport.md): POST /v1/messages/exports - [Retrieve a message export](https://kirora.io/docs/api/reference/getMessageExport.md): GET /v1/messages/exports/{id} - [Download a message export](https://kirora.io/docs/api/reference/downloadMessageExport.md): GET /v1/messages/exports/{id}/download ## API reference: Suppressions - [List suppressed email addresses](https://kirora.io/docs/api/reference/listSuppressions.md): GET /v1/suppressions - [Import suppressed email addresses](https://kirora.io/docs/api/reference/importSuppressions.md): POST /v1/suppressions/import - [Unblock a suppressed email address](https://kirora.io/docs/api/reference/removeSuppression.md): DELETE /v1/suppressions/{id} ## API reference: Topics - [List topics](https://kirora.io/docs/api/reference/listTopics.md): GET /v1/topics - [Create a topic](https://kirora.io/docs/api/reference/createTopic.md): POST /v1/topics - [Update a topic](https://kirora.io/docs/api/reference/updateTopic.md): PATCH /v1/topics/{id} - [Delete a topic](https://kirora.io/docs/api/reference/deleteTopic.md): DELETE /v1/topics/{id} - [List a contact's topics](https://kirora.io/docs/api/reference/listContactTopics.md): GET /v1/contacts/{id}/topics - [Set a contact's topic choice](https://kirora.io/docs/api/reference/setContactTopic.md): PUT /v1/contacts/{id}/topics/{topicId} ## API reference: Me - [Check an API key](https://kirora.io/docs/api/reference/getMe.md): GET /v1/me - [Retrieve the setup checklist](https://kirora.io/docs/api/reference/getOnboarding.md): GET /v1/onboarding ## API reference: Reports - [Retrieve the performance overview](https://kirora.io/docs/api/reference/getOverview.md): GET /v1/reports/overview - [Retrieve transactional email delivery](https://kirora.io/docs/api/reference/getTransactionalReport.md): GET /v1/reports/transactional - [Compare campaigns](https://kirora.io/docs/api/reference/listCampaignPerformance.md): GET /v1/reports/campaigns - [Report a conversion funnel over events](https://kirora.io/docs/api/reference/getFunnelReport.md): POST /v1/reports/funnel ## Optional - [SDK conformance](https://kirora.io/docs/api/sdk-conformance.md): the checklist a server library must satisfy - [Guides index](https://kirora.io/docs/api/README.md): every guide with what it settles