👨‍💻 Reusable.email API (2.0)

🌐 Domain-aware by design:
All API requests must be made to your assigned domain or subdomain.

  • Example: https://yourdomain.com/v2/ (point your domain/subdomain CNAME to our backend)
  • The API automatically routes & isolates data by incoming domain.

🔒 Authorization:
Public inbox endpoints require no authentication, but private inbox operations must include an Inbox Token for secure access.

💬 Need help or have questions?
Reach out anytime at t.me/reusable for direct support.

Download OpenAPI description
Languages
Servers
Mock server

https://docs.reusable.email/_mock/api/

Your Whitelabel Domain

https://yourdomain.com/

Inboxes

Operations for creating, managing, and logging into inboxes.

Operations

Emails

Read, list, move, and manage emails.

Operations

Fetch email (basic)

Request

Security
InboxToken
Path
inbox_idstring= 24 charactersrequired
email_idstring= 24 charactersrequired
curl -i -X GET \
  'https://docs.reusable.email/_mock/api/v2/inbox/{inbox_id}/email/{email_id}' \
  -H 'Authorization: YOUR_API_KEY_HERE'

Responses

Email fetched.

Bodyapplication/json
successboolean
Example: true
dataobject(EmailBasicResponse)
messagestring or null
Response
application/json
{ "success": true, "data": { "id": "663dbde1e0535ce2e6a1aabb", "subject": "Welcome to Reusable.email", "sender": "no-reply@somewhere.com", "recipient": "user@customdomain.com", "snippet": "Thanks for signing up!", "received_at": "2024-06-01T12:00:00Z", "read_status": false, "attachment_count": 0 }, "message": null }

Delete email (single)

Request

Security
InboxToken
Path
inbox_idstring= 24 charactersrequired
email_idstring= 24 charactersrequired
curl -i -X DELETE \
  'https://docs.reusable.email/_mock/api/v2/inbox/{inbox_id}/email/{email_id}' \
  -H 'Authorization: YOUR_API_KEY_HERE'

Responses

Email deleted.

Bodyapplication/json
successboolean
Example: true
messagestring
Example: "Email deleted successfully"
Response
application/json
{ "success": true, "message": "Email deleted successfully" }

Fetch email attachments

Request

Security
InboxToken
Path
inbox_idstring= 24 charactersrequired
email_idstring= 24 charactersrequired
curl -i -X GET \
  'https://docs.reusable.email/_mock/api/v2/inbox/{inbox_id}/email/{email_id}/attachments' \
  -H 'Authorization: YOUR_API_KEY_HERE'

Responses

Email attachments listed.

Bodyapplication/json
successboolean
dataobject
messagestring or null
Response
application/json
{ "success": true, "data": { "attachments": [] }, "message": null }

Download email attachment

Request

Generates a presigned S3 URL to download the specified attachment.

Security
InboxToken
Path
inbox_idstring= 24 charactersrequired
email_idstring= 24 charactersrequired
attachment_idstring= 24 charactersrequired
curl -i -X GET \
  'https://docs.reusable.email/_mock/api/v2/inbox/{inbox_id}/email/{email_id}/attachment/{attachment_id}' \
  -H 'Authorization: YOUR_API_KEY_HERE'

Responses

Presigned download URL.

Bodyapplication/json
successboolean
Example: true
dataobject(EmailAttachmentDownloadResponse)
messagestring or null
Response
application/json
{ "success": true, "data": { "email_id": "663dbde1e0535ce2e6a1aabb", "attachment_id": "663dbde1e0535ce2e6a1aac1", "filename": "invoice.pdf", "content_type": "application/pdf", "size_bytes": 35800, "download_url": "https://s3.reusable.email/abcxyz", "expires_in": 900 }, "message": null }

Fetch email HTML

Request

Security
InboxToken
Path
inbox_idstring= 24 charactersrequired
email_idstring= 24 charactersrequired
curl -i -X GET \
  'https://docs.reusable.email/_mock/api/v2/inbox/{inbox_id}/email/{email_id}/html' \
  -H 'Authorization: YOUR_API_KEY_HERE'

Responses

Email HTML fetched.

Bodyapplication/json
successboolean
dataobject
messagestring or null
Response
application/json
{ "success": true, "data": { "html_body": "<html><body>Hello!</body></html>" }, "message": null }

Fetch email text

Request

Security
InboxToken
Path
inbox_idstring= 24 charactersrequired
email_idstring= 24 charactersrequired
curl -i -X GET \
  'https://docs.reusable.email/_mock/api/v2/inbox/{inbox_id}/email/{email_id}/text' \
  -H 'Authorization: YOUR_API_KEY_HERE'

Responses

Email text body fetched.

Bodyapplication/json
successboolean
dataobject
messagestring or null
Response
application/json
{ "success": true, "data": { "text_body": "Plain text email body here." }, "message": null }

Fetch email raw

Request

Security
InboxToken
Path
inbox_idstring= 24 charactersrequired
email_idstring= 24 charactersrequired
curl -i -X GET \
  'https://docs.reusable.email/_mock/api/v2/inbox/{inbox_id}/email/{email_id}/raw' \
  -H 'Authorization: YOUR_API_KEY_HERE'

Responses

Raw email source fetched.

Bodyapplication/json
successboolean
dataobject
messagestring or null
Response
application/json
{ "success": true, "data": { "raw_source": "Full RFC5322 email source goes here." }, "message": null }

Fetch email headers

Request

Security
InboxToken
Path
inbox_idstring= 24 charactersrequired
email_idstring= 24 charactersrequired
curl -i -X GET \
  'https://docs.reusable.email/_mock/api/v2/inbox/{inbox_id}/email/{email_id}/headers' \
  -H 'Authorization: YOUR_API_KEY_HERE'

