Reference / MCP tool reference
Reference
Plans and prices
get_plans: 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.
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.
| Property | Value |
|---|---|
| Tool name | get_plans |
| Position in tools/list | 1 of 22 |
| Cost | Free |
| Scope | None. Works without an account. |
| Annotations | readOnlyHint true, destructiveHint false, idempotentHint true, openWorldHint false |
| Kind | Read only; idempotent, not destructive, closed world |
| REST equivalent | GET /v1/plans |
Input
This tool takes no arguments. The schema sets additionalProperties to false, so any member is refused.
Example call
The params of a tools/call request:
{
"name": "get_plans",
"arguments": {}
}Output
The result carries structuredContent that matches this schema, and one line of text that leads with the number.
| Member | Type | Always present | Description |
|---|---|---|---|
version | string | yes | |
valid_from | string (date) | yes | |
currency | GBP | yes | |
vat_treatment | string | yes | |
credit_definition | string | yes | |
price_scale | PriceScale | yes | The per-contact scale: 1 credit buys 1 record at the rate of the band the purchase falls in. A quote's purchase options compare it with the credit pack and lead with the cheapest. |
price_scale.id | per_contact_scale | yes | |
price_scale.name | string | yes | |
price_scale.status | enum: confirmed, proposed, to_confirm | yes | confirmed is in force; proposed awaits a decision; to_confirm is a figure still being checked. |
price_scale.available_to | enum: everyone, new_customers, existing_customers | yes | everyone; new_customers only (the subscription); existing_customers only, who keep their prices (pay as you go and the 12-month plan). |
price_scale.minimum_order_records | integer (0 or more) | yes | |
price_scale.rule | string | yes | How a purchase is priced, in words. |
price_scale.bands | array of PriceBand | yes | |
plans | array of Plan | yes | |
plans[].id | string | yes | Such as free, pay_as_you_go or plan_12_month. |
plans[].name | string | yes | |
plans[].kind | enum: free, subscription, pack | yes | |
plans[].status | enum: confirmed, proposed, to_confirm | yes | confirmed is in force; proposed awaits a decision; to_confirm is a figure still being checked. |
plans[].available_to | enum: everyone, new_customers, existing_customers | yes | everyone; new_customers only (the subscription); existing_customers only, who keep their prices (pay as you go and the 12-month plan). |
plans[].price_gbp_ex_vat | number (0 or more) | yes | Pounds sterling excluding VAT, to two decimal places. |
plans[].billing_period | enum: once, month, year | yes | |
plans[].contract_months | integer (0 or more) or null | no | The contract's length in months, such as 12; absent when there is none. |
plans[].annual_price_gbp_ex_vat | number (0 or more) or null | no | |
plans[].credits | integer (0 or more) | yes | Credits per billing period, or once. |
plans[].per_record_gbp | number (0 or more) or null | yes | Price per record at full use of the allowance; null for the free plan. |
plans[].rollover_cap_credits | integer (0 or more) or null | no | Subscription credits roll over while subscribed, up to this many; 0 when each period's credits are used or lost. |
plans[].credits_expire | boolean | yes | |
plans[].for_whom | string | yes | |
plans[].notes | string | no | |
credit_packs | array of CreditPack | yes | |
credit_packs[].id | string | yes | Such as free, pay_as_you_go or plan_12_month. |
credit_packs[].name | string | yes | |
credit_packs[].kind | pack | yes | |
credit_packs[].status | enum: confirmed, proposed, to_confirm | yes | confirmed is in force; proposed awaits a decision; to_confirm is a figure still being checked. |
credit_packs[].available_to | enum: everyone, new_customers, existing_customers | yes | everyone; new_customers only (the subscription); existing_customers only, who keep their prices (pay as you go and the 12-month plan). |
credit_packs[].price_gbp_ex_vat | number (0 or more) | yes | Pounds sterling excluding VAT, to two decimal places. |
credit_packs[].billing_period | once | yes | |
credit_packs[].contract_months | integer (0 or more) or null | no | The contract's length in months, such as 12; absent when there is none. |
credit_packs[].annual_price_gbp_ex_vat | number (0 or more) or null | no | |
credit_packs[].credits | integer (0 or more) | yes | Credits per billing period, or once. |
credit_packs[].per_record_gbp | number (0 or more) or null | yes | Price per record at full use of the allowance; null for the free plan. |
credit_packs[].rollover_cap_credits | integer (0 or more) or null | no | Subscription credits roll over while subscribed, up to this many; 0 when each period's credits are used or lost. |
credit_packs[].credits_expire | boolean | yes | |
credit_packs[].for_whom | string | yes | |
credit_packs[].notes | string | no | |
credit_rules | array of CreditRule | yes | |
credit_rules[].action | string | yes | |
credit_rules[].label | string | yes | |
credit_rules[].credits | number (0 or more) | 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). |
credit_rules[].unit | enum: call, record, match | yes | |
credit_rules[].status | enum: confirmed, proposed, to_confirm | yes | confirmed is in force; proposed awaits a decision; to_confirm is a figure still being checked. |
credit_rules[].note | string | no | |
licence | array of LicenceTerms | yes | |
licence[].licence_type | enum: multi_use_12m, outright | yes | multi_use_12m (12 month multi-use, every plan) or outright (1.8 credits a record, proposed). |
licence[].status | enum: confirmed, proposed | yes | |
licence[].credits_per_record | number | yes | |
licence[].permitted_channels | array of enum: email, telephone, post | yes | |
licence[].reuse_months | integer or null | yes | 12 for multi_use_12m; null for outright. |
licence[].resale_prohibited | boolean | yes | |
licence[].warranty_url | string (uri) | yes | |
licence[].terms_version | string | yes | |
guarantee | object | yes | |
guarantee.current | Warranty | yes | The bounce warranty that covers delivered records, with the threshold it was issued under. |
guarantee.proposed | Warranty or null | yes | |
guarantee.refunds | array of string | yes | |
trial | object | yes | |
trial.credits | integer (0 or more) | yes | |
trial.card_required | boolean | yes | |
trial.expires | boolean | yes | |
promises | array of PricingPromise | yes | |
promises[].key | string | yes | |
promises[].statement | string | yes | |
promises[].in_practice | string | yes | |
meters | array of Meter | yes | What agents and code are metered on, in credits, the same on every surface. |
meters[].action | string | yes | What is metered, such as record or enrich_contact. |
meters[].unit | enum: record, match, call | yes | |
meters[].credits | number (0 or more) | yes | Credits per unit. |
meters[].status | enum: confirmed, proposed, to_confirm | yes | confirmed is in force; proposed awaits a decision; to_confirm is a figure still being checked. |
action_path | array of ActionPathStep | 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. |
action_path[].step | integer (1 or more) | yes |
Showing the first 80 of 83 members. The OpenAPI document and the MCP tool list hold the full schema.
Errors
A failed call returns isError true. The text content leads with the sentence a person acts on, then the whole problem as JSON, with code, detail, next_step and did_you_mean. A 401 and a step-up 403 are answered at HTTP level so the client can start authorisation. See Errors.