Each record’s ip_address now includes an email_service block when the source IP matches a known mail provider in our research database. See the agg_reports/:id endpoint description for the block shape and semantics — both endpoints return the same enrichment.

Supported Formats

JSON

Errors

Code Description
401 Unauthorized
404 Not Found
500 Server crashed for some reason

Examples

{
  "records": [
    {
      "id": 1,
      "count": 1,
      "disposition": "none",
      "dkim_status": "pass",
      "spf_status": "pass",
      "reason": "",
      "org_name": "google.com",
      "header_from": "twlnet.com",
      "dmarc_compliance": "Compliant",
      "is_in_spf_record": true,
      "created_at": "2019-02-10T18:42:17.000Z",
      "updated_at": "2019-02-10T18:42:17.000Z",
      "auth_results": [
        {
          "id": 1,
          "type": "Dkim",
          "domain": "twlnet.com",
          "result": "pass",
          "selector": "201810",
          "created_at": "2019-02-10T18:42:17.000Z",
          "updated_at": "2019-02-10T18:42:17.000Z"
        },
        {
          "id": 2,
          "type": "Spf",
          "domain": "twlnet.com",
          "result": "pass",
          "selector": "",
          "created_at": "2019-02-10T18:42:17.000Z",
          "updated_at": "2019-02-10T18:42:17.000Z"
        }
      ],
      "ip_address": {
        "id": 3,
        "sane_source_ip": "87.106.127.28",
        "blacklisted": 0,
        "ptr": "ec2-52-30-166-6.eu-west-1.compute.amazonaws.com",
        "country": "de",
        "created_at": "2019-02-09T11:03:55.000Z",
        "updated_at": "2026-04-15T08:21:33.000Z",
        "email_service": {
          "id": 1042,
          "name": "Google",
          "ptr_domain": "google.com",
          "service_type": "sender",
          "supports_dkim": true,
          "supports_spf": true,
          "supports_dmarc": true,
          "dkim_setup_url": "https://support.google.com/a/answer/180504",
          "spf_setup_url": "https://support.google.com/a/answer/33786",
          "data_source": "research_database",
          "last_updated": "2026-04-15T08:21:33.000Z"
        }
      }
    }
  ],
  "meta": {
    "total_reports": 8421,
    "current_page": 1,
    "per_page": 25,
    "total_pages": 12
  }
}

Params

Param name Description
q
optional

Params for Ransack Search

Validations:

  • Must be a Hash

q[agg_report_date_begin_gteq]
optional

Search by start date of agg report format: “mm-dd-yyyy”

Validations:

  • Must be a String

q[agg_report_date_end_gteq]
optional

Search by end date of agg report format: “mm-dd-yyyy”

Validations:

  • Must be a String

q[agg_report_org_name_eq]
optional

Search by search by reporter

Validations:

  • Must be a String

q[ip_address_source_ip_eq]
optional

Search by source ip

Validations:

  • Must be a String

q[ip_address_ptr_eq]
optional

Search by PTR

Validations:

  • Must be a String

q[ip_address_country_eq]
optional

Search by country alpha2 code e.g. “us” for “United States of America”

Validations:

  • Must be a String

q[count_eq]
optional

Search by for Volume

Validations:

  • Must be a number.

q[disposition_eq]
optional

Search by Applied Policy

Validations:

  • Must be one of: none, quarantine, reject.

q[spf_alignment_eq]
optional

Search by SPF Alignment: true for Aligned, false for Unaligned

Validations:

  • Must be one of: true, false.

q[spf_status_eq]
optional

Search by SPF

Validations:

  • Must be one of: pass, fail.

q[spf_result_eq]
optional

Search by SPF Auth Result

Validations:

  • Must be one of: none, neutral, pass, fail, softfail.

q[spf_domain_eq]
optional

Search by SPF Domain

Validations:

  • Must be a String

q[spf_domain_eq]
optional

Search by SPF Auth Scope

Validations:

  • Must be a String

q[reason_eq]
optional

Search by Policy Override Reason

Validations:

  • Must be one of: forwarded, sampled_out, trusted_forwarder, mailing_list, local_policy, policy_test_mode, other.

q[dkim_alignment_eq]
optional

Search by DKIM Alignment: true for Aligned, false for Unaligned

Validations:

  • Must be one of: true, false.

q[dkim_status_eq]
optional

Search by DKIM

Validations:

  • Must be one of: pass, fail.

q[dkims_result_eq]
optional

Search by DKIM Auth result

Validations:

  • Must be one of: none, neutral, pass, fail, softfail.

q[dkims_domain_eq]
optional

Search by DKIM Domain

Validations:

  • Must be a String

q[dkims_selector_eq]
optional

Search by DKIM selector

Validations:

  • Must be a String

q[dmarc_compliance_eq]
optional

Search by DMARC Compliance: 0 for complaint, 1 for non compliant and 2 for forwarded

Validations:

  • Must be one of: 0, 1, 2.

page
optional

Page Number

Validations:

  • Must be a String

per
optional

Entries per page.

Validations:

  • Must be a String