{
  "name": "courier-owl",
  "legal_entity": "YEMYEL (OPC) PRIVATE LIMITED",
  "tagline": "Email infrastructure for products and AI agents - Gmail & Microsoft 365.",
  "summary": "Connect any Gmail or Microsoft 365 mailbox through a white-label OAuth link. courier-owl watches the mailbox, stores every message, POSTs an HMAC-signed webhook the moment new mail lands, and exposes one REST API to read, search, send, and reply in-thread. Multi-tenant: one api_key per organization, mailboxes addressed by your own user ids.",
  "audiences": {
    "products": "Embed user-mailbox features in your app: connect links, webhooks, read/send API.",
    "ai_agents": "Give an agent a mailbox: push events instead of polling, clean text for the model, idempotent sends, RFC-correct in-thread replies."
  },
  "providers": [
    "google",
    "microsoft"
  ],
  "api": {
    "base_url": "https://api.courierowl.io",
    "auth": {
      "scheme": "bearer",
      "header": "Authorization: Bearer <api_key>",
      "key_prefix": "cok_"
    },
    "openapi": "https://courierowl.io/openapi.json",
    "envelope": "{ request_id, data, next_cursor? }",
    "rate_limits_per_minute": {
      "sandbox": 120,
      "pro": 1200,
      "byo": 1200
    }
  },
  "capabilities": [
    "White-label OAuth connect links for Gmail and Microsoft 365 (multi-tenant grants)",
    "HMAC-SHA256-signed webhooks with retries, dead-letter queues, and stable delivery ids",
    "Full-mailbox backfill on connect; ~10ms indexed list reads once synced",
    "Read API: list, search (full-text + field filters), delta sync via ?since={history_id}",
    "Clean text extraction: GET message ?clean=true strips HTML and quoted history",
    "Send, reply (reply_to_message_id sets In-Reply-To/References so replies thread for the recipient), drafts, folders, message actions",
    "Scheduled send via send_at (epoch or ISO-8601); composes with replies",
    "Idempotency-Key on send: retries replay the original result, never double-send",
    "Bounce detection (message.bounce_detected), reply detection (thread.replied)",
    "Stats and usage endpoints; per-plan rate limiting",
    "GDPR purge: DELETE /v1/grants/{id}?purge=true erases stored mail, index, and tokens"
  ],
  "webhooks": {
    "signature_header": "X-CourierOwl-Signature",
    "scheme": "HMAC-SHA256 hex of the raw request body with your org webhook_secret",
    "delivery_id_header": "X-CourierOwl-Delivery-Id",
    "events": [
      "message.created",
      "message.updated",
      "message.bounce_detected",
      "thread.replied",
      "mailbox.connected",
      "mailbox.synced",
      "mailbox.disconnected"
    ]
  },
  "pricing": {
    "currency": "USD",
    "model": "per connected mailbox; subscription quantity follows active mailboxes, prorated",
    "plans": [
      {
        "id": "sandbox",
        "price_per_mailbox_month": 0,
        "mailbox_limit": 5,
        "notes": "Free for building and testing. Full API and webhooks. Default for new workspaces."
      },
      {
        "id": "pro",
        "price_per_mailbox_month": 3.5,
        "mailbox_limit": null,
        "notes": "Runs on courier-owl's Google-verified OAuth app. $1.50 maintenance + $2.00 CaaS compliance fee; usage must follow the Google API Services User Data Policy (Limited Use)."
      },
      {
        "id": "byo",
        "price_per_mailbox_month": 1.5,
        "mailbox_limit": null,
        "notes": "Bring your own Google OAuth client (you own its Google verification). Setup guide: https://courierowl.io/docs#byo"
      }
    ]
  },
  "access": {
    "signup": "https://courierowl.io/signup",
    "status": "invite-only private beta; sandbox is free once invited",
    "request_invite": {
      "how": "POST JSON to the endpoint below (agents welcome), use the form on the homepage, or email us",
      "endpoint": "https://api.courierowl.io/auth/request-invite",
      "body": {
        "email": "you@company.com",
        "name": "optional",
        "use_case": "what you are building"
      },
      "email": "nbr.pvt@gmail.com"
    }
  },
  "links": {
    "site": "https://courierowl.io",
    "docs": "https://courierowl.io/docs",
    "openapi": "https://courierowl.io/openapi.json",
    "agents": "https://courierowl.io/agents",
    "pricing": "https://courierowl.io/pricing",
    "status": "https://courierowl.io/status",
    "privacy": "https://courierowl.io/privacy",
    "terms": "https://courierowl.io/terms",
    "acceptable_use": "https://courierowl.io/aup",
    "dpa": "https://courierowl.io/dpa",
    "data_retention": "https://courierowl.io/retention"
  },
  "views": {
    "human": "https://courierowl.io/",
    "llm": "https://courierowl.io/llm",
    "note": "Two views of the same landing page: /llm is this document and nothing else; / is the visual page (which links here via 'Are you an LLM?')."
  },
  "machine_readable": {
    "llm_page": "https://courierowl.io/llm",
    "product_json": "https://courierowl.io/product.json",
    "llms_txt": "https://courierowl.io/llms.txt",
    "openapi": "https://courierowl.io/openapi.json",
    "content_negotiation": "GET /, /agents, or /pricing with 'Accept: application/json' (or an agent user-agent, or ?format=json) returns this document instead of HTML. ?format=html forces the visual page."
  },
  "contact": "nbr.pvt@gmail.com"
}