Responses

Email headers fetched.

Bodyapplication/json
successboolean
dataobject
messagestring or null
Response
application/json
{ "success": true, "data": { "headers": {} }, "message": null }

Fetch email deliverability

Request

Security
InboxToken
Path
inbox_idstring= 24 charactersrequired
email_idstring= 24 charactersrequired
curl -i -X GET \
  'https://docs.reusable.email/_mock/api/v2/inbox/{inbox_id}/email/{email_id}/deliverability' \
  -H 'Authorization: YOUR_API_KEY_HERE'

Responses

Email deliverability details fetched.

Bodyapplication/json
successboolean
dataobject
messagestring or null
Response
application/json
{ "success": true, "data": { "deliverability": {} }, "message": null }

Get email folders

Request

Security
InboxToken
Path
inbox_idstring= 24 charactersrequired
email_idstring= 24 charactersrequired
curl -i -X GET \
  'https://docs.reusable.email/_mock/api/v2/inbox/{inbox_id}/email/{email_id}/folder' \
  -H 'Authorization: YOUR_API_KEY_HERE'

Responses

Email folder IDs fetched.

Bodyapplication/json
successboolean
dataobject
messagestring or null
Response
application/json
{ "success": true, "data": { "folder_ids": [] }, "message": null }

Bulk mark emails as read

Request

Security
InboxToken
Path
inbox_idstring= 24 charactersrequired
Bodyapplication/jsonrequired
email_idsArray of strings[ 1 .. 2000 ] itemsrequired
Example: ["663dbde1e0535ce2e6a1aabb","663dbde1e0535ce2e6a1aabc"]
curl -i -X POST \
  'https://docs.reusable.email/_mock/api/v2/inbox/{inbox_id}/email/read' \
  -H 'Authorization: YOUR_API_KEY_HERE' \
  -H 'Content-Type: application/json' \
  -d '{
    "email_ids": [
      "663dbde1e0535ce2e6a1aabb",
      "663dbde1e0535ce2e6a1aabc"
    ]
  }'

Responses

Emails marked as read.

Bodyapplication/json
successboolean
Example: true
messagestring
Example: "Marked 2 emails as read."
updated_countinteger
Example: 2
Response
application/json
{ "success": true, "message": "Marked 2 emails as read.", "updated_count": 2 }

Bulk mark emails as unread

Request

Security
InboxToken
Path
inbox_idstring= 24 charactersrequired
Bodyapplication/jsonrequired
email_idsArray of strings[ 1 .. 2000 ] itemsrequired
Example: ["663dbde1e0535ce2e6a1aabb","663dbde1e0535ce2e6a1aabc"]
curl -i -X POST \
  'https://docs.reusable.email/_mock/api/v2/inbox/{inbox_id}/email/unread' \
  -H 'Authorization: YOUR_API_KEY_HERE' \
  -H 'Content-Type: application/json' \
  -d '{
    "email_ids": [
      "663dbde1e0535ce2e6a1aabb",
      "663dbde1e0535ce2e6a1aabc"
    ]
  }'

Responses

Emails marked as unread.

Bodyapplication/json
successboolean
Example: true
messagestring
Example: "Marked 2 emails as unread."
updated_countinteger
Example: 2
Response
application/json
{ "success": true, "message": "Marked 2 emails as unread.", "updated_count": 2 }

Bulk move emails to folders

Request

Security
InboxToken
Path
inbox_idstring= 24 charactersrequired
Bodyapplication/jsonrequired
email_idsArray of strings[ 1 .. 2000 ] itemsrequired
Example: ["663dbde1e0535ce2e6a1aabb"]
folder_idsArray of strings[ 1 .. 50 ] itemsrequired
Example: ["663dbde1e0535ce2e6a1bbcc"]
curl -i -X POST \
  'https://docs.reusable.email/_mock/api/v2/inbox/{inbox_id}/email/folder' \
  -H 'Authorization: YOUR_API_KEY_HERE' \
  -H 'Content-Type: application/json' \
  -d '{
    "email_ids": [
      "663dbde1e0535ce2e6a1aabb"
    ],
    "folder_ids": [
      "663dbde1e0535ce2e6a1bbcc"
    ]
  }'

Responses

Emails assigned to folders.

Bodyapplication/json
successboolean
Example: true
messagestring
Example: "Assigned 1 folder references."
updated_countinteger
Example: 1
Response
application/json
{ "success": true, "message": "Assigned 1 folder references.", "updated_count": 1 }

Bulk delete emails

Request

Security
InboxToken
Path
inbox_idstring= 24 charactersrequired
Bodyapplication/jsonrequired
email_idsArray of strings[ 1 .. 2000 ] itemsrequired
Example: ["663dbde1e0535ce2e6a1aabb","663dbde1e0535ce2e6a1aabc"]
curl -i -X DELETE \
  'https://docs.reusable.email/_mock/api/v2/inbox/{inbox_id}/email' \
  -H 'Authorization: YOUR_API_KEY_HERE' \
  -H 'Content-Type: application/json' \
  -d '{
    "email_ids": [
      "663dbde1e0535ce2e6a1aabb",
      "663dbde1e0535ce2e6a1aabc"
    ]
  }'

Responses

Emails deleted.

Bodyapplication/json
successboolean
Example: true
messagestring
Example: "Deleted 2 emails."
deleted_countinteger
Example: 2
Response
application/json
{ "success": true, "message": "Deleted 2 emails.", "deleted_count": 2 }