{
  "info": {
    "_postman_id": "f6d149d6-a143-40c7-a813-b32d287d1e80",
    "name": "AhaSend API v2 Accounts Email API",
    "description": "The AhaSend API v2 allows you to send transactional emails, manage domains, webhooks, routes, API keys, and view statistics.\n\n## Authentication\nAll API requests must be authenticated using a Bearer token in the Authorization header:\n```\nAuthorization: Bearer aha-sk-64-CHARACTER-RANDOM-STRING\n```\n\n## Scopes\nAPI keys have specific scopes that control access to different resources and actions:\n\n### Message Scopes\n- `messages:send:all` - Send messages from any domain in the account\n- `messages:send:{domain}` - Send messages from a specific domain\n- `messages:cancel:all` - Cancel messages from any domain\n- `messages:cancel:{domain}` - Cancel messages from a specific domain\n- `messages:read:all` - Read messages from any domain\n- `messages:read:{domain}` - Read messages from a specific domain\n\n### Domain Scopes\n- `domains:read` - Read all domains\n- `domains:write` - Create and update domains\n- `domains:delete:all` - Delete any domain\n- `domains:delete:{domain}` - Delete a specific domain\n\n### Account Scopes\n- `accounts:read` - Read account information\n- `accounts:write` - Update account settings\n- `accounts:billing` - Access billing information\n- `accounts:members:read` - Read account members\n- `accounts:members:add` - Add account members\n- `accounts:members:update` - Update account members\n- `accounts:members:remove` - Remove account members\n\n### Webhook Scopes\n- `webhooks:read:all` - Read all webhooks\n- `webhooks:read:{domain}` - Read webhooks for a specific domain\n- `webhooks:write:all` - Create and update webhooks\n- `webhooks:write:{domain}` - Create and update webhooks for a specific domain\n- `webhooks:delete:all` - Delete any webhook\n- `webhooks:delete:{domain}` - Delete webhooks for a specific domain\n\n### Route Scopes\n- `routes:read:all` - Read all routes\n- `routes:read:{domain}` - Read routes for a specific domain\n- `routes:write:all` - Create and update routes\n- `routes:write:{domain}` - Create and update routes for a specific domain\n- `routes:delete:all` - Delete any route\n- `routes:delete:{domain}` - Delete routes for a specific domain\n\n### Suppression Scopes\n- `suppressions:read` - Read suppressions\n- `suppressions:write` - Create suppressions\n- `suppressions:delete` - Delete suppressions\n- `suppressions:wipe` - Delete all suppressions (dangerous)\n\n### SMTP Credentials Scopes\n- `smtp-credentials:read:all` - Read all SMTP credentials\n- `smtp-credentials:read:{domain}` - Read SMTP credentials for a specific domain\n- `smtp-credentials:write:all` - Create SMTP credentials\n- `smtp-credentials:write:{domain}` - Create SMTP credentials for a specific domain\n- `smtp-credentials:delete:all` - Delete any SMTP credentials\n- `smtp-credentials:delete:{domain}` - Delete SMTP credentials for a specific domain\n\n### Statistics Scopes\n- `statistics-transactional:read:all` - Read all transactional statistics\n- `statistics-transactional:read:{domain}` - Read transactional statistics for a specific domain\n\n### API Key Scopes\n- `api-keys:read` - Read API keys\n- `api-keys:write` - Create and update API keys\n- `api-keys:delete` - Delete API keys\n\n## Rate Limiting\n- General API endpoints: 100 requests per second, 200 burst\n- Statistics endpoints: 1 request per second, 1 burst\n\n## Pagination\nList endpoints use cursor-based pagination with the following parameters:\n- `limit`: Maximum number of items to return (default: 100, max: 100)\n- `cursor`: Pagination cursor for the next page\n\n## Time Formats\nAll timestamps must be in RFC3339 format, e.g., `2023-12-25T10:30:00Z`\n\n## Idempotency\nPOST requests support idempotency through the optional `Idempotency-Key` header. When provided:\n- The same request can be safely retried multiple times\n- Duplicate requests return the same response with `Idempotent-Replayed: true`\n- In-progress requests return HTTP 409 with `Idempotent-Replayed: false`\n- Failed requests return HTTP 412 with `Idempotent-Replayed: false`\n- Idempotency keys expire after 24 hours\n\n\nContact Support:\n Email: support@ahasend.com",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
    "createdAt": "2026-07-28T00:29:15.000Z",
    "updatedAt": "2026-07-28T00:29:15.000Z",
    "lastUpdatedBy": "35240",
    "uid": "35240-f6d149d6-a143-40c7-a813-b32d287d1e80"
  },
  "item": [
    {
      "name": "email",
      "item": [
        {
          "name": "send",
          "item": [
            {
              "name": "AhaSend Send Emails",
              "id": "f6cb3ad0-b202-459f-ad82-048ee94a5d0e",
              "protocolProfileBehavior": {
                "disableBodyPruning": true
              },
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"from\": {\n    \"email\": \"<string>\",\n    \"name\": \"<string>\"\n  },\n  \"recipients\": [\n    {\n      \"email\": \"<string>\",\n      \"name\": \"<string>\"\n    },\n    {\n      \"email\": \"<string>\",\n      \"name\": \"<string>\"\n    }\n  ],\n  \"content\": {\n    \"subject\": \"<string>\",\n    \"text_body\": \"<string>\",\n    \"html_body\": \"<string>\",\n    \"attachments\": [\n      {\n        \"data\": \"<string>\",\n        \"file_name\": \"<string>\",\n        \"content_type\": \"<string>\",\n        \"base64\": \"<boolean>\",\n        \"content_id\": \"<string>\"\n      },\n      {\n        \"data\": \"<string>\",\n        \"file_name\": \"<string>\",\n        \"content_type\": \"<string>\",\n        \"base64\": \"<boolean>\",\n        \"content_id\": \"<string>\"\n      }\n    ],\n    \"reply_to\": {\n      \"email\": \"<string>\",\n      \"name\": \"<string>\"\n    },\n    \"headers\": {\n      \"eiusmod_b\": \"<string>\",\n      \"temporda\": \"<string>\"\n    }\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/email/send",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "email",
                    "send"
                  ]
                },
                "description": "You can send emails to up to 100 recipients using this API at the same time."
              },
              "response": [
                {
                  "id": "562f54ba-ca57-4410-864e-a7d83688dcf1",
                  "name": "Request was accepted. This doesn't necessarily mean immediate delivery or even queueing of the emails for delivery. It just means that the request was well-formed and accepted, but you need to check the response for success_count and fail_count to make su",
                  "originalRequest": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      },
                      {
                        "key": "Accept",
                        "value": "application/json"
                      },
                      {
                        "description": "Added as a part of security scheme: bearer",
                        "key": "Authorization",
                        "value": "Bearer <token>"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "raw": "{\n  \"from\": {\n    \"email\": \"<string>\",\n    \"name\": \"<string>\"\n  },\n  \"recipients\": [\n    {\n      \"email\": \"<string>\",\n      \"name\": \"<string>\"\n    },\n    {\n      \"email\": \"<string>\",\n      \"name\": \"<string>\"\n    }\n  ],\n  \"content\": {\n    \"subject\": \"<string>\",\n    \"text_body\": \"<string>\",\n    \"html_body\": \"<string>\",\n    \"attachments\": [\n      {\n        \"data\": \"<string>\",\n        \"file_name\": \"<string>\",\n        \"content_type\": \"<string>\",\n        \"base64\": \"<boolean>\",\n        \"content_id\": \"<string>\"\n      },\n      {\n        \"data\": \"<string>\",\n        \"file_name\": \"<string>\",\n        \"content_type\": \"<string>\",\n        \"base64\": \"<boolean>\",\n        \"content_id\": \"<string>\"\n      }\n    ],\n    \"reply_to\": {\n      \"email\": \"<string>\",\n      \"name\": \"<string>\"\n    },\n    \"headers\": {\n      \"eiusmod_b\": \"<string>\",\n      \"temporda\": \"<string>\"\n    }\n  }\n}",
                      "options": {
                        "raw": {
                          "headerFamily": "json",
                          "language": "json"
                        }
                      }
                    },
                    "url": {
                      "raw": "{{baseUrl}}/email/send",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "email",
                        "send"
                      ]
                    }
                  },
                  "status": "Created",
                  "code": 201,
                  "_postman_previewlanguage": "json",
                  "header": [
                    {
                      "key": "Content-Type",
                      "value": "application/json"
                    }
                  ],
                  "cookie": [],
                  "responseTime": null,
                  "body": "{\n  \"success_count\": \"<integer>\",\n  \"fail_count\": \"<integer>\",\n  \"failed_recipients\": [\n    \"<string>\",\n    \"<string>\"\n  ],\n  \"errors\": [\n    \"<string>\",\n    \"<string>\"\n  ]\n}",
                  "createdAt": "2026-07-28T00:29:15.000Z",
                  "updatedAt": "2026-07-28T00:29:15.000Z",
                  "uid": "35240-562f54ba-ca57-4410-864e-a7d83688dcf1"
                },
                {
                  "id": "9f943c89-50f5-4511-8872-9eecd96145aa",
                  "name": "The request is malformed and could not be validated.",
                  "originalRequest": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      },
                      {
                        "key": "Accept",
                        "value": "application/json"
                      },
                      {
                        "description": "Added as a part of security scheme: bearer",
                        "key": "Authorization",
                        "value": "Bearer <token>"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "raw": "{\n  \"from\": {\n    \"email\": \"<string>\",\n    \"name\": \"<string>\"\n  },\n  \"recipients\": [\n    {\n      \"email\": \"<string>\",\n      \"name\": \"<string>\"\n    },\n    {\n      \"email\": \"<string>\",\n      \"name\": \"<string>\"\n    }\n  ],\n  \"content\": {\n    \"subject\": \"<string>\",\n    \"text_body\": \"<string>\",\n    \"html_body\": \"<string>\",\n    \"attachments\": [\n      {\n        \"data\": \"<string>\",\n        \"file_name\": \"<string>\",\n        \"content_type\": \"<string>\",\n        \"base64\": \"<boolean>\",\n        \"content_id\": \"<string>\"\n      },\n      {\n        \"data\": \"<string>\",\n        \"file_name\": \"<string>\",\n        \"content_type\": \"<string>\",\n        \"base64\": \"<boolean>\",\n        \"content_id\": \"<string>\"\n      }\n    ],\n    \"reply_to\": {\n      \"email\": \"<string>\",\n      \"name\": \"<string>\"\n    },\n    \"headers\": {\n      \"eiusmod_b\": \"<string>\",\n      \"temporda\": \"<string>\"\n    }\n  }\n}",
                      "options": {
                        "raw": {
                          "headerFamily": "json",
                          "language": "json"
                        }
                      }
                    },
                    "url": {
                      "raw": "{{baseUrl}}/email/send",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "email",
                        "send"
                      ]
                    }
                  },
                  "status": "Bad Request",
                  "code": 400,
                  "_postman_previewlanguage": "json",
                  "header": [
                    {
                      "key": "Content-Type",
                      "value": "application/json"
                    }
                  ],
                  "cookie": [],
                  "responseTime": null,
                  "body": "{\n  \"status\": \"<string>\"\n}",
                  "createdAt": "2026-07-28T00:29:15.000Z",
                  "updatedAt": "2026-07-28T00:29:15.000Z",
                  "uid": "35240-9f943c89-50f5-4511-8872-9eecd96145aa"
                },
                {
                  "id": "fb8200af-a2da-4228-98a7-6c80cb92112f",
                  "name": "You are not allowed to send for any reason such as invalid credentials, not having access to the sending domain, etc.",
                  "originalRequest": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      },
                      {
                        "key": "Accept",
                        "value": "application/json"
                      },
                      {
                        "description": "Added as a part of security scheme: bearer",
                        "key": "Authorization",
                        "value": "Bearer <token>"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "raw": "{\n  \"from\": {\n    \"email\": \"<string>\",\n    \"name\": \"<string>\"\n  },\n  \"recipients\": [\n    {\n      \"email\": \"<string>\",\n      \"name\": \"<string>\"\n    },\n    {\n      \"email\": \"<string>\",\n      \"name\": \"<string>\"\n    }\n  ],\n  \"content\": {\n    \"subject\": \"<string>\",\n    \"text_body\": \"<string>\",\n    \"html_body\": \"<string>\",\n    \"attachments\": [\n      {\n        \"data\": \"<string>\",\n        \"file_name\": \"<string>\",\n        \"content_type\": \"<string>\",\n        \"base64\": \"<boolean>\",\n        \"content_id\": \"<string>\"\n      },\n      {\n        \"data\": \"<string>\",\n        \"file_name\": \"<string>\",\n        \"content_type\": \"<string>\",\n        \"base64\": \"<boolean>\",\n        \"content_id\": \"<string>\"\n      }\n    ],\n    \"reply_to\": {\n      \"email\": \"<string>\",\n      \"name\": \"<string>\"\n    },\n    \"headers\": {\n      \"eiusmod_b\": \"<string>\",\n      \"temporda\": \"<string>\"\n    }\n  }\n}",
                      "options": {
                        "raw": {
                          "headerFamily": "json",
                          "language": "json"
                        }
                      }
                    },
                    "url": {
                      "raw": "{{baseUrl}}/email/send",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "email",
                        "send"
                      ]
                    }
                  },
                  "status": "Forbidden",
                  "code": 403,
                  "_postman_previewlanguage": "json",
                  "header": [
                    {
                      "key": "Content-Type",
                      "value": "application/json"
                    }
                  ],
                  "cookie": [],
                  "responseTime": null,
                  "body": "{\n  \"status\": \"<string>\"\n}",
                  "createdAt": "2026-07-28T00:29:15.000Z",
                  "updatedAt": "2026-07-28T00:29:15.000Z",
                  "uid": "35240-fb8200af-a2da-4228-98a7-6c80cb92112f"
                }
              ],
              "createdAt": "2026-07-28T00:29:15.000Z",
              "updatedAt": "2026-07-28T00:29:15.000Z",
              "uid": "35240-f6cb3ad0-b202-459f-ad82-048ee94a5d0e"
            }
          ],
          "id": "736ea41c-9f13-4074-bb2f-9b0c0d7aefa9",
          "createdAt": "2026-07-28T00:29:15.000Z",
          "updatedAt": "2026-07-28T00:29:15.000Z",
          "uid": "35240-736ea41c-9f13-4074-bb2f-9b0c0d7aefa9"
        }
      ],
      "id": "c94e804b-3f3d-4d46-b6b3-471912b4edd6",
      "createdAt": "2026-07-28T00:29:15.000Z",
      "updatedAt": "2026-07-28T00:29:15.000Z",
      "uid": "35240-c94e804b-3f3d-4d46-b6b3-471912b4edd6"
    }
  ],
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{bearerToken}}",
        "type": "string"
      }
    ]
  },
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://api.ahasend.com"
    }
  ]
}