MyDataHub
Server Details
UK B2B contact counts, quotes and lists, by Emailmovers
- Status
- Healthy
- Uptime
- 100.0% over the last 24 hours
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Score is being calculated.
Available Tools
34 toolsavailable_selection_categoriesDeprecated: filter categoriesRead-onlyIdempotentInspect
Deprecated: lists the filter categories. Use list_filters instead. It returns every field by name, such as company.employee_band, with its type, operators and value count. It stops working 12 months after the new tools launch, after three emailed notices; https://emailmovers.com/mydatahub/docs/migrate maps every call. Lawful basis is UK GDPR Article 6(1)(f) legitimate interests; email audiences include corporate subscribers only by default (PECR), so sole traders and ordinary partnerships are left out unless the toggle is changed.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
available_selection_valuesDeprecated: filter valuesRead-onlyIdempotentInspect
Deprecated: lists the values of one filter category by numeric id. Use search_filter_values instead. It takes the field name and search text and returns codes with contact and company counts. It stops working 12 months after the new tools launch, after three emailed notices; https://emailmovers.com/mydatahub/docs/migrate maps every call. Lawful basis is UK GDPR Article 6(1)(f) legitimate interests; email audiences include corporate subscribers only by default (PECR), so sole traders and ordinary partnerships are left out unless the toggle is changed.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
check_suppressionCheck suppressionRead-onlyIdempotentInspect
Checks the suppression status of up to 1,000 delivered records by record id, as of now, and names the lists that suppress each. Use it before every send, because objections reach records after delivery. Free; it needs suppressions:read. Leave suppressed records out of the send, and call report_objection when someone objects. Lawful basis is UK GDPR Article 6(1)(f) legitimate interests; email audiences include corporate subscribers only by default (PECR), so sole traders and ordinary partnerships are left out unless the toggle is changed.
| Name | Required | Description | Default |
|---|---|---|---|
| record_ids | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| results | Yes | |
| checked_at | Yes |
clear_searchDeprecated: clear the countIdempotentInspect
Deprecated: clears the filters held in the server session. Use count_audience instead. There is nothing to clear: every count_audience call carries its own audience. It stops working 12 months after the new tools launch, after three emailed notices; https://emailmovers.com/mydatahub/docs/migrate maps every call. Lawful basis is UK GDPR Article 6(1)(f) legitimate interests; email audiences include corporate subscribers only by default (PECR), so sole traders and ordinary partnerships are left out unless the toggle is changed.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
compile_audienceCompile a briefRead-onlyIdempotentInspect
Compiles a plain English brief, such as 300 finance directors at law firms in Manchester, into an audience definition with a one-sentence readback, editable chips and any questions to answer first. Use it first for a request in words, read the readback to the user and settle the questions before counting. Words that match no filter come back in unrecognised, never guessed. Free and needs no account; pass the audience to count_audience next. Lawful basis is UK GDPR Article 6(1)(f) legitimate interests; email audiences include corporate subscribers only by default (PECR), so sole traders and ordinary partnerships are left out unless the toggle is changed.
| Name | Required | Description | Default |
|---|---|---|---|
| brief | Yes | A plain English brief, such as "300 finance directors at law firms in Manchester". | |
| dataset | No | The dataset an audience draws from. uk_contacts is live; ie_contacts and global_contacts are listed but not yet served. |
Output Schema
| Name | Required | Description |
|---|---|---|
| chips | Yes | |
| audience | Yes | |
| quantity | Yes | A quantity named in the brief, such as 300, for quote_order limit. |
| readback | Yes | The audience in one sentence, to confirm with the person. |
| questions | Yes | |
| unrecognised | Yes | Words of the brief that matched no filter, shown rather than guessed. |
count_audienceCount an audienceRead-onlyIdempotentInspect
Counts UK contacts and companies matching an audience, inline or a saved aud_ id, and returns Total, New to you and Emailable, up to three breakdowns, quality, the compliance summary, a price estimate and a count id. Use it whenever a filter changes, and before preview_records or quote_order, which both take the count id. Free and needs no account; anonymous and trial callers see counts under 100 and breakdown cells rounded to the nearest 5 (disclosure says which), and exact small counts need a paid plan. It returns no contact details, and over MCP a cross-tab holds at most 200 cells (truncated true; GET /v1/counts/{id} has the rest). Lawful basis is UK GDPR Article 6(1)(f) legitimate interests; email audiences include corporate subscribers only by default (PECR), so sole traders and ordinary partnerships are left out unless the toggle is changed.
| Name | Required | Description | Default |
|---|---|---|---|
| level | No | contact (the default) or company. Contacts and companies come back together either way. | contact |
| audience | Yes | ||
| breakdown_by | No | Up to three fields to break the count down by, each once, such as industry by seniority by region. Returns the top 50 cells per field plus other. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | Format: a count id: cnt_ followed by 20 base32 characters (A to Z and 2 to 7), such as cnt_7K2PQ4MAXN3R6TBY5WDZ. |
| plan | No | |
| as_of | No | The date the dataset version was built, for as-of statements. |
| level | No | contact (the default) or company. Contacts and companies come back together either way. |
| views | No | |
| current | No | On a replay: the same audience on the current dataset version. |
| dataset | Yes | The dataset an audience draws from. uk_contacts is live; ie_contacts and global_contacts are listed but not yet served. |
| premium | Yes | Premium: the contacts of all_records that are premium records (contact.premium true). At launch, a premium record is in the premium export of a stated date. Null when the dataset version carries no premium data, or withheld when the premium records are at a single company and the caller has no account; premium_note says which. |
| quality | Yes | |
| contacts | Yes | Total: every matching contact. |
| crosstab | No | |
| defaults | Yes | Every default with the number behind its toggle: dissolved and insolvent, generic emails, individual subscribers, TPS and CTPS registered. |
| estimate | Yes | |
| warnings | No | |
| companies | Yes | |
| emailable | Yes | A named email scoring 70 or more at a corporate subscriber. |
| breakdowns | Yes | |
| created_at | No | |
| disclosure | Yes | |
| expires_at | Yes | The id replays until then (12 months). |
| new_to_you | Yes | Excludes your earlier orders and CRM overlap; null when signed out. |
| all_records | Yes | All records: every matching contact with the audience's top-level premium filters taken out (a premium filter inside any or not stays), so the premium figure always has the full figure beside it. The same as contacts when the audience has no premium filter. |
| premium_note | Yes | What premium means on this dataset version, or why premium is null: no premium data on the version, or withheld because the premium records are at a single company. |
| removed_since | No | On a replay: records since removed by objections and erasure. |
| expanded_terms | No | Every title a matches filter covered, with a count per term. |
| dataset_version | Yes | The immutable weekly build a count is bound to, such as 2026-W39. The last 52 stay queryable. |
| compliance_summary | Yes | |
| credits_per_record | Yes | Credits, to one decimal place: whole at 1 credit a record, fractional only where a rule is (0.1 company-only, 1.8 outright, both proposed). |
| effective_audience | No | The definition after defaults and bundles, as hashed into the id. |
| engine_rules_version | Yes | The engine rules (title expansion, defaults, geography sets) the count ran under; part of what the count id hashes, such as 2026.09.1. |
create_data_extractDeprecated: create an orderInspect
Deprecated: spent credits on a saved list when the model set a confirmation flag, and no longer does. Use quote_order, then create_order instead. The flag is ignored, since a flag set by a model is never consent: the call makes a machine quote for the list, and the user confirms the spend in a form or on mydatahub.emailmovers.com, or an agent key covers it within its limits; otherwise nothing is charged and it returns the approval_url. It stops working 12 months after the new tools launch, after three emailed notices; https://emailmovers.com/mydatahub/docs/migrate maps every call. Lawful basis is UK GDPR Article 6(1)(f) legitimate interests; email audiences include corporate subscribers only by default (PECR), so sole traders and ordinary partnerships are left out unless the toggle is changed.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
create_orderCreate an order (spends credits)IdempotentInspect
Spends 1 credit per complete UK record against a live machine quote from quote_order, and queues the order. It needs the quote_id and an idempotency_key to reuse on any retry, so a retry never charges twice; a flag set by a model is never consent. Where the host supports elicitation the user confirms the spend in a form or on mydatahub.emailmovers.com; otherwise an agent key must cover it within its per-order cap and monthly budget. If neither applies nothing is charged: the result is a confirmation-required error with an approval_url to give the user, so keep the quote_id; a short balance returns a top_up_url. Call get_order until the status is ready, then fetch_order_records. Lawful basis is UK GDPR Article 6(1)(f) legitimate interests; email audiences include corporate subscribers only by default (PECR), so sole traders and ordinary partnerships are left out unless the toggle is changed.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| delivery | No | api (fetch records), csv (signed download) and google_sheets. Default api. | |
| quote_id | Yes | A live machine quote from quote_order. Without one nothing is charged. | |
| idempotency_key | Yes | Any unique string, such as a V4 UUID. Reuse it when retrying the same order so it is never charged twice; a different order needs a new key. | |
| confirmation_token | No | The token the approval page on mydatahub.emailmovers.com returns once the signed-in person approves. It is bound to that person (their sub), this spend (the machine quote_id, or the enrichment or push) and an expiry no later than the quote's, and it is redeemable once. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | Format: an order id: ord_ followed by a 26 character ULID in upper case Crockford base32, such as ord_01JB4N9S3W2X6Y7Z8A1B2C3D4E. |
| name | No | |
| status | Yes | queued, building, verifying, ready; failed if processing failed; cancelled (only while queued). |
| failure | No | |
| licence | Yes | |
| records | Yes | |
| cost_gbp | Yes | The charge in GBP excluding VAT at your plan's rate. |
| count_id | Yes | The count the machine quote was priced from. |
| delivery | No | |
| quote_id | Yes | The machine quote the order settled. |
| ready_at | No | |
| buyer_kit | No | |
| field_set | No | |
| created_at | No | |
| receipt_url | No | A path on https://mydatahub.emailmovers.com starting /v1/. Resolve it against the origin (RFC 3986), not by appending it to the server URL. |
| records_url | Yes | A path on https://mydatahub.emailmovers.com starting /v1/. Resolve it against the origin (RFC 3986), not by appending it to the server URL. |
| confirmed_by | Yes | |
| download_url | No | 302 to a single-use signed URL that lives 5 minutes. |
| verification | No | The real-time check at delivery, such as 4,102 checked, 4,071 passed. |
| credits_charged | Yes | Credits, to one decimal place: whole at 1 credit a record, fractional only where a rule is (0.1 company-only, 1.8 outright, both proposed). |
| dataset_version | No | The immutable weekly build a count is bound to, such as 2026-W39. The last 52 stay queryable. |
| credits_remaining | Yes | The balance right after this order was charged. |
| validation_report | No | Present once the order is ready. |
| licence_expires_at | Yes | When the licence ends; null for outright ownership. |
create_searchDeprecated: build a countIdempotentInspect
Deprecated: adds filters to a count held in the server session. Use compile_audience, then count_audience instead. count_audience takes the whole audience definition in one call, so there is no session state to build up, and compile_audience turns a brief into that definition. It stops working 12 months after the new tools launch, after three emailed notices; https://emailmovers.com/mydatahub/docs/migrate maps every call. Lawful basis is UK GDPR Article 6(1)(f) legitimate interests; email audiences include corporate subscribers only by default (PECR), so sole traders and ordinary partnerships are left out unless the toggle is changed.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
enrich_contactEnrich a contact (spends credits)IdempotentInspect
Returns the full record for one known person, matched by email or by name with a company name, number or domain. It spends 1 credit only on a confident match, and 0 on no match or when you already hold the record under licence, so a repeat never charges twice. Like create_order it needs the user's confirmation (a form, or the confirmation_token from an approval_url) or an agent key whose allowed_tools include enrich_contact within its per-order cap and monthly budget; otherwise nothing is charged and it returns confirmation-required or agent-budget-exceeded. It needs enrich:write; use it for a single named person, and the result gives credits_charged and the balance left. Lawful basis is UK GDPR Article 6(1)(f) legitimate interests; email audiences include corporate subscribers only by default (PECR), so sole traders and ordinary partnerships are left out unless the toggle is changed.
| Name | Required | Description | Default |
|---|---|---|---|
| No | |||
| domain | No | ||
| last_name | No | ||
| first_name | No | ||
| company_name | No | ||
| company_number | No | Eight characters in upper case, such as 05046417 or SC123456. | |
| confirmation_token | No | The token the approval page on mydatahub.emailmovers.com returns once the signed-in person approves. It is bound to that person (their sub), this spend (the machine quote_id, or the enrichment or push) and an expiry no later than the quote's, and it is redeemable once. |
Output Schema
| Name | Required | Description |
|---|---|---|
| record | Yes | |
| matched | Yes | |
| cost_gbp | Yes | Pounds sterling excluding VAT, to two decimal places. |
| credits_charged | Yes | 1 on a confident match, otherwise 0. |
| already_licensed | Yes | True when you already hold the record, so it costs 0. |
| match_confidence | Yes | |
| credits_remaining | Yes | Credits, to one decimal place: whole at 1 credit a record, fractional only where a rule is (0.1 company-only, 1.8 outright, both proposed). |
| licence_expires_at | Yes |
expand_job_titlesExpand job titlesRead-onlyIdempotentInspect
Expands title keywords into every matching title (plurals, department synonyms, ampersands, abbreviations such as CEO), each with a count, or shows what a bundle such as sdm resolves to. Use it before counting so the user can see and edit which titles a keyword covers; nothing is expanded silently. Free and needs no account. Put the returned filter into the audience, then call count_audience. Lawful basis is UK GDPR Article 6(1)(f) legitimate interests; email audiences include corporate subscribers only by default (PECR), so sole traders and ordinary partnerships are left out unless the toggle is changed.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | contains (the default) matches titles containing a term, starts_with matches titles beginning with it, exact takes verbatim titles with no expansion. | |
| terms | No | Title keywords to expand, such as marketing manager. | |
| bundle | No | A title bundle to show: sdm, manager_and_above or owner_managed. | |
| expand | No | Expansion sets to apply, each once. Left out, the four default sets apply. | |
| dataset | No | The dataset an audience draws from. uk_contacts is live; ie_contacts and global_contacts are listed but not yet served. |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | Yes | contains (the default) matches titles containing a term, starts_with matches titles beginning with it, exact takes verbatim titles with no expansion. |
| terms | Yes | |
| bundle | Yes | |
| expand | Yes | |
| filter | Yes | A ready matches filter for the terms, or null for a bundle. |
| disclosure | Yes | |
| total_contacts | Yes | |
| dataset_version | Yes | The immutable weekly build a count is bound to, such as 2026-W39. The last 52 stay queryable. |
fetch_order_recordsFetch order recordsRead-onlyIdempotentInspect
Returns a page of an order's delivered records (50 by default, up to 100) with the licence block on every page, as JSON or, on request, as CSV. Pages stay under about 8,000 tokens, with approx_tokens on each; pass next_cursor to continue. Fetching again under licence costs 0 credits; it needs records:read. Call check_suppression before any send, and get_compliance_receipt for proof of screening. Lawful basis is UK GDPR Article 6(1)(f) legitimate interests; email audiences include corporate subscribers only by default (PECR), so sole traders and ordinary partnerships are left out unless the toggle is changed.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Records per page, 1 to 100 over MCP so a result stays under about 8,000 tokens. Default 50. | |
| cursor | No | An opaque cursor from next_cursor. Pass it back unchanged. | |
| fields | No | Columns to return; default the order's field set. | |
| format | No | json (default) or csv. | json |
| order_id | Yes | The order whose records to fetch. It must be ready. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_accountAccount and balanceRead-onlyIdempotentInspect
Returns the organisation's credit balance by source, plan, per-action prices and rate limit, and for an agent key its monthly budget and per-order cap. Use it before quoting a large order, or when a spend is refused, to see what remains. Free; it needs a token with account:read. Top-ups happen on mydatahub.emailmovers.com, never inside a tool. Lawful basis is UK GDPR Article 6(1)(f) legitimate interests; email audiences include corporate subscribers only by default (PECR), so sole traders and ordinary partnerships are left out unless the toggle is changed.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| key | Yes | The calling key and, for an agent key, its budget; null for a person. |
| mode | Yes | live keys (mdh_live_) spend real credits; test keys (mdh_test_) return synthetic data and never charge. |
| plan | Yes | |
| user | Yes | The signed-in person; null when the caller is an API key. |
| prices | Yes | What each action costs in credits. |
| balance | Yes | Credits by source. |
| agreements | Yes | The Data Licence and Sharing Agreement (accepted with every order, or with an agent key that orders on its own) and the Article 28 DPA (accepted with the first suppression list). |
| rate_limit | Yes | |
| organisation | Yes | |
| gbp_per_credit | Yes | Your plan's price per credit, excluding VAT. |
| account_manager | Yes | The named person behind Talk to us. |
get_compliance_receiptGet a compliance receiptRead-onlyIdempotentInspect
Returns an order's signed compliance receipt: an ES256 JWS with its decoded claims and a PDF link, covering records delivered, suppression removals, subscriber classes, TPS screening, Article 14 status, the licence and the file hash. Use it to prove to the user, a colleague or another agent that a list is licensed and screened; anyone can verify it with POST /v1/compliance/receipts/verify. Free; it needs orders:read. Lawful basis is UK GDPR Article 6(1)(f) legitimate interests; email audiences include corporate subscribers only by default (PECR), so sole traders and ordinary partnerships are left out unless the toggle is changed.
| Name | Required | Description | Default |
|---|---|---|---|
| order_id | Yes | The order the receipt covers. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | Format: a compliance receipt id: rcpt_ followed by a 26 character ULID in upper case Crockford base32, such as rcpt_01JB4NA2Q5W8ZAK8Q2V7XN3M9R. |
| alg | Yes | |
| jws | Yes | The receipt as a compact JWS signed with ES256. |
| kid | Yes | The signing key id in jwks_url. |
| claims | Yes | |
| pdf_url | Yes | The PDF twin at mydatahub.emailmovers.com/receipts/{id}. |
| jwks_url | Yes | |
| order_id | Yes | Format: an order id: ord_ followed by a 26 character ULID in upper case Crockford base32, such as ord_01JB4N9S3W2X6Y7Z8A1B2C3D4E. |
get_countDeprecated: get the countRead-onlyIdempotentInspect
Deprecated: returns the count for the filters held in the server session. Use count_audience instead. It returns Total, New to you and Emailable with breakdowns, quality, the compliance summary, a price estimate and a count id. It stops working 12 months after the new tools launch, after three emailed notices; https://emailmovers.com/mydatahub/docs/migrate maps every call. Lawful basis is UK GDPR Article 6(1)(f) legitimate interests; email audiences include corporate subscribers only by default (PECR), so sole traders and ordinary partnerships are left out unless the toggle is changed.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_creditsDeprecated: credit balanceRead-onlyIdempotentInspect
Deprecated: returns the credit balance. Use get_account instead. It returns the balance by source, the plan, per-action prices, the rate limit and any agent key budget; balances carry over one for one. It stops working 12 months after the new tools launch, after three emailed notices; https://emailmovers.com/mydatahub/docs/migrate maps every call. Lawful basis is UK GDPR Article 6(1)(f) legitimate interests; email audiences include corporate subscribers only by default (PECR), so sole traders and ordinary partnerships are left out unless the toggle is changed.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_orderGet order statusRead-onlyIdempotentInspect
Returns one order's status (queued, building, verifying, ready, failed or cancelled), counts, charges, licence and links to its records, download and receipt, or the recent orders when order_id is left out. Use it after create_order to wait for ready, or rely on the order.ready webhook. Free; it needs orders:read. Call fetch_order_records once the status is ready. Lawful basis is UK GDPR Article 6(1)(f) legitimate interests; email audiences include corporate subscribers only by default (PECR), so sole traders and ordinary partnerships are left out unless the toggle is changed.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Items per page, 1 to 100. Default 25. | |
| cursor | No | An opaque cursor from next_cursor. Pass it back unchanged. | |
| status | No | queued, building, verifying, ready; failed if processing failed; cancelled (only while queued). | |
| order_id | No | The order to return. Leave it out for the recent orders, newest first. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_pack_detailsDeprecated: field set columnsRead-onlyIdempotentInspect
Deprecated: lists the columns of one field bundle. Use list_field_sets instead. list_field_sets returns every field set with its exact columns and credits per record. It stops working 12 months after the new tools launch, after three emailed notices; https://emailmovers.com/mydatahub/docs/migrate maps every call. Lawful basis is UK GDPR Article 6(1)(f) legitimate interests; email audiences include corporate subscribers only by default (PECR), so sole traders and ordinary partnerships are left out unless the toggle is changed.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_packsDeprecated: list field setsRead-onlyIdempotentInspect
Deprecated: lists the field bundles an order can deliver. Use list_field_sets instead. The old bundles become named field sets with their exact columns; the five test bundles are removed. It stops working 12 months after the new tools launch, after three emailed notices; https://emailmovers.com/mydatahub/docs/migrate maps every call. Lawful basis is UK GDPR Article 6(1)(f) legitimate interests; email audiences include corporate subscribers only by default (PECR), so sole traders and ordinary partnerships are left out unless the toggle is changed.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_plansPlans and pricesRead-onlyIdempotentInspect
Returns the plans of MyDataHub by Emailmovers, the UK B2B count engine: credit packs, credit rules, licence terms, the bounce warranty and the free trial, in GBP excluding VAT. Use it when the user asks what a list costs or which plan fits; it is free and needs no account. One credit buys one complete UK record at the same price in the app, the API and here. Call get_account for the caller's own balance, or count_audience to size a list. Lawful basis is UK GDPR Article 6(1)(f) legitimate interests; email audiences include corporate subscribers only by default (PECR), so sole traders and ordinary partnerships are left out unless the toggle is changed.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| plans | Yes | |
| trial | Yes | |
| meters | Yes | What agents and code are metered on, in credits, the same on every surface. |
| licence | Yes | |
| version | Yes | |
| currency | Yes | |
| promises | Yes | |
| guarantee | Yes | |
| valid_from | Yes | |
| action_path | Yes | How to buy: quote_order for a machine quote, create_order with a confirmation, and the top-up page when the balance is short. |
| price_scale | Yes | |
| credit_packs | Yes | |
| credit_rules | Yes | |
| vat_treatment | Yes | |
| credit_definition | Yes |
get_saved_selectionsDeprecated: list saved audiencesRead-onlyIdempotentInspect
Deprecated: lists the saved lists of the organisation. Use list_audiences instead. Saved lists carry over as audiences (aud_) in the same organisation, with their current counts. It stops working 12 months after the new tools launch, after three emailed notices; https://emailmovers.com/mydatahub/docs/migrate maps every call. Lawful basis is UK GDPR Article 6(1)(f) legitimate interests; email audiences include corporate subscribers only by default (PECR), so sole traders and ordinary partnerships are left out unless the toggle is changed.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
list_audiencesList saved audiencesRead-onlyIdempotentInspect
Lists the organisation's saved audiences with their current counts and last refresh, newest first, optionally filtered by name. Use it to find an aud_ id to count, quote or share. Free; it needs audiences:read. Pass an aud_ id to count_audience for a fresh count. Lawful basis is UK GDPR Article 6(1)(f) legitimate interests; email audiences include corporate subscribers only by default (PECR), so sole traders and ordinary partnerships are left out unless the toggle is changed.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Filter by name. | |
| limit | No | Items per page, 1 to 100. Default 25. | |
| cursor | No | An opaque cursor from next_cursor. Pass it back unchanged. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| has_more | Yes | Whether another page follows. |
| next_cursor | Yes | Pass as cursor to fetch the next page; null on the last page. |
list_field_setsList field setsRead-onlyIdempotentInspect
Lists the field sets an order can deliver, such as standard or standard_telephone, with their exact columns. Every field set costs 1 credit a record, with no telephone, download or API surcharge. Use it to pick the field_set for quote_order; it is free and needs no account. Lawful basis is UK GDPR Article 6(1)(f) legitimate interests; email audiences include corporate subscribers only by default (PECR), so sole traders and ordinary partnerships are left out unless the toggle is changed.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Items per page, 1 to 100. Default 25. | |
| cursor | No | An opaque cursor from next_cursor. Pass it back unchanged. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| has_more | Yes | Whether another page follows. |
| next_cursor | Yes | Pass as cursor to fetch the next page; null on the last page. |
list_filtersFilter catalogueRead-onlyIdempotentInspect
Lists every filterable field of the audience definition (mydatahub.audience/1) with its group, type, operators, value count and default, plus the datasets. Use it first to learn field names such as company.employee_band or site.town before building an audience by hand. Free and needs no account; the same catalogue is the mydatahub://catalogue resource. Call search_filter_values to find the codes for one field. Lawful basis is UK GDPR Article 6(1)(f) legitimate interests; email audiences include corporate subscribers only by default (PECR), so sole traders and ordinary partnerships are left out unless the toggle is changed.
| Name | Required | Description | Default |
|---|---|---|---|
| dataset | No | The dataset an audience draws from. uk_contacts is live; ie_contacts and global_contacts are listed but not yet served. |
Output Schema
| Name | Required | Description |
|---|---|---|
| fields | Yes | |
| dataset | Yes | The dataset an audience draws from. uk_contacts is live; ie_contacts and global_contacts are listed but not yet served. |
| datasets | Yes | |
| operators | Yes | |
| dataset_version | Yes | The immutable weekly build a count is bound to, such as 2026-W39. The last 52 stay queryable. |
lookup_companyLook up a companyRead-onlyIdempotentInspect
Looks up one company by Companies House number, domain or name and returns its Companies House fields and compliance facts, and for a signed-in caller the contacts held there by job level. It returns no contact details: use enrich_contact for one known person, or count_audience for everyone at the company. Free and needs no account, though the contacts held are a single company count that needs an account (null when signed out). Lawful basis is UK GDPR Article 6(1)(f) legitimate interests; email audiences include corporate subscribers only by default (PECR), so sole traders and ordinary partnerships are left out unless the toggle is changed.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| town | No | Narrows a name search. | |
| domain | No | ||
| company_number | No | Eight characters in upper case, such as 05046417 or SC123456. |
Output Schema
| Name | Required | Description |
|---|---|---|
| company | Yes | |
| compliance | Yes | |
| disclosure | Yes | |
| contacts_held | Yes | Contacts we hold at the company: a single-company count, so signed-in callers only (null otherwise) and logged. Trial callers see it rounded. |
| credits_charged | Yes | |
| dataset_version | Yes | The immutable weekly build a count is bound to, such as 2026-W39. The last 52 stay queryable. |
| match_confidence | Yes | |
| contacts_by_level | Yes | The same count by job level, most senior first, with Level not known last; null when signed out. |
preview_recordsPreview sample recordsRead-onlyIdempotentInspect
Returns up to 25 masked sample rows (10 by default) for an audience or a count id, each with verification badges, why it matches and a provenance card. Use it after count_audience to show the user what the records look like before quoting. Free: emails and phones are masked on the server, a repeat returns the same rows, and no rows come back when the count is under 25. Call quote_order next to price the records. Lawful basis is UK GDPR Article 6(1)(f) legitimate interests; email audiences include corporate subscribers only by default (PECR), so sole traders and ordinary partnerships are left out unless the toggle is changed.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Rows to return, 1 to 25. Default 10. | |
| shuffle | No | Draw a new seed. Counts against your rate budget and is logged. Default false, so a repeat returns the same rows. | |
| audience | No | ||
| count_id | No | A count id instead of an audience. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | Format: a preview id: prv_ followed by a 26 character ULID in upper case Crockford base32, such as prv_01JB4H3M7Q2V7XN3M9R6T1Y5W8. |
| rows | Yes | |
| seed | Yes | The seed the rows came from; the same audience gives the same seed. |
| count | Yes | The count the rows were drawn from, rounded as disclosure says. |
| masked | Yes | |
| count_id | Yes | Format: a count id: cnt_ followed by 20 base32 characters (A to Z and 2 to 7), such as cnt_7K2PQ4MAXN3R6TBY5WDZ. |
| withheld | Yes | Rows held back: all of them when the count is under 25, or rows whose title fewer than 10 people hold. |
| watermark | Yes | The account id watermarked into sample CSVs; null when signed out. |
| created_at | Yes | |
| disclosure | Yes | |
| dataset_version | Yes | The immutable weekly build a count is bound to, such as 2026-W39. The last 52 stay queryable. |
push_to_crmPush an order to a CRMIdempotentInspect
Pushes an order's records to a connected CRM such as HubSpot or Salesforce, keyed on mydatahub_record_id, as record operations only: nothing is ever sent to the contacts. dry_run defaults to true and reports what would be created, updated or skipped; a live push needs the user's confirmation or an agent key allowed push_to_crm on that connection, or it returns confirmation-required. Free; it needs pushes:write and a connection made in the app. Show the dry run to the user before a live push. Lawful basis is UK GDPR Article 6(1)(f) legitimate interests; email audiences include corporate subscribers only by default (PECR), so sole traders and ordinary partnerships are left out unless the toggle is changed.
| Name | Required | Description | Default |
|---|---|---|---|
| dry_run | No | Default true: report what would change without writing. A live push needs approval: a person's confirmation, or an agent key allowed push_to_crm on this connection. | |
| order_id | Yes | The order whose records to push. | |
| connection_id | Yes | Format: a CRM connection id: conn_ followed by a 26 character ULID in upper case Crockford base32, such as conn_01JB3Y2X6Y7Z8A1B2C3D4E5F6G. | |
| update_existing | No | Update records already in the CRM, matched on mydatahub_record_id. Default true. | |
| confirmation_token | No | The token the approval page on mydatahub.emailmovers.com returns once the signed-in person approves. It is bound to that person (their sub), this spend (the machine quote_id, or the enrichment or push) and an expiry no later than the quote's, and it is redeemable once. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | Format: a CRM push id: psh_ followed by a 26 character ULID in upper case Crockford base32, such as psh_01JB4NC3W2X6Y7Z8A1B2C3D4E5. |
| errors | Yes | |
| sample | Yes | On a dry run: the property group the first record would carry. |
| status | Yes | |
| dry_run | Yes | |
| summary | Yes | |
| order_id | Yes | Format: an order id: ord_ followed by a 26 character ULID in upper case Crockford base32, such as ord_01JB4N9S3W2X6Y7Z8A1B2C3D4E. |
| created_at | Yes | |
| completed_at | Yes | |
| connection_id | Yes | Format: a CRM connection id: conn_ followed by a 26 character ULID in upper case Crockford base32, such as conn_01JB3Y2X6Y7Z8A1B2C3D4E5F6G. |
| property_group | Yes | The MyDataHub property group written on every record (CrmPropertyGroup). |
quote_orderQuote an orderRead-onlyIdempotentInspect
Creates a machine quote for a count: the records you would receive after removing ones already held and suppressed, the credits and GBP price, the licence, the warranty and any blockers. The quote_id lasts 24 hours and is bound to the dataset version; it is not a human sales quote, which is a 14 day PDF made in the app. Free and needs no account, and nothing is charged. Show the credits and price to the user, then call create_order with the quote_id. Lawful basis is UK GDPR Article 6(1)(f) legitimate interests; email audiences include corporate subscribers only by default (PECR), so sole traders and ordinary partnerships are left out unless the toggle is changed.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Records to buy; left out, the whole count. | |
| licence | No | multi_use_12m (12 month multi-use, every plan) or outright (1.8 credits a record, proposed). | multi_use_12m |
| count_id | Yes | A count id from POST /v1/counts or count_audience. Either case is accepted; responses use upper case. | |
| field_set | Yes | A field set id from GET /v1/field-sets, such as standard. | |
| connection_id | No | The CRM connection to check, only with dedupe_against crm or previous_orders_and_crm. | |
| dedupe_against | No | Remove records you already hold: from earlier orders, from a connected CRM, or both. Default previous_orders when signed in. crm and previous_orders_and_crm need connection_id. | previous_orders |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | Format: a quote id: qte_ followed by a 26 character ULID in upper case Crockford base32, such as qte_01JB4M2R6T1Y5W8ZAK8Q2V7XN3. |
| kind | Yes | |
| dataset | No | The dataset an audience draws from. uk_contacts is live; ie_contacts and global_contacts are listed but not yet served. |
| licence | Yes | |
| records | Yes | Records after overlap and suppression; what you would receive. |
| removed | Yes | Records left out and never charged. |
| blockers | Yes | |
| count_id | Yes | The count the quote was priced from. |
| purchase | Yes | |
| warranty | Yes | |
| field_set | No | |
| signature | Yes | |
| created_at | No | |
| expires_at | Yes | 24 hours after creation. |
| gbp_ex_vat | Yes | What credits_required cost bought the cheapest way, at the per-contact scale or with credit packs, excluding VAT. The same for every caller; purchase says what this caller needs to buy. |
| balance_after | Yes | credits_available less credits_required; negative means a top-up is needed; null when signed out. |
| dataset_version | Yes | The immutable weekly build a count is bound to, such as 2026-W39. The last 52 stay queryable. |
| organisation_id | Yes | The organisation the quote belongs to; create_order settles it only there. null for a quote made without an account, which the first organisation to confirm it takes. |
| credits_required | Yes | records times credits_per_record (creditsFor). |
| credits_available | Yes | Your balance; null when signed out. |
| credits_per_record | Yes | 1 for a complete UK record; 1.8 outright (proposed). |
report_objectionReport an objectionIdempotentInspect
Records an objection to direct marketing for one record, by record id or email hash. Scope licensee suppresses it for your organisation at once; scope emailmovers suppresses it database-wide within one working day and tells every licensee holding it. Free; it needs suppressions:write, and repeating the same objection returns the same suppression. Call it whenever a contact objects, in any channel. Lawful basis is UK GDPR Article 6(1)(f) legitimate interests; email audiences include corporate subscribers only by default (PECR), so sole traders and ordinary partnerships are left out unless the toggle is changed.
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | ||
| scope | Yes | licensee suppresses the record for your organisation at once; emailmovers suppresses it database-wide within one working day. | |
| channel | Yes | ||
| record_id | No | Format: a contact id: contact_ followed by a 26 character ULID in upper case Crockford base32, such as contact_01JA9X2V7XN3M9R6T1Y5W8ZAK8. | |
| received_at | Yes | RFC 3339 date and time, with Z or an offset such as +01:00. | |
| email_sha256 | No | SHA-256 of the trimmed, lower cased address, when the record id is not known. |
Output Schema
| Name | Required | Description |
|---|---|---|
| scope | Yes | |
| status | Yes | suppressed now, or pending until the database-wide overlay applies. |
| record_id | Yes | |
| effective_by | Yes | |
| suppressed_at | Yes | |
| suppression_id | Yes | The list the record now sits on. |
resolve_locationResolve a locationRead-onlyIdempotentInspect
Turns free text such as 20 miles of Leeds, Yorkshire or LS1 into region, county, town, postcode or radius filters, each with a count and a ready filter. Ambiguous places come back as candidates with a question, so ask the user which they meant rather than choosing. Free and needs no account, though a radius under 5 miles needs an account. Add the chosen filter to the audience, then call count_audience. Lawful basis is UK GDPR Article 6(1)(f) legitimate interests; email audiences include corporate subscribers only by default (PECR), so sole traders and ordinary partnerships are left out unless the toggle is changed.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Free text such as "20 miles of Leeds", "Yorkshire" or "SW1". | |
| dataset | No | The dataset an audience draws from. uk_contacts is live; ie_contacts and global_contacts are listed but not yet served. | |
| radius_miles | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes | |
| question | Yes | |
| ambiguous | Yes | True when more than one candidate fits; ask the person which they meant. |
| candidates | Yes | |
| disclosure | Yes |
save_audienceSave an audienceIdempotentInspect
Saves an audience definition under a name, shared across the organisation, or updates a saved one when audience_id is given. Use it when the user wants to keep, share or recount a list later; saving is free and needs audiences:write. Repeating the same call returns the same saved audience. Call list_audiences to find it again, or count_audience with its aud_ id. Lawful basis is UK GDPR Article 6(1)(f) legitimate interests; email audiences include corporate subscribers only by default (PECR), so sole traders and ordinary partnerships are left out unless the toggle is changed.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| brief | No | ||
| audience | No | ||
| audience_id | No | A saved audience to update. Leave it out to save a new one. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | Format: an audience id: aud_ followed by a 26 character ULID in upper case Crockford base32, such as aud_01JB4H2K9V6XN3M9R6T1Y5W8ZA. |
| url | Yes | The audience in the app, mydatahub.emailmovers.com/audiences/{id}. |
| name | Yes | |
| brief | Yes | The brief it was compiled from, if any. |
| audience | Yes | |
| created_at | Yes | |
| created_by | Yes | Format: a user id: usr_ followed by a 26 character ULID in upper case Crockford base32, such as usr_01JA0Q3V7XN3M9R6T1Y5W8ZAK8. |
| updated_at | Yes | |
| current_count | Yes | |
| last_refreshed_at | Yes |
save_selectionsDeprecated: save an audienceIdempotentInspect
Deprecated: saves the filters held in the server session under a name. Use save_audience instead. It saves an audience definition shared across the organisation; saved lists carry over as audiences (aud_). It stops working 12 months after the new tools launch, after three emailed notices; https://emailmovers.com/mydatahub/docs/migrate maps every call. Lawful basis is UK GDPR Article 6(1)(f) legitimate interests; email audiences include corporate subscribers only by default (PECR), so sole traders and ordinary partnerships are left out unless the toggle is changed.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
search_discrete_valuesDeprecated: search filter valuesRead-onlyIdempotentInspect
Deprecated: searches the values of one filter category. Use search_filter_values instead. It returns codes with counts and did_you_mean for near misses. It stops working 12 months after the new tools launch, after three emailed notices; https://emailmovers.com/mydatahub/docs/migrate maps every call. Lawful basis is UK GDPR Article 6(1)(f) legitimate interests; email audiences include corporate subscribers only by default (PECR), so sole traders and ordinary partnerships are left out unless the toggle is changed.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
search_filter_valuesSearch filter valuesRead-onlyIdempotentInspect
Searches the values of one field by text, such as towns matching leeds, and returns each code with its contact and company counts plus did_you_mean for near misses. Use the returned code in a filter rather than guessing one. Free and needs no account; results are paged with next_cursor. Call count_audience once the filters are chosen. Lawful basis is UK GDPR Article 6(1)(f) legitimate interests; email audiences include corporate subscribers only by default (PECR), so sole traders and ordinary partnerships are left out unless the toggle is changed.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Text to search for. | |
| limit | No | Items per page, 1 to 100. Default 25. | |
| cursor | No | An opaque cursor from next_cursor. Pass it back unchanged. | |
| dataset | No | The dataset an audience draws from. uk_contacts is live; ie_contacts and global_contacts are listed but not yet served. | |
| dimension | Yes | A field name from list_filters, such as site.town or company.sic_2007. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| field | Yes | |
| has_more | Yes | |
| disclosure | Yes | |
| next_cursor | Yes | |
| did_you_mean | No | |
| dataset_version | Yes | The immutable weekly build a count is bound to, such as 2026-W39. The last 52 stay queryable. |
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
34 tool updates
- First observed
available_selection_categories - First observed
available_selection_values - First observed
check_suppression - First observed
clear_search - First observed
compile_audience - First observed
count_audience - First observed
create_data_extract - First observed
create_order - First observed
create_search - First observed
enrich_contact - First observed
expand_job_titles - First observed
fetch_order_records - First observed
get_account - First observed
get_compliance_receipt - First observed
get_count - First observed
get_credits - First observed
get_order - First observed
get_pack_details - First observed
get_packs - First observed
get_plans - First observed
get_saved_selections - First observed
list_audiences - First observed
list_field_sets - First observed
list_filters - First observed
lookup_company - First observed
preview_records - First observed
push_to_crm - First observed
quote_order - First observed
report_objection - First observed
resolve_location - First observed
save_audience - First observed
save_selections - First observed
search_discrete_values - First observed
search_filter_values
Related MCP Connectors
UK Companies House and KYB: search, officers, owners (PSC), filings, charges, banned directors
UK Companies House new companies by postcode and KYB checks. £0.49 new_cos_pack + kyb_pack.
UK public-record company intelligence: Companies House, payments, contracts, registers, watch lists
UK company lookup & monitor, UK/EU tenders, awards, planning, charities, schools, NHS, trade marks.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables MCP clients to look up, search, compare, and monitor UK companies using Companies House register data and iXBRL accounts, including financial history, risk signals, market statistics, lead-generation triggers, and watchlist alerts.MIT
- FlicenseNot gradedqualityDmaintenanceTurns open places data into AI-assisted local market intelligence, enabling search of 4.4 million UK places by category, location, and proximity, and saving promising results to a prospecting pipeline.-
- FlicenseNot gradedqualityCmaintenanceReal-time B2B company firmographics, headcount tier, ARR estimate, tech stack adoption, and verified C-Level executive contact emails for AI SDRs and sales automation.-
- AlicenseAqualityBmaintenanceUK due diligence MCP server — Companies House, corporate research, compliance checks18169 PyPI3MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.