Skip to content
ProspectAPIs

API reference / Email verification

Report what happened when you sent

Written and maintained by The ProspectAPIs team

POST/v1/email/outcomes

POST /v1/email/outcomes is the ProspectAPIs operation reportEmailOutcomes, in the Email verification group of the REST API. Report bounced or delivered for 1 to 100 addresses. A bounce you report makes your later checks of that address come back invalid with reason reported_bounce; bounces reported by two different accounts do the same for every account. A delivered report on a catch-all address raises its score. Only a hash of each address is stored. Free. Cost: free. Send your API key as a Bearer token in the Authorization header.

How this fits with the rest of the email verification API, with worked examples, is in the email verification guide.

Parameters

This operation takes no path or query parameters.

Request body

JSON (EmailOutcomesRequest).

Request body of POST /v1/email/outcomes
FieldTypeDescription
outcomes requiredarray of object
outcomes[].email requiredstring (email)
outcomes[].outcome requiredstring: bounced, delivered
Example body
{
  "outcomes": [
    {
      "email": "jane@example.com",
      "outcome": "bounced"
    }
  ]
}

Responses

Response codes of POST /v1/email/outcomes
StatusMeaning
200How many outcomes were stored.
400The request was invalid (e.g. a bad filter or input); nothing was charged.
401The API key is missing or invalid.

Every error answers with the same JSON body, an error string and sometimes a code; the errors page lists each status and when it happens.

200 response fields

How many outcomes were stored.

Fields of the 200 response
FieldTypeDescription
stored requiredinteger

Code samples

Each sample sends the same request. Set PROSPECTAPIS_KEY in your environment first. Values come from the spec's examples; replace them with your own.

curl
curl -X POST https://api.prospectapis.com/v1/email/outcomes \
  -H "Authorization: Bearer $PROSPECTAPIS_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "outcomes": [ { "email": "jane@example.com", "outcome": "bounced" } ] }'
JavaScript (fetch)
const res = await fetch("https://api.prospectapis.com/v1/email/outcomes", {
  method: "POST",
  headers: { Authorization: `Bearer ${process.env.PROSPECTAPIS_KEY}`, "Content-Type": "application/json" },
  body: JSON.stringify({
    "outcomes": [
      {
        "email": "jane@example.com",
        "outcome": "bounced"
      }
    ]
  }),
});
if (!res.ok) throw new Error(`${res.status}: ${(await res.json().catch(() => ({}))).error ?? res.statusText}`);
const data = await res.json();
console.log(data);
Python (requests)
import os, requests

res = requests.post(
    "https://api.prospectapis.com/v1/email/outcomes",
    headers={"Authorization": f"Bearer {os.environ['PROSPECTAPIS_KEY']}"},
    json={
        "outcomes": [{
                "email": "jane@example.com",
                "outcome": "bounced",
            }],
    },
    timeout=30,
)
res.raise_for_status()
data = res.json()
print(data)

Billing

This call is free: it never spends credits, so you can call it as often as the rate limit allows. Metered calls on the same key report your balance after each response in X-Credits-Remaining, and GET /v1/account shows it at any time.

The email verification guide covers this area end to end. Previous operation: Your email verification stats. Next operation: Find an email address. Every operation, grouped by area, is on the API reference index.

Create a free account to get a key, then run the samples above with your own values (this call acts for real, so use real inputs).

Was this page helpful?