Get a price
Send the project as parameters in the address. Get the price back. Nothing is saved.
One address on our site returns a fixed price and takes an order in JSON. Call it from your own system, from a bot, or from an AI agent, at the same price as on the studio page.
curl "https://fast24.dev/api/studio-order?type=website&pages=5&languages=2&booking=1¤cy=EUR"
200 OK
{
"quote": {
"amount": 125,
"currency": "EUR",
"total_pages": 10,
"breakdown": { "base": 75, "booking": 50 }
},
"project": {
"type": "website", "pages": 5, "languages": 2, "booking": true, …
},
"delivery": "Live within 24 hours of our email confirming we have everything: the filled-in brief, texts or a brief for them, a logo, photos and contact details.",
"payment": "The studio pays only after seeing the finished site. If it does not suit you, you owe nothing.",
…
}
Shortened API response to a price request
Your agent or your own program calls the address and gets the price at once.
The agent asks your client the brief questions: what the business does and what a visitor should do.
POST returns an order number and the same price. We confirm by email or Telegram.
Ready 24 hours from our email confirming we have everything.
This page is a code reference. The studio price list and the rules are on the studio page.
A text your studio hands to its AI agent: how to get the price, which brief questions to ask and how to place the order.
Send the project as parameters in the address. Get the price back. Nothing is saved.
Send the project as JSON. Get an order number and the same price back. We confirm it by email or Telegram.
https://fast24.dev/api/studio-orderCalled with no parameters, it returns a short description of the service. With brief=1 it returns the brief questions; with any other parameter, a price.
curl "https://fast24.dev/api/studio-order"
{
"service": "fast24.dev order API for web studios and AI agents",
"quote": "GET /api/studio-order?type=website&pages=5&languages=2&booking=1¤cy=EUR",
"order": "POST /api/studio-order with JSON {studio, project, currency}",
"spec": "https://fast24.dev/openapi.json",
"delivery": "Live within 24 hours of our email confirming we have everything: the filled-in brief, texts or a brief for them, a logo, photos and contact details.",
"payment": "The studio pays only after seeing the finished site. If it does not suit you, you owe nothing.",
"edits": "Plain HTML, CSS and JavaScript files, no admin panel: after payment you get the source files and change the text directly in them, which any developer can do. Up to 3 rounds of changes are included within a week after delivery, each done within 24 hours, plus 7 days of free fixes for anything broken in our work.",
"terms": "https://fast24.dev/terms",
"studios": "https://fast24.dev/studios/"
}
curl "https://fast24.dev/api/studio-order?type=website&pages=5&languages=2&booking=1¤cy=EUR"
const answer = await fetch('https://fast24.dev/api/studio-order?type=website&pages=5&languages=2&booking=1¤cy=EUR');
const price = await answer.json();
console.log(price.quote.amount, price.quote.currency); // 125 EUR
{
"quote": {
"amount": 125,
"currency": "EUR",
"total_pages": 10,
"breakdown": { "base": 75, "booking": 50 }
},
"project": {
"type": "website", "pages": 5, "languages": 2,
"payments": false, "subscriptions": false, "booking": true,
"accounts": false, "extra_roles": 0, "integrations": 0
},
"delivery": "Live within 24 hours of our email confirming we have everything: the filled-in brief, texts or a brief for them, a logo, photos and contact details.",
"payment": "The studio pays only after seeing the finished site. If it does not suit you, you owe nothing.",
"edits": "Plain HTML, CSS and JavaScript files, no admin panel: after payment you get the source files and change the text directly in them, which any developer can do. Up to 3 rounds of changes are included within a week after delivery, each done within 24 hours, plus 7 days of free fixes for anything broken in our work.",
"terms": "https://fast24.dev/terms",
"studios": "https://fast24.dev/studios/"
}
| Parameter | Values | Default |
|---|---|---|
type | landing, website, shop, redesign | website |
pages | 1–500 | 1 |
languages | 1–20 | 1 |
payments | on / off | off |
subscriptions | on / off | off |
booking | on / off | off |
accounts | on / off | off |
extra_roles | 0–10 | 0 |
integrations | 0–10 | 0 |
currency | EUR, USD, PLN | EUR |
brief | 1: the brief questions instead of a price | — |
lang | language of the brief questions: en, ru, pl, de, fr, es, pt, by | en |
In EUR and USD the price is the same number; in PLN it is 4 times larger. For an on/off parameter, send 1, true, yes or on to turn it on, and leave it out for off.
https://fast24.dev/api/studio-orderSend the project as JSON. studio.email or studio.telegram is required, so we can confirm the order.
curl -X POST https://fast24.dev/api/studio-order \
-H "Content-Type: application/json" \
-d '{"studio":{"name":"Studio","email":"studio@example.com"},"project":{"type":"website","pages":5,"languages":2,"booking":true,"business":"A dental clinic with two dentists","goal":"Book a visit by phone or through the form"},"currency":"EUR"}'
{
"order_id": "FD-MUKEOJ1N-BBC8",
"status": "received",
"price": {
"amount": 125,
"currency": "EUR",
"total_pages": 10,
"breakdown": { "base": 75, "booking": 50 }
},
"project": {
"type": "website", "pages": 5, "languages": 2,
"payments": false, "subscriptions": false, "booking": true,
"accounts": false, "extra_roles": 0, "integrations": 0
},
"next": "We confirm the order and ask for the content within 15 minutes, by email or Telegram.",
"delivery": "Live within 24 hours of our email confirming we have everything: the filled-in brief, texts or a brief for them, a logo, photos and contact details.",
"payment": "The studio pays only after seeing the finished site. If it does not suit you, you owe nothing.",
"edits": "Plain HTML, CSS and JavaScript files, no admin panel: after payment you get the source files and change the text directly in them, which any developer can do. Up to 3 rounds of changes are included within a week after delivery, each done within 24 hours, plus 7 days of free fixes for anything broken in our work.",
"terms": "https://fast24.dev/terms",
"studios": "https://fast24.dev/studios/"
}
| Field | Required | Note |
|---|---|---|
name | no | studio or agency name |
website | no | studio or agency website |
email | at least one of the two | so we can confirm the order |
telegram | at least one of the two | so we can confirm the order |
| Field | Values | Default |
|---|---|---|
type | landing, website, shop, redesign | website |
pages | 1–500 | 1 |
languages | 1–20 | 1 |
payments | on / off | off |
subscriptions | on / off | off |
booking | on / off | off |
accounts | on / off | off |
extra_roles | 0–10 | 0 |
integrations | 0–10 | 0 |
business | text: what the end client's business does | — |
goal | text: what a visitor should do on the site | — |
content_ready | on / off | off |
notes | text: anything else worth telling us | — |
| Field | Meaning |
|---|---|
brief | the brief answers, keyed by question id from brief_questions |
lang | language of the missing list in the answer, en by default |
order_id | number of an order already received: the new brief answers are added to it, and studio and project are then optional |
dry_run | true: checks the request without creating an order or sending any message |
| Field | Meaning |
|---|---|
order_id | the order number, for example FD-MUKEOJ1N-BBC8 |
status | "received": order received, brief complete; "brief_incomplete": order received, what is missing is in missing; "brief_complete": the answers sent with order_id completed the brief |
missing | the brief questions still needed to start; empty when nothing is missing |
dry_run | true only when dry_run was set in the request |
price | the same object as quote in the GET answer: amount, currency, total_pages, breakdown |
project | the project, with the defaults filled in |
next | what happens next, in one line |
delivery | the delivery condition, the same wording as on the studio page |
payment | the payment condition, the same wording as on the studio page |
edits | the edits condition, the same wording as on the studio page |
terms | a link to the contract terms |
studios | a link to the studio price list |
| Code | Error | When |
|---|---|---|
| 400 | { "error": "Send JSON: {studio, project, currency}" } | the body is not valid JSON |
| 400 | { "error": "studio.email or studio.telegram is required, so we can confirm the order" } | neither studio.email nor studio.telegram is filled in |
| 413 | { "error": "Request too large" } | the request body is over 20,000 bytes |
| 429 | { "error": "Too many orders from this address, try again in an hour" } | more than 10 orders from one IP address within an hour |
| 404 | { "error": "order_id not found" } | there is no order with the order_id sent to add brief answers |
GET, POST and OPTIONS.The order gets a number and the fixed price straight in the answer. We save it the same way as a request sent through the site's own form, then confirm it by email or Telegram and ask for the content within 15 minutes.
The delivery, payment and edit conditions in every answer are the same as on the studio page.
The full machine-readable description of both calls is in openapi.json.
Questions about connecting: [email protected].