EmailmoversMyDataHub docs
Browse the docs

Reference / REST reference

Reference

List filter fields

GET /v1/catalogue/filters. Every filterable field of mydatahub.audience/1 with its group, type, operators, value count and default, plus the operators and the dataset list.

Generated from the contractsView as Markdown

GET /v1/catalogue/filters

Every filterable field of mydatahub.audience/1 with its group, type, operators, value count and default, plus the operators and the dataset list. Free and public, cached for 24 hours.

PropertyValue
EndpointGET https://mydatahub.emailmovers.com/v1/catalogue/filters
Operation idlistFilters
CostFree (0 credits)
AccessNo account, key or token needed.
MCP toollist_filters
TagCatalogue

Request

Parameters

NameInTypeRequiredDescription
datasetqueryenum: uk_contacts, ie_contacts, global_contactsnoThe dataset an audience draws from. uk_contacts is live; ie_contacts and global_contacts are listed but not yet served.
MyDataHub-VersionheaderstringnoThe dated API version, pinned per key when left out. Non-breaking changes ship as new dates; the path major changes only for breaking changes, with a 12 month deprecation window.

Example request

curl "https://mydatahub.emailmovers.com/v1/catalogue/filters"

Responses

200: The filter catalogue.

Headers: RateLimit, RateLimit-Policy.

MemberTypeAlways presentDescription
datasetenum: uk_contacts, ie_contacts, global_contactsyesThe dataset an audience draws from. uk_contacts is live; ie_contacts and global_contacts are listed but not yet served.
dataset_versionstringyesThe immutable weekly build a count is bound to, such as 2026-W39. The last 52 stay queryable.
fieldsarray of FilterDimensionyes
fields[].fieldstringyesThe field name, also the dimension slug.
fields[].groupenum: company, site, contact, email, phone, signalyes
fields[].typeenum: enum, text, number, date, geo, hashed_list, boolean, bandyes
fields[].labelstringyes
fields[].descriptionstringyes
fields[].operatorsarray of enum: in, between, gte, lte, matches, within_radius, in_list, sinceyes
fields[].facetbooleanyesUsable in breakdown_by.
fields[].value_countinteger (0 or more) or nullyesDistinct values in this dataset version; null for free text and numbers.
fields[].defaultstring or nullyes
fields[].examplesarray of string or number or booleanyes
fields[].values_urlstring or nullyesWhere to search the values, or null when the field has none to list.
operatorsarray of OperatorInfoyes
operators[].openum: in, between, gte, lte, matches, within_radius, in_list, since, and 3 moreyes
operators[].applies_tostringyes
operators[].descriptionstringyes
datasetsarray of Datasetyes
datasets[].idenum: uk_contacts, ie_contacts, global_contactsyesThe dataset an audience draws from. uk_contacts is live; ie_contacts and global_contacts are listed but not yet served.
datasets[].namestringyes
datasets[].statusenum: live, planned, through_our_teamyeslive is served; planned is not yet served; through_our_team is sold through the bespoke service only.
datasets[].ownerstringyes
datasets[].sourcestringyes
datasets[].licencestringyes
datasets[].refreshstringyes
datasets[].residencystringyes
datasets[].regulatorstringyes
datasets[].warrantystringyes
datasets[].credits_per_recordnumber (0 or more)yes1 for owned UK and Irish data.
datasets[].credits_statusenum: confirmed, proposedyes
datasets[].current_versionstring or nullyes
datasets[].versions_availableinteger (0 or more)yesImmutable weekly versions still queryable (the last 52).

Example response

{
  "dataset": "uk_contacts",
  "dataset_version": "2026-W39",
  "fields": [
    {
      "field": "company.employee_band",
      "group": "company",
      "type": "band",
      "label": "Employee band",
      "description": "Company size in 13 bands, 1-5 to 10000+.",
      "operators": ["in", "between", "gte", "lte"],
      "facet": true,
      "value_count": 14,
      "default": null,
      "examples": ["50-99"],
      "values_url": "/v1/catalogue/filters/company.employee_band/values"
    }
  ],
  "operators": [
    {
      "op": "gte",
      "applies_to": "banded and ranked fields",
      "description": "The value and everything after it in the order (for bands, larger bands)."
    }
  ],
  "datasets": [
    {
      "id": "uk_contacts",
      "name": "UK contacts",
      "status": "live",
      "owner": "Emailmovers Ltd",
      "source": "Emailmovers research; Companies House (OGL v3.0); ONSPD (OGL v3.0)",
      "licence": "12 month multi-use licence; resale prohibited",
      "refresh": "Immutable weekly build every Monday; same-day suppression overlay",
      "residency": "Held in the UK (Google Cloud London)",
      "regulator": "ICO",
      "warranty": "Replacement when hard bounces exceed 10 percent of an order",
      "credits_per_record": 1,
      "credits_status": "confirmed",
      "current_version": "2026-W39",
      "versions_available": 52
    }
  ]
}

Errors

Every error is a problem object with a code and a next_step. Every response carries the RateLimit and RateLimit-Policy headers; see Rate limits.

StatusProblem codesWhen
400invalid-request, idempotency-key-required, unsupported-versionThe request could not be read, or an Idempotency-Key is missing.
422validation-failed, quote-required, dataset-unavailableThe request is not valid. errors lists every problem with a JSON pointer and did_you_mean.
429rate-limitedToo many requests. Wait for Retry-After.
Any other failureinternal-error, service-unavailable, tps-screen-expiredSomething failed on our side (500 internal-error) or the service is briefly unavailable (503 service-unavailable, with Retry-After). Nothing was charged; retry with the same Idempotency-Key. A count, sample, quote or order with telephone in play is also refused with 503 tps-screen-expired, with no Retry-After, while the dataset version's TPS and CTPS screen is more than 28 days old.