> ## Documentation Index
> Fetch the complete documentation index at: https://docs.meowmail.in/llms.txt
> Use this file to discover all available pages before exploring further.

# Delete one email

> Permanently deletes one email, ahead of its TTL. Irreversible, and there are no backups. Returns 204 with no body.



## OpenAPI

````yaml https://api.meowmail.in/api/v1/openapi.json delete /api/v1/emails/{id}
openapi: 3.1.0
info:
  title: MeowMail API
  version: 1.0.0
  summary: Free disposable email API. Receive-only, no accounts, TTL-expiring inboxes.
  description: >-
    Create throwaway inboxes and read the mail they receive.


    Built for automated testing of signup and verification flows, and for
    privacy tooling.


    **Inboxes are public.** There is no authorization on inbox contents: anyone
    who knows the address can read it. Never use MeowMail for anything you would
    mind a stranger reading, and never for password resets on accounts that
    matter.


    **Mail is ephemeral.** Emails are permanently deleted roughly one hour after
    arrival.


    **Receive-only.** There is no send endpoint and never will be in this API
    version.
  termsOfService: https://docs.meowmail.in/fair-use
  contact:
    name: MeowMail
    url: https://docs.meowmail.in
  license:
    name: Free to use under the fair-use policy
    url: https://docs.meowmail.in/fair-use
servers:
  - url: https://api.meowmail.in
    description: Production
security:
  - bearerAuth: []
  - apiKeyHeader: []
  - {}
tags:
  - name: Meta
    description: Discovery, spec, and health
  - name: Keys
    description: Free self-serve API keys
  - name: Domains
    description: Domains that accept mail
  - name: Inboxes
    description: Create inboxes and read their mail
  - name: Emails
    description: Individual emails and attachments
paths:
  /api/v1/emails/{id}:
    delete:
      tags:
        - Emails
      summary: Delete one email
      description: >-
        Permanently deletes one email, ahead of its TTL. Irreversible, and there
        are no backups. Returns 204 with no body.
      operationId: deleteEmail
      parameters:
        - $ref: '#/components/parameters/EmailId'
      responses:
        '204':
          description: Deleted
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/RateLimited'
components:
  parameters:
    EmailId:
      name: id
      in: path
      required: true
      description: >-
        Email id (UUIDv7 — sorts chronologically, which is what makes the
        cursors work).
      schema:
        type: string
  responses:
    NotFound:
      description: No such resource. Most often the email expired.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    RateLimited:
      description: >-
        Rate limit or daily quota exceeded, or too many long-polls already in
        flight for this key. Honour `retry-after`.
      headers:
        retry-after:
          schema:
            type: integer
          description: Seconds to wait.
        ratelimit-limit:
          schema:
            type: integer
        ratelimit-remaining:
          schema:
            type: integer
        ratelimit-reset:
          schema:
            type: integer
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    Error:
      type: object
      properties:
        error:
          type: object
          properties:
            type:
              type: string
              enum:
                - invalid_request
                - unauthorized
                - key_required
                - not_found
                - rate_limited
                - quota_exceeded
                - too_many_waiters
                - internal_error
              description: Stable machine-readable code. Branch on this, not on `message`.
            message:
              type: string
              description: Human-readable. May be reworded at any time.
            docs:
              type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: '`Authorization: Bearer mm_...`. Omit entirely to use the anonymous tier.'
    apiKeyHeader:
      type: apiKey
      in: header
      name: X-API-Key
      description: Alternative to the Authorization header.

````