# Pulsewave ## Docs - [Create an API key](https://docs.moritosh.com/api-reference/api-keys/create.md): The full secret value is returned only once, in this response. Store it securely; Pulsewave cannot show it to you again. - [Revoke an API key](https://docs.moritosh.com/api-reference/api-keys/delete.md): Immediately invalidates the key. Requests already in flight that use this key may complete, but new requests are rejected with a 401. - [List API keys](https://docs.moritosh.com/api-reference/api-keys/list.md): Secret values are never returned by this endpoint, only metadata about each key. - [Create a contact](https://docs.moritosh.com/api-reference/contacts/create.md) - [Delete a contact](https://docs.moritosh.com/api-reference/contacts/delete.md): Permanently deletes a contact and removes it from every list. This does not delete past messages or events associated with the contact. - [List contacts](https://docs.moritosh.com/api-reference/contacts/list.md) - [Retrieve a contact](https://docs.moritosh.com/api-reference/contacts/retrieve.md) - [Update a contact](https://docs.moritosh.com/api-reference/contacts/update.md) - [Add a domain](https://docs.moritosh.com/api-reference/domains/create.md): Registers a domain for sending email. Returns the DNS records you must publish before the domain can be verified. - [Delete a domain](https://docs.moritosh.com/api-reference/domains/delete.md): Removes a domain. Any messages already sent from this domain are unaffected, but new messages can no longer use it as a `from` address. - [List domains](https://docs.moritosh.com/api-reference/domains/list.md) - [Retrieve a domain](https://docs.moritosh.com/api-reference/domains/retrieve.md) - [Verify a domain](https://docs.moritosh.com/api-reference/domains/verify.md): Checks DNS for the records returned when the domain was created and updates its `status`. Call this after publishing the records; Pulsewave also re-checks automatically every few minutes. - [List events](https://docs.moritosh.com/api-reference/events/list.md): Returns the full activity log: every state transition for every message, plus contact and domain lifecycle events. This is the same data delivered to your webhook endpoints, queryable after the fact. - [Retrieve an event](https://docs.moritosh.com/api-reference/events/retrieve.md) - [Introduction](https://docs.moritosh.com/api-reference/introduction.md): How the Pulsewave API is organized - [Add a contact to a list](https://docs.moritosh.com/api-reference/lists/add-contact.md) - [Create a list](https://docs.moritosh.com/api-reference/lists/create.md) - [Delete a list](https://docs.moritosh.com/api-reference/lists/delete.md): Deletes the list itself. Contacts that belonged to the list are not deleted. - [List all lists](https://docs.moritosh.com/api-reference/lists/list.md) - [Remove a contact from a list](https://docs.moritosh.com/api-reference/lists/remove-contact.md) - [Retrieve a list](https://docs.moritosh.com/api-reference/lists/retrieve.md) - [Update a list](https://docs.moritosh.com/api-reference/lists/update.md) - [Cancel a message](https://docs.moritosh.com/api-reference/messages/cancel.md): Cancels a message that has not yet left the `queued` state. Messages that are already `sending` or beyond cannot be cancelled and this endpoint returns a 409. - [List messages](https://docs.moritosh.com/api-reference/messages/list.md): Returns messages in reverse chronological order. Use `starting_after` to page through results, see [Pagination](/pagination). - [Retrieve a message](https://docs.moritosh.com/api-reference/messages/retrieve.md) - [Send a message](https://docs.moritosh.com/api-reference/messages/send.md): Sends a single message over email, SMS, or push. The request shape is the same for every channel; fields that don't apply to the chosen channel are ignored. - [Create a template](https://docs.moritosh.com/api-reference/templates/create.md) - [Delete a template](https://docs.moritosh.com/api-reference/templates/delete.md) - [List templates](https://docs.moritosh.com/api-reference/templates/list.md) - [Retrieve a template](https://docs.moritosh.com/api-reference/templates/retrieve.md) - [Update a template](https://docs.moritosh.com/api-reference/templates/update.md): Updating a template's `body` creates a new version. Messages already queued continue to use the version that was current when they were sent. - [Create a webhook endpoint](https://docs.moritosh.com/api-reference/webhook-endpoints/create.md): Registers a URL to receive event notifications. The response includes a `secret` used to verify payload signatures; see [Webhooks](/webhooks). - [Delete a webhook endpoint](https://docs.moritosh.com/api-reference/webhook-endpoints/delete.md) - [List webhook endpoints](https://docs.moritosh.com/api-reference/webhook-endpoints/list.md) - [Retrieve a webhook endpoint](https://docs.moritosh.com/api-reference/webhook-endpoints/retrieve.md) - [Update a webhook endpoint](https://docs.moritosh.com/api-reference/webhook-endpoints/update.md) - [contact.unsubscribed](https://docs.moritosh.com/api-reference/webhook-events/contact-unsubscribed.md): Sent when a contact unsubscribes, either via an unsubscribe link or a spam complaint. - [domain.verified](https://docs.moritosh.com/api-reference/webhook-events/domain-verified.md): Sent when a sending domain's DNS records pass verification. - [message.bounced](https://docs.moritosh.com/api-reference/webhook-events/message-bounced.md): Sent when a message permanently fails to deliver, e.g. an invalid email address or disconnected phone number. - [message.clicked](https://docs.moritosh.com/api-reference/webhook-events/message-clicked.md): Sent when a recipient clicks a tracked link inside the message. - [message.complained](https://docs.moritosh.com/api-reference/webhook-events/message-complained.md): Sent when a recipient marks the message as spam. Contacts that complain are automatically unsubscribed from future messages. - [message.delivered](https://docs.moritosh.com/api-reference/webhook-events/message-delivered.md): Sent when the receiving server confirms delivery. Not available for SMS in every country, depending on carrier support. - [message.opened](https://docs.moritosh.com/api-reference/webhook-events/message-opened.md): Sent when an email recipient opens the message. Requires open tracking to be enabled on the sending domain. - [message.sent](https://docs.moritosh.com/api-reference/webhook-events/message-sent.md): Sent when a message has been handed off to the carrier (mail server, SMS gateway, or push provider). This does not guarantee delivery. - [Authentication](https://docs.moritosh.com/authentication.md): How to authenticate requests to the Pulsewave API - [Changelog](https://docs.moritosh.com/changelog.md): Notable changes to the Pulsewave API - [Contacts and lists](https://docs.moritosh.com/concepts/contacts-and-lists.md): Manage recipients and their subscription state - [Domains](https://docs.moritosh.com/concepts/domains.md): Verify ownership of the domains you send email from - [Events](https://docs.moritosh.com/concepts/events.md): The activity log behind messages, contacts, and domains - [Messages](https://docs.moritosh.com/concepts/messages.md): The core object you send and track - [Templates](https://docs.moritosh.com/concepts/templates.md): Reusable, versioned content for messages - [Errors](https://docs.moritosh.com/errors.md): How Pulsewave reports failures - [Idempotency](https://docs.moritosh.com/idempotency.md): Safely retry requests without double-sending - [Introduction](https://docs.moritosh.com/index.md): Email, SMS, and push notifications from one API - [Pagination](https://docs.moritosh.com/pagination.md): How to page through list endpoints - [Quickstart](https://docs.moritosh.com/quickstart.md): Send your first message in under five minutes - [Rate limits](https://docs.moritosh.com/rate-limits.md): Request limits and how to handle them - [SDKs](https://docs.moritosh.com/sdks.md): Official client libraries for Pulsewave - [Webhooks](https://docs.moritosh.com/webhooks.md): Receive real-time notifications about message and contact events ## OpenAPI Specs - [openapi](https://docs.moritosh.com/api-reference/openapi.json) ## Optional - [Status](https://status.pulsewave.dev)