# Domains deliverability event ingest

`POST /deliverability/events` · Rivier · domains

Report a delivery event (sent, delivered, deferred, bounced, complained, opened, clicked, unsubscribed). Counted per domain, day and recipient provider; hard bounces and complaints suppress the address; repeated soft bounces suppress by the project's rule.

- Scope: domains:write
- Graphql: Mutation.domainsDeliverabilityEventIngest
- Sdk: domains.deliverabilityEvent.ingest
- Cli: domains deliverability event ingest

## Request body

`application/json`

```json
{
  "type": "object",
  "properties": {
    "domain": {
      "type": "string",
      "minLength": 3,
      "maxLength": 253
    },
    "state": {
      "type": "string",
      "enum": [
        "sent",
        "delivered",
        "deferred",
        "bounced",
        "complained",
        "opened",
        "clicked",
        "unsubscribed"
      ]
    },
    "transport": {
      "type": "string",
      "minLength": 1,
      "maxLength": 40
    },
    "to": {
      "type": "string",
      "maxLength": 320
    },
    "code": {
      "type": "string",
      "maxLength": 40
    },
    "bounceType": {
      "type": "string",
      "enum": [
        "hard",
        "soft"
      ]
    },
    "at": {
      "type": "string",
      "format": "date-time"
    },
    "ref": {
      "type": "string",
      "maxLength": 200
    },
    "ip": {
      "type": "string",
      "maxLength": 45
    }
  },
  "required": [
    "domain",
    "state",
    "transport"
  ],
  "additionalProperties": false
}
```

## Responses

- `200`: Success
- `400`: The request was malformed
- `401`: No valid credential
- `403`: The credential lacks the scope, origin or address
- `429`: Over the key's rate limit; see Retry-After

## Example

```sh
curl -X POST 'https://api.rivier.ai/deliverability/events' \
  -H 'Authorization: Bearer $KEY' \
  -H 'Content-Type: application/json' \
  -d '{
  "domain": "string",
  "state": "sent",
  "transport": "string"
}'
```
