Public API for agents and integrations.
List our services, calculate a price and send a project request over HTTP. No authentication, JSON in and out, and a full OpenAPI 3.1 description.
Endpoints
GET /api/services
Every service with starting prices, tiers and the question ids the estimate endpoint understands.
POST /api/quote/estimate
A price range for one or more services. Read-only: it stores nothing and sends nothing to the team.
POST /api/contact
Sends a project request to the team. Only call it when a person asked you to, with their own name and email.
POST /api/quote
Creates a full quote with contact details, exactly as the quote page does.
POST /api/quote/feedback
Records how a quoted price felt, with an optional budget.
Estimate a price
Pass service ids and, optionally, answers keyed by question id. Question and option ids are listed at /api/services. Currency can be USD, GBP or EUR.
curl -X POST https://madeyouviral.com/api/quote/estimate \
-H "Content-Type: application/json" \
-d '{"services":["websites","meta-ads"],"answers":{"websites.type":"business","websites.pages":"p12","meta-ads.spend":"s2"},"currency":"USD"}'Send a project request
The team receives it straight away and replies by email. Use it only when a person has asked you to contact us.
curl -X POST https://madeyouviral.com/api/contact \
-H "Content-Type: application/json" \
-d '{"name":"Alex Rivera","email":"[email protected]","services":["websites"],"message":"We need a booking website for a new clinic.","source":"api"}'Limits and errors
- Requests are rate limited per IP address. A 429 means wait a few minutes.
- Invalid input returns 422 with a
fieldsobject mapping each field to a message. - Bodies must be JSON and under 32 KB.