Quote an EDDM campaign
Prices an Every Door Direct Mail campaign from a mail-piece format and a volume. No campaign needed, and nothing is saved.
Pass format explicitly. Leaving it out quotes the smallest size, while campaign creation defaults EDDM to BEST_SELLER — so an unconfirmed size gives you a quote that will not match the campaign you go on to build. The response flags this.
A volume below the smallest pricing tier is priced at that tier: the price is real, but it is not the rate for the volume you asked for, and the response says which tier produced it.
Authorization
ClientBearer Client-scoped key as a Bearer JWT; always pinned to your own client.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
curl -X POST "https://example.com/client/calculators/eddm" \ -H "Content-Type: application/json" \ -d '{ "volume": null }'{ "success": true, "data": { "currency": "USD", "format": "SMALL", "volume": 300, "perUnitPrice": 0.42, "total": 126, "tierApplied": { "key": 1000, "perUnitPrice": 0.42 }, "tierBasis": "floor", "minimumVolume": 1000, "complete": false, "adjustments": [ { "code": "BOUND_APPLIED", "field": "volume", "requested": 300, "applied": 1000, "affects": [ "perUnitPrice", "total" ], "detail": "300 pieces is below the 1,000-piece minimum, so this is priced at the 1,000-piece rate." } ], "note": "300 pieces is below the 1,000-piece minimum…" }}Quote a flyer campaign POST
Prices a flyer distribution campaign from your selection — quantity, city, format and channel. No campaign needed, and nothing is saved. A city we have no specific rate for falls back to the country rate, and the response says so.
Campaign price GET
What this campaign costs you — subtotal, tax, total, any discount, and the currency. For a price before a campaign exists, use [the calculators](/docs/api-reference/pricing/getflyerquote).