# Email 1.0

Lifecycle: **active**

Release date: **2026-09-10**

Initial public release.

Base URL: `https://email.1spoc.com`

## Downloadable resources

- [OpenAPI JSON](https://devdocs.1spoc.com/docs/email/1-0/openapi.json)
- [OpenAPI YAML](https://devdocs.1spoc.com/docs/email/1-0/openapi.yaml)
- [Postman collection](https://devdocs.1spoc.com/postman/email/1-0/collection.json)
- [Postman environment](https://devdocs.1spoc.com/postman/email/1-0/environment.json)
- [MCP setup](https://devdocs.1spoc.com/mcp-setup)
- [AI documentation index](https://devdocs.1spoc.com/llms.txt)
- [Complete AI documentation](https://devdocs.1spoc.com/llms-full.txt)
- [Node.js SDK](https://devdocs.1spoc.com/sdk/email/1-0/node.zip)
- [Python SDK](https://devdocs.1spoc.com/sdk/email/1-0/python.zip)
- [Java SDK](https://devdocs.1spoc.com/sdk/email/1-0/java.zip)

## Published endpoints

- [GET /ping — Ping the server](https://devdocs.1spoc.com/docs/email/1-0/getping.md) — Ping the server
- [POST /api/user/login — Login as user](https://devdocs.1spoc.com/docs/email/1-0/postapiuserlogin.md) — Login as user
- [POST /api/user/forgot-password — Request password reset](https://devdocs.1spoc.com/docs/email/1-0/postapiuserforgotpassword.md) — Sends a password reset link to the user's email address if the user exists and is not blocked.
- [POST /api/user/refresh — Refresh user access token](https://devdocs.1spoc.com/docs/email/1-0/postapiuserrefresh.md) — Refresh user access token
- [POST /api/user/reset-password — Reset user password](https://devdocs.1spoc.com/docs/email/1-0/postapiuserresetpassword.md) — Resets the user's password using a valid reset token received via email.
- [GET /api/user/self — Get authenticated user's own details](https://devdocs.1spoc.com/docs/email/1-0/getapiuserself.md) — Returns the details of the currently authenticated user.
- [GET /api/user/sending-identities — List sending identities for the authenticated user](https://devdocs.1spoc.com/docs/email/1-0/getapiusersendingidentities.md) — List sending identities for the authenticated user
- [POST /api/user/sending-identities — Create a new sending identity for the authenticated user](https://devdocs.1spoc.com/docs/email/1-0/postapiusersendingidentities.md) — Create a new sending identity for the authenticated user
- [DELETE /api/user/sending-identities/{id} — Delete a sending identity for the authenticated user](https://devdocs.1spoc.com/docs/email/1-0/deleteapiusersendingidentitiesid.md) — Delete a sending identity for the authenticated user
- [GET /api/user/api-key — Get the current API key for the authenticated user](https://devdocs.1spoc.com/docs/email/1-0/getapiuserapikey.md) — Get the current API key for the authenticated user
- [POST /api/user/api-key/rotate — Generate or rotate the API key for the authenticated user](https://devdocs.1spoc.com/docs/email/1-0/postapiuserapikeyrotate.md) — Generate or rotate the API key for the authenticated user
- [GET /api/user/smtp-settings — Get SMTP settings for the authenticated user](https://devdocs.1spoc.com/docs/email/1-0/getapiusersmtpsettings.md) — Get SMTP settings for the authenticated user
- [PUT /api/user/smtp-settings — Create or update SMTP settings for the authenticated user](https://devdocs.1spoc.com/docs/email/1-0/putapiusersmtpsettings.md) — Create or update SMTP settings for the authenticated user
- [GET /api/user/groups — List groups for the authenticated user](https://devdocs.1spoc.com/docs/email/1-0/getapiusergroups.md) — List groups for the authenticated user
- [POST /api/user/groups — Create a new group for the authenticated user](https://devdocs.1spoc.com/docs/email/1-0/postapiusergroups.md) — Create a new group for the authenticated user
- [POST /api/user/groups/{groupId}/contacts — Add a contact to a group for the authenticated user](https://devdocs.1spoc.com/docs/email/1-0/postapiusergroupsgroupidcontacts.md) — Add a contact to a group for the authenticated user
- [PUT /api/user/groups/{groupId}/contacts/{contactId} — Update contact details (name/status) for a contact within a group for the authenticated user](https://devdocs.1spoc.com/docs/email/1-0/putapiusergroupsgroupidcontactscontactid.md) — Update contact details (name/status) for a contact within a group for the authenticated user
- [DELETE /api/user/groups/{groupId}/contacts/{contactId} — Remove a contact from a group for the authenticated user](https://devdocs.1spoc.com/docs/email/1-0/deleteapiusergroupsgroupidcontactscontactid.md) — Remove a contact from a group for the authenticated user
- [GET /api/user/templates — List email templates for the authenticated user](https://devdocs.1spoc.com/docs/email/1-0/getapiusertemplates.md) — List email templates for the authenticated user
- [POST /api/user/templates — Create a new email template for the authenticated user](https://devdocs.1spoc.com/docs/email/1-0/postapiusertemplates.md) — Create a new email template for the authenticated user
- [GET /api/user/templates/{id} — Get a single email template for the authenticated user](https://devdocs.1spoc.com/docs/email/1-0/getapiusertemplatesid.md) — Get a single email template for the authenticated user
- [PUT /api/user/templates/{id} — Update an existing email template for the authenticated user](https://devdocs.1spoc.com/docs/email/1-0/putapiusertemplatesid.md) — Update an existing email template for the authenticated user
- [DELETE /api/user/templates/{id} — Archive (soft delete) an email template for the authenticated user](https://devdocs.1spoc.com/docs/email/1-0/deleteapiusertemplatesid.md) — Archive (soft delete) an email template for the authenticated user
- [POST /api/user/templates/{id}/get-pre-signed-url — Get pre-signed URL for template file upload](https://devdocs.1spoc.com/docs/email/1-0/postapiusertemplatesidgetpresignedurl.md) — Generates a pre-signed URL for uploading a file attachment to a specific template. The template must belong to the authenticated user. A unique file key will be generated automatically and stored as a template attachment.
- [POST /api/user/templates/{id}/trigger — Trigger template attachment upload completion](https://devdocs.1spoc.com/docs/email/1-0/postapiusertemplatesidtrigger.md) — Marks template attachments as uploaded after files have been successfully uploaded to S3 using the pre-signed URLs. The template must belong to the authenticated user.
- [GET /api/user/templates/{id}/attachments — List all template attachments](https://devdocs.1spoc.com/docs/email/1-0/getapiusertemplatesidattachments.md) — Retrieves all attachments for a specific template. The template must belong to the authenticated user. Returns attachments ordered by creation date (newest first), each with a pre-signed read URL.
- [DELETE /api/user/templates/{id}/attachments/{attachmentId} — Delete a template attachment](https://devdocs.1spoc.com/docs/email/1-0/deleteapiusertemplatesidattachmentsattachmentid.md) — Deletes a template attachment by ID. The attachment must belong to the specified template, and the template must belong to the authenticated user. This will also delete the file from S3.
- [GET /api/user/groups/{id} — Get details of a group for the authenticated user](https://devdocs.1spoc.com/docs/email/1-0/getapiusergroupsid.md) — Get details of a group for the authenticated user
- [PUT /api/user/groups/{id} — Update an existing group for the authenticated user](https://devdocs.1spoc.com/docs/email/1-0/putapiusergroupsid.md) — Update an existing group for the authenticated user
- [DELETE /api/user/groups/{id} — Delete a group for the authenticated user](https://devdocs.1spoc.com/docs/email/1-0/deleteapiusergroupsid.md) — Delete a group for the authenticated user
- [POST /api/transactional-email/send — Send a single transactional email](https://devdocs.1spoc.com/docs/email/1-0/postapitransactionalemailsend.md) — Send a transactional email to a single recipient using an API key.
- [POST /api/user/imports/{groupId} — Create a new import job for the authenticated user](https://devdocs.1spoc.com/docs/email/1-0/postapiuserimportsgroupid.md) — Creates an import job for a specific group and returns a presigned URL for uploading a CSV file. The file must be a CSV file.
- [POST /api/user/imports/{groupId}/{id}/trigger — Trigger an import job for processing](https://devdocs.1spoc.com/docs/email/1-0/postapiuserimportsgroupididtrigger.md) — Triggers a pending import job to start processing. The import job must be in PENDING status. Once triggered, the job status will change to QUEUED and will be processed by the worker.
- [GET /api/user/imports/{groupId}/all — List all import jobs for a specific group](https://devdocs.1spoc.com/docs/email/1-0/getapiuserimportsgroupidall.md) — Retrieves a paginated list of all import jobs for a specific group created by the authenticated user. Supports search, sorting, and pagination. Search is performed on the original_name field (case-insensitive).
- [GET /api/user/campaigns — List email campaigns for the authenticated user](https://devdocs.1spoc.com/docs/email/1-0/getapiusercampaigns.md) — Retrieves a paginated list of campaigns for the authenticated user. Supports search and sorting.
- [POST /api/user/campaigns — Create a new email campaign for the authenticated user](https://devdocs.1spoc.com/docs/email/1-0/postapiusercampaigns.md) — Creates a new email campaign in DRAFT status. The from_email domain must match a verified (ACTIVE) sending identity for the user. Target groups must belong to the user.
- [GET /api/user/campaigns/{id} — Get a single email campaign for the authenticated user](https://devdocs.1spoc.com/docs/email/1-0/getapiusercampaignsid.md) — Retrieves detailed information about a specific campaign by ID. The campaign must belong to the authenticated user and not be deleted.
- [PUT /api/user/campaigns/{id} — Update an existing email campaign for the authenticated user](https://devdocs.1spoc.com/docs/email/1-0/putapiusercampaignsid.md) — Updates an existing campaign. All fields are optional - only provided fields will be updated. The campaign must be in DRAFT or SCHEDULED status to be edited. The from_email domain must match a verified (ACTIVE) sending identity for the user. Target groups must belong to the user.
- [DELETE /api/user/campaigns/{id} — Delete (soft delete) an email campaign for the authenticated user](https://devdocs.1spoc.com/docs/email/1-0/deleteapiusercampaignsid.md) — Soft deletes a campaign by setting is_deleted to true. The campaign will no longer appear in list queries but data is preserved.
- [GET /api/user/campaigns/{id}/analytics — Get campaign analytics for the authenticated user](https://devdocs.1spoc.com/docs/email/1-0/getapiusercampaignsidanalytics.md) — Returns delivery status counts and calculated rates for a specific campaign. Queued emails are excluded.
- [GET /api/user/campaigns/{id}/link-analytics — Get campaign link analytics for the authenticated user](https://devdocs.1spoc.com/docs/email/1-0/getapiusercampaignsidlinkanalytics.md) — Returns a paginated list of tracked links for a campaign with click counts. Supports search by URL or token.
- [POST /api/user/files/get-pre-signed-url — Get pre-signed URL for user file upload](https://devdocs.1spoc.com/docs/email/1-0/postapiuserfilesgetpresignedurl.md) — Generates a pre-signed URL for uploading a file to S3. The file name and type are required. A unique file key will be generated automatically.
- [GET /api/user/mis-report — Get MIS report for the authenticated user](https://devdocs.1spoc.com/docs/email/1-0/getapiusermisreport.md) — Retrieves a paginated MIS report with email metrics aggregated by date. Automatically filters by the authenticated user's ID. Users can only see their own data.
- [GET /api/user/delivery-log-report — Get delivery log report for the authenticated user](https://devdocs.1spoc.com/docs/email/1-0/getapiuserdeliverylogreport.md) — Retrieves a paginated delivery log report for the authenticated user. Includes email, status, delivery time, and submission time.
- [GET /api/user/recharge-logs — Get user recharge logs (paginated)](https://devdocs.1spoc.com/docs/email/1-0/getapiuserrechargelogs.md) — Retrieves a paginated list of recharge logs for the authenticated user. Supports search and sort by created_at or credit_amount.

## Guidance for AI assistants

Use the linked endpoint Markdown pages as the primary source for request fields, authentication, examples, response schemas, status codes, and generated integration code. Do not invent undocumented parameters.
