# Parasend API > Registered electronic delivery: send documents that prove they arrived. REST, JSON, signed webhooks. Hosted in the EU (AWS Ireland). Base URL: https://api.parasend.com/v1. Every page below is Markdown; the OpenAPI 3.1 description is https://parasend.com/docs/openapi.json, and the whole API in one file is https://parasend.com/docs/llms-full.txt. Rules for agents: - Start with a test key (`ps_test_…`). Test mode sends no e-mail or SMS, the one-time code is always `000000`, and nothing is billed. Switch to a live key (`ps_live_…`) only when the integration works. - Send an `Idempotency-Key` header with every POST. A retry with the same key returns the first answer and never sends twice. - Never put a kennitala, an e-mail address or other personal data in a URL, a log or `metadata`. - Keep the delivery ID. The Delivery Certificate (PDF) and the evidence record (XML) are the proof; fetch and keep them once the delivery is confirmed. - Check the `Parasend-Signature` header on every webhook before trusting it. ## Start - [Introduction](https://parasend.com/docs/index.md) - [Quickstart](https://parasend.com/docs/quickstart.md) - [Authentication](https://parasend.com/docs/authentication.md) - [Test and live mode](https://parasend.com/docs/test-mode.md) - [Handling errors](https://parasend.com/docs/handling-errors.md) - [Idempotency](https://parasend.com/docs/idempotency.md) - [Pagination](https://parasend.com/docs/pagination.md) - [Rate limits](https://parasend.com/docs/rate-limits.md) - [Versioning](https://parasend.com/docs/versioning.md) - [Changelog](https://parasend.com/docs/changelog.md) - [Error codes](https://parasend.com/docs/errors.md) - [Event types](https://parasend.com/docs/events.md) ## API reference - [Deliveries](https://parasend.com/docs/api/deliveries.md) - [Create a delivery](https://parasend.com/docs/api/deliveries/create.md): `POST /v1/deliveries` - [List deliveries](https://parasend.com/docs/api/deliveries/list.md): `GET /v1/deliveries` - [Retrieve a delivery](https://parasend.com/docs/api/deliveries/retrieve.md): `GET /v1/deliveries/{id}` - [Check a contact before sending](https://parasend.com/docs/api/deliveries/check-contact.md): `POST /v1/deliveries/contact_check` - [Send a reminder](https://parasend.com/docs/api/deliveries/remind.md): `POST /v1/deliveries/{id}/remind` - [Revoke a delivery](https://parasend.com/docs/api/deliveries/revoke.md): `POST /v1/deliveries/{id}/revoke` - [Delete a delivery](https://parasend.com/docs/api/deliveries/delete.md): `DELETE /v1/deliveries/{id}` - [List a delivery's events](https://parasend.com/docs/api/deliveries/events.md): `GET /v1/deliveries/{id}/events` - [List a delivery's e-mails and SMS](https://parasend.com/docs/api/deliveries/notifications.md): `GET /v1/deliveries/{id}/notifications` - [List a delivery's files](https://parasend.com/docs/api/deliveries/files.md): `GET /v1/deliveries/{id}/files` - [Download a delivered file](https://parasend.com/docs/api/deliveries/download-file.md): `GET /v1/deliveries/{id}/files/{fileId}/content` - [Set the recipient's postal address](https://parasend.com/docs/api/deliveries/set-address.md): `PATCH /v1/deliveries/{id}/address` - [Change a delivery's follow-up policy](https://parasend.com/docs/api/deliveries/change-policy.md): `POST /v1/deliveries/{id}/policy_change` - [Get a delivery's cost](https://parasend.com/docs/api/deliveries/cost.md): `GET /v1/deliveries/{id}/cost` - [Get the cost of several deliveries](https://parasend.com/docs/api/deliveries/costs.md): `GET /v1/deliveries/costs` - [Get delivery counts](https://parasend.com/docs/api/deliveries/summary.md): `GET /v1/deliveries/summary` - [Files](https://parasend.com/docs/api/files.md) - [Upload a file](https://parasend.com/docs/api/files/upload.md): `POST /v1/files` - [Retrieve a file](https://parasend.com/docs/api/files/retrieve.md): `GET /v1/files/{id}` - [Batches](https://parasend.com/docs/api/batches.md) - [Create a batch](https://parasend.com/docs/api/batches/create.md): `POST /v1/batches` - [List batches](https://parasend.com/docs/api/batches/list.md): `GET /v1/batches` - [Retrieve a batch](https://parasend.com/docs/api/batches/retrieve.md): `GET /v1/batches/{id}` - [Update a batch](https://parasend.com/docs/api/batches/update.md): `PATCH /v1/batches/{id}` - [Add deliveries to a batch](https://parasend.com/docs/api/batches/add-deliveries.md): `POST /v1/batches/{id}/deliveries` - [List a batch's deliveries](https://parasend.com/docs/api/batches/deliveries.md): `GET /v1/batches/{id}/deliveries` - [Check a batch before sending](https://parasend.com/docs/api/batches/preflight.md): `GET /v1/batches/{id}/preflight` - [Send out a batch](https://parasend.com/docs/api/batches/send-out.md): `POST /v1/batches/{id}/finalize` - [Get a batch report](https://parasend.com/docs/api/batches/report.md): `GET /v1/batches/{id}/report` - [Pause a batch's follow-ups](https://parasend.com/docs/api/batches/pause.md): `POST /v1/batches/{id}/pause` - [Resume a batch's follow-ups](https://parasend.com/docs/api/batches/resume.md): `POST /v1/batches/{id}/resume` - [Change a batch's follow-up policy](https://parasend.com/docs/api/batches/change-policy.md): `POST /v1/batches/{id}/policy_change` - [Extend a batch's deliveries](https://parasend.com/docs/api/batches/extend-expiry.md): `POST /v1/batches/{id}/extend_expiry` - [Duplicate a batch](https://parasend.com/docs/api/batches/duplicate.md): `POST /v1/batches/{id}/duplicate` - [Cancel a batch](https://parasend.com/docs/api/batches/cancel.md): `POST /v1/batches/{id}/cancel` - [Events](https://parasend.com/docs/api/events.md) - [List events](https://parasend.com/docs/api/events/list.md): `GET /v1/events` - [Retrieve an event](https://parasend.com/docs/api/events/retrieve.md): `GET /v1/events/{id}` - [See where an event was sent](https://parasend.com/docs/api/events/webhooks.md): `GET /v1/events/{id}/webhooks` - [Webhook endpoints](https://parasend.com/docs/api/webhooks.md) - [Add a webhook endpoint](https://parasend.com/docs/api/webhooks/create.md): `POST /v1/webhook_endpoints` - [List webhook endpoints](https://parasend.com/docs/api/webhooks/list.md): `GET /v1/webhook_endpoints` - [Retrieve a webhook endpoint](https://parasend.com/docs/api/webhooks/retrieve.md): `GET /v1/webhook_endpoints/{id}` - [Update a webhook endpoint](https://parasend.com/docs/api/webhooks/update.md): `PATCH /v1/webhook_endpoints/{id}` - [Delete a webhook endpoint](https://parasend.com/docs/api/webhooks/delete.md): `DELETE /v1/webhook_endpoints/{id}` - [Send a test event](https://parasend.com/docs/api/webhooks/test.md): `POST /v1/webhook_endpoints/{id}/test` - [Replay events](https://parasend.com/docs/api/webhooks/replay.md): `POST /v1/webhook_endpoints/{id}/replay` - [List an endpoint's attempts](https://parasend.com/docs/api/webhooks/attempts.md): `GET /v1/webhook_endpoints/{id}/attempts` - [Roll an endpoint's signing secret](https://parasend.com/docs/api/webhooks/roll-secret.md): `POST /v1/webhook_endpoints/{id}/roll_secret` - [Evidence](https://parasend.com/docs/api/evidence.md) - [Get the Delivery Certificate (PDF)](https://parasend.com/docs/api/evidence/certificate.md): `GET /v1/deliveries/{id}/evidence/document` - [Get the evidence record (XML)](https://parasend.com/docs/api/evidence/record.md): `GET /v1/deliveries/{id}/evidence/record` - [Get a recipient's verification photo](https://parasend.com/docs/api/evidence/recipient-photo.md): `GET /v1/deliveries/{id}/recipient_photos/{kind}` - [Record check](https://parasend.com/docs/api/verify.md) - [Check a delivery record by its evidence code](https://parasend.com/docs/api/verify/check.md): `POST /v1/public/verify` - [Follow-up policies](https://parasend.com/docs/api/follow-up-policies.md) - [Create a follow-up policy](https://parasend.com/docs/api/follow-up-policies/create.md): `POST /v1/reminder_policies` - [List follow-up policies](https://parasend.com/docs/api/follow-up-policies/list.md): `GET /v1/reminder_policies` - [Retrieve a follow-up policy](https://parasend.com/docs/api/follow-up-policies/retrieve.md): `GET /v1/reminder_policies/{id}` - [Update a follow-up policy](https://parasend.com/docs/api/follow-up-policies/update.md): `PATCH /v1/reminder_policies/{id}` - [Delete a follow-up policy](https://parasend.com/docs/api/follow-up-policies/delete.md): `DELETE /v1/reminder_policies/{id}` - [List a follow-up policy's versions](https://parasend.com/docs/api/follow-up-policies/versions.md): `GET /v1/reminder_policies/{id}/versions` - [Preview a follow-up step](https://parasend.com/docs/api/follow-up-policies/preview-step.md): `POST /v1/reminder_policies/preview` - [Duplicate a follow-up policy](https://parasend.com/docs/api/follow-up-policies/duplicate.md): `POST /v1/reminder_policies/{id}/duplicate` - [Reset one of Parasend's policies](https://parasend.com/docs/api/follow-up-policies/reset.md): `POST /v1/reminder_policies/{id}/reset` - [Saved wordings](https://parasend.com/docs/api/wordings.md) - [Save a wording](https://parasend.com/docs/api/wordings/create.md): `POST /v1/wordings` - [List saved wordings](https://parasend.com/docs/api/wordings/list.md): `GET /v1/wordings` - [Retrieve a saved wording](https://parasend.com/docs/api/wordings/retrieve.md): `GET /v1/wordings/{id}` - [Update a saved wording](https://parasend.com/docs/api/wordings/update.md): `PATCH /v1/wordings/{id}` - [Archive a saved wording](https://parasend.com/docs/api/wordings/archive.md): `DELETE /v1/wordings/{id}` - [List a wording's versions](https://parasend.com/docs/api/wordings/versions.md): `GET /v1/wordings/{id}/versions` - [Retrieve a wording version](https://parasend.com/docs/api/wordings/version.md): `GET /v1/wordings/{id}/versions/{version}` - [Preview a wording](https://parasend.com/docs/api/wordings/preview.md): `POST /v1/wordings/preview` - [Check what wordings may contain](https://parasend.com/docs/api/wordings/capabilities.md): `GET /v1/wordings/capabilities` - [Brand profiles](https://parasend.com/docs/api/brand-profiles.md) - [Create a brand profile](https://parasend.com/docs/api/brand-profiles/create.md): `POST /v1/brand_profiles` - [List brand profiles](https://parasend.com/docs/api/brand-profiles/list.md): `GET /v1/brand_profiles` - [Retrieve a brand profile](https://parasend.com/docs/api/brand-profiles/retrieve.md): `GET /v1/brand_profiles/{id}` - [Update a brand profile](https://parasend.com/docs/api/brand-profiles/update.md): `PATCH /v1/brand_profiles/{id}` - [Delete a brand profile](https://parasend.com/docs/api/brand-profiles/delete.md): `DELETE /v1/brand_profiles/{id}` - [List a brand profile's versions](https://parasend.com/docs/api/brand-profiles/versions.md): `GET /v1/brand_profiles/{id}/versions` - [Preview a brand profile](https://parasend.com/docs/api/brand-profiles/preview.md): `POST /v1/brand_profiles/preview` - [Brand assets](https://parasend.com/docs/api/brand-assets.md) - [Upload a brand asset](https://parasend.com/docs/api/brand-assets/upload.md): `POST /v1/brand_assets` - [Retrieve a brand asset](https://parasend.com/docs/api/brand-assets/retrieve.md): `GET /v1/brand_assets/{id}` - [Download a brand asset](https://parasend.com/docs/api/brand-assets/download.md): `GET /v1/brand_assets/{id}/content` - [Link domains](https://parasend.com/docs/api/link-domains.md) - [List link domains](https://parasend.com/docs/api/link-domains/list.md): `GET /v1/recipient_domains` - [Retrieve a link domain](https://parasend.com/docs/api/link-domains/retrieve.md): `GET /v1/recipient_domains/{id}` - [Check a link domain](https://parasend.com/docs/api/link-domains/check.md): `POST /v1/recipient_domains/{id}/check` - [Prices](https://parasend.com/docs/api/billing.md) - [Get the price list](https://parasend.com/docs/api/billing/prices.md): `GET /v1/billing/prices` ## Guides - [Receiving webhooks](https://parasend.com/docs/webhooks.md) - [Single sign-on: Okta](https://parasend.com/docs/sso/okta.md) - [Single sign-on: Microsoft Entra ID](https://parasend.com/docs/sso/entra.md) - [Single sign-on: Google Workspace](https://parasend.com/docs/sso/google.md) - [Single sign-on: any SAML provider](https://parasend.com/docs/sso/saml.md) ## Optional - [OpenAPI 3.1](https://parasend.com/docs/openapi.json) - [The whole API in one file](https://parasend.com/docs/llms-full.txt)