Public API for AI agents and developers
Ask what a parcel costs to forward from Hungary, where we ship, and what we will not carry — as JSON, without an API key, an account, or a page to scrape.
Try it now
curl "https://shipify.hu/api/quote?country=DE&weight_kg=2" Endpoints
All GET, all returning
JSON. HEAD and
OPTIONS work too.
| Endpoint | What it returns |
|---|---|
| /api/info | Service descriptor — What Shipify is, how a parcel must be addressed, and where every other endpoint lives. Start here. |
| /api/countries | Destinations and starting prices — Every country served, its starting price, EU status and typical transit time. |
| /api/services | Extras and standing fees — Optional per-package extras with stable codes, plus the intake and consolidation fees. |
| /api/quote | Price a forwarding job — Full breakdown for a real shipment: weight curve, consolidation, extras, total. |
| /api/restrictions | Prohibited goods and limits — What may not be shipped, what needs prior approval, and the size and weight limits. |
| /api/signup-link | Hand-off link — Builds a pre-filled sign-up URL to give the customer. Creates nothing on its own. |
A real quote, not a starting price
Three parcels of 2 kg each to Germany, insured and marked fragile. They travel as one
consignment, so shipping is priced on the combined weight. Add
length_cm,
width_cm and
height_cm for a parcel that is large for its
weight: couriers charge the greater of actual and volumetric weight, and without the box
size the quote assumes the parcel is not bulky.
curl "https://shipify.hu/api/quote?country=DE&weight_kg=2&packages=3&services=insurance,fragile-label"
{
"currency": "EUR",
"destination": { "code": "DE", "name_en": "Germany", "eu": true, "transit_business_days": "2-4" },
"actual_weight_kg": 6,
"volumetric_weight_kg": null,
"chargeable_weight_kg": 6,
"pricing_basis": "weight_curve",
"breakdown": {
"intake_fee_eur": 7.5,
"shipping_eur": 43.74,
"consolidation_eur": 5,
"services_eur": 10.5
},
"total_eur": 66.74
} There is no write API, on purpose
You cannot create an account or book a forwarding through this API, and that is a decision rather than a gap. Signing up carries the acceptance of our Terms and the customs mandate that lets us declare a parcel on someone's behalf. Both have to come from the person, not from software acting for them.
There is a practical reason too: parcel forwarding is a standard vector for card fraud, and effortless automated sign-up is precisely what makes it work. The identity check belongs at the point where a parcel leaves the warehouse.
What an assistant can do instead
Prepare the sign-up and hand it over. Call
/api/signup-link
with whatever details you already hold, then show the customer the link it returns.
They open a form with their data filled in, and do the parts that must be theirs:
accept the Terms, choose a password, clear the security check, confirm their email.
curl "https://shipify.hu/api/signup-link\
?first_name=Anna&email=anna%40example.com" The endpoint creates no account and stores nothing. Please do not submit the form, solve the security check, or read the confirmation email on a customer's behalf.
Good to know
- Do I need an API key?
- No. Every endpoint is public, unauthenticated and read-only, and cross-origin requests are allowed from any origin. There is nothing to register for and no rate-limit tier to buy.
- Why is there no endpoint to create an account or book a forwarding?
- Signing up carries the Terms of Service acceptance and the customs mandate, which have to come from the customer themselves, and frictionless automated sign-up is exactly what parcel reshipping fraud relies on. An assistant can prepare everything and hand over a link; the person completes it.
- How fresh are the prices?
- They come from the same live pricing data the on-page calculator reads, cached for five minutes. A rate change or a newly opened destination appears without any deploy on our side.
- Is the quote binding?
- It is an accurate estimate from published rates. The binding price is calculated when the parcel is forwarded, from the weight and dimensions measured at the warehouse, and excludes customs duty and destination-country VAT. A box over the package limits (longest side 175 cm, girth 300 cm) gets no price at all — manual_quote_required is true and the forwarding request waits for an individual quote — and a long box (over 150 cm, or a middle side over 76 cm) includes a flat surcharge.
- Can I read the site itself as structured text?
- Yes. Request any page URL with the header Accept: text/markdown and you get a clean markdown version instead of HTML. The full index is at /llms.txt.
Questions, or something you need that is missing? Write to hello@shipify.hu.