---
title: "Who sends this email"
full: true
_openapi:
  method: POST
  toc: []
  structuredData:
    headings: []
    contents:
      - content: "Inspects which third-party email service providers (e.g. Google, Amazon SES, SendGrid, Mailchimp) are authorized to send email for a domain, and who owns the inbound mailbox."
_apiData:
  document: "https://reloop.sh/api/tools/openapi/json"
  operationData: [{"path":"/api/tools/v1/who-sends","method":"post"}]
  parameterList: [{"name":"domain","type":"string","required":true,"description":"The sending domain name or URL to analyze sender permissions for.","location":"body","minLength":1,"maxLength":255,"example":"stripe.com"}]
  responseMap: {"200":{"description":"Response for status 200","schema":{"domain":"send.example.com","resolvedAt":"2026-03-23T10:00:00.000Z","responseTimeMs":0,"verdict":"single_stack","headline":"example_headline","summary":"example_summary","disclaimer":"example_disclaimer","inbox":{"provider":"example_provider","exchanges":["example_exchanges"]},"senders":[{"vendor":"example_vendor","role":"inbox_and_send","confidence":"high","leftover":true,"evidence":[{"type":"spf_include","value":"example_value"}]}],"unnamed":{"ip4":["example_ip4"],"ip6":["example_ip6"],"includes":["example_includes"]},"spf":{"published":true,"qualifier":"example_qualifier","lookupCount":0,"rawRecord":"example_rawRecord"},"nextStep":{"title":"example_title","body":"example_body","href":"example_href"},"subdomainNote":"example_subdomainNote"}},"400":{"description":"Response for status 400","schema":{"message":"Contact already exists","why":"A contact with this email already exists in your organization.","fix":"Use a different email address or update the existing contact instead.","link":"https://reloop.sh/docs/api/contacts"}},"429":{"description":"Response for status 429","schema":{"message":"Contact already exists","why":"A contact with this email already exists in your organization.","fix":"Use a different email address or update the existing contact instead.","link":"https://reloop.sh/docs/api/contacts"}},"500":{"description":"Response for status 500","schema":{"message":"Contact already exists","why":"A contact with this email already exists in your organization.","fix":"Use a different email address or update the existing contact instead.","link":"https://reloop.sh/docs/api/contacts"}}}
  codeSamples: []
---
> For the complete documentation index, see [llms-docs.txt](/llms-docs.txt) or the site index [llms.txt](/llms.txt). Full docs corpus: [llms-full-docs.txt](/llms-full-docs.txt). Prefer markdown URLs (append `.md`) for agent consumption. Product skill: [skill.md](/skill.md).


{/* This file was generated by the OpenAPI doc generator. Do not edit this file directly. Run `bun run generate:api-docs` to regenerate. */}

<APIPage />
