FAST DEV 24
Для веб-студий и ИИ-агентов

Цена и заказ сайта через API

Один адрес на нашем сайте отдаёт точную цену и принимает заказ в формате JSON. Вызывайте его из своей системы, из бота или из ИИ-агента. Цена та же, что на странице для студий.

curl "https://fast24.dev/api/studio-order?type=website&pages=5&languages=2&booking=1&currency=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.",
  …
}

Сокращённый ответ API на запрос цены

Как проходит заказ

От агента студии до готового сайта

  1. Агент студии

    Агент или своя программа студии вызывает адрес и сразу получает цену.

  2. Вопросы брифа

    Агент задаёт клиенту вопросы брифа: чем занимается бизнес и что должен сделать посетитель.

  3. Заказ

    POST возвращает номер заказа и ту же цену. Мы подтверждаем по почте или в Telegram.

  4. Сайт через 24 часа

    Сайт в сети за 24 часа с нашего письма, что у нас есть всё.

Страница вакансий WNR Group на ноутбуке и одна вакансия на телефоне
wnrgroup.work — живой сайт нашего клиента

Эта страница — справка по коду. Цены и условия для студий смотрите на странице для студий.

Для ИИ-агента

Инструкция для агента

Текст, который студия отдаёт своему агенту: как узнать цену, какие вопросы брифа задать и как оформить заказ.

Инструкция
Инструкция для вашего агента Вы работаете от имени веб-студии на fast24.dev. Всё через один адрес: https://fast24.dev/api/studio-order. Полное машинное описание: https://fast24.dev/openapi.json. Полная инструкция для программы: https://fast24.dev/studios/api/agent.md. 1. Цена. Отправьте GET на адрес с параметрами проекта (тип, страницы, языки, валюта, дополнения) — в ответ придёт точная цена. Этот запрос ничего не сохраняет. 2. Опросите клиента. Отправьте GET на адрес с brief=1 и lang на языке клиента — в ответ придут вопросы брифа студии, от важного к менее важному, у каждого отметка, нужен ли он для старта сайта. Задавайте клиенту по одному-два вопроса за раз, в этом порядке, на его языке, а не на языке этой инструкции. Никогда не придумывайте ответ за клиента: пустой ответ или «не знаю» — тоже ответ, передайте его как есть. Если два ответа клиента противоречат друг другу (например, названы два разных города), не выбирайте сами: оставьте поле пустым и скажите студии об этом противоречии. 3. Отправьте заказ. Пошлите POST с контактом студии (почта или Telegram), проектом и ответами брифа, которые вы собрали, по id каждого вопроса. В ответ придут номер заказа и точная цена, дальше она не меняется. 4. Если чего-то не хватает. Заказ принимается, даже если бриф ещё не полон: в ответе будет точный список вопросов, которых не хватает. Задайте их клиенту и отправьте ещё раз с тем же номером заказа: новые ответы добавятся к уже отправленным. Повторяйте, пока список не станет пустым. 5. Сначала проверьте. Добавьте "dry_run": true, чтобы проверить запрос так же, как настоящий: та же цена, тот же список недостающих ответов, но заказ не создаётся и никакое сообщение никуда не уходит. Пользуйтесь этим, пока готовите запрос, а настоящий отправляйте уже без этого поля. 6. Что сказать клиенту. Только то, что говорит сам адрес: сайт появится по закрытой ссылке в течение 24 часов после получения материалов; студия платит только увидев готовый сайт, и ничего не должна, если он не подошёл; после оплаты студия получает обычные файлы HTML, CSS и JavaScript без панели управления, а в течение недели после сдачи входит до 3 кругов правок. 7. Чего нельзя. Не обещайте клиенту другую цену или другой срок, чем отдаёт адрес. Не отправляйте настоящий заказ без согласия самой студии: решение за ней, не за вами. Не отвечайте на вопросы брифа сами, если клиент на них не ответил.
Что делает адрес

Один адрес, два вызова

GET

Узнать цену

Отправьте проект параметрами в адресе, в ответ придёт цена. Ничего не сохраняется.

POST

Оформить заказ

Отправьте проект в формате JSON, в ответ придёт номер заказа и та же цена. Подтверждаем по почте или в Telegram.

Адрес

GET https://fast24.dev/api/studio-order

Без параметров адрес отдаёт короткое описание сервиса. С brief=1 отдаёт вопросы брифа, с любым другим параметром отдаёт цену.

curl, без параметров

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&currency=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, с ценой

curl "https://fast24.dev/api/studio-order?type=website&pages=5&languages=2&booking=1&currency=EUR"

JavaScript

const answer = await fetch('https://fast24.dev/api/studio-order?type=website&pages=5&languages=2&booking=1&currency=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/"
}
Параметры

Параметры запроса GET

ПараметрЗначенияПо умолчанию
typelanding, website, shop, redesignwebsite
pages1–5001
languages1–201
paymentson / offoff
subscriptionson / offoff
bookingon / offoff
accountson / offoff
extra_roles0–100
integrations0–100
currencyEUR, USD, PLNEUR
brief1: вопросы брифа вместо цены—
langязык вопросов брифа: en, ru, pl, de, fr, es, pt, byen

Цена в EUR и USD одним и тем же числом, в PLN в 4 раза больше. Чтобы включить параметр «да/нет», отправьте 1, true, yes или on; чтобы оставить выключенным, не указывайте его.

Заказ

POST https://fast24.dev/api/studio-order

Отправьте проект в формате JSON. Обязательно заполните studio.email или studio.telegram: без них подтвердить заказ нельзя.

curl

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"}'

Ответ, заказ принят (201)

{
  "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/"
}
Поля

Что отправлять, что придёт в ответ

studio

ПолеОбязательноПояснение
nameнетназвание студии или агентства
websiteнетсайт студии или агентства
emailхотя бы одно из двухчтобы подтвердить заказ
telegramхотя бы одно из двухчтобы подтвердить заказ

project

ПолеЗначенияПо умолчанию
typelanding, website, shop, redesignwebsite
pages1–5001
languages1–201
paymentson / offoff
subscriptionson / offoff
bookingon / offoff
accountson / offoff
extra_roles0–100
integrations0–100
businessтекст: чем занимается клиент студии—
goalтекст: что должен сделать посетитель на сайте—
content_readyon / offoff
notesтекст: что ещё стоит сказать нам—

Остальные поля запроса

ПолеЧто означает
briefответы брифа, ключ — id вопроса из brief_questions
langязык списка missing в ответе, по умолчанию en
order_idномер уже принятого заказа: новые ответы брифа добавляются к нему, studio и project тогда не нужны
dry_runtrue: проверка запроса без заказа и без писем

Ответ на заказ

ПолеЧто означает
order_idномер заказа, например FD-MUKEOJ1N-BBC8
status"received": заказ принят, бриф полный; "brief_incomplete": заказ принят, чего не хватает — в missing; "brief_complete": ответы, присланные по order_id, дополнили бриф
missingвопросы брифа, которых ещё не хватает для начала работы; пусто, когда хватает всего
dry_runtrue, только если в запросе был dry_run
priceтот же объект, что quote в ответе GET: amount, currency, total_pages, breakdown
projectпроект с подставленными значениями по умолчанию
nextчто произойдёт дальше, одной строкой
deliveryусловие о сроке, то же, что на странице для студий
paymentусловие об оплате, то же, что на странице для студий
editsусловие о правках, то же, что на странице для студий
termsссылка на условия договора
studiosссылка на цены для студий
Ошибки

Что может прийти вместо цены

КодОшибкаКогда
400{ "error": "Send JSON: {studio, project, currency}" }тело запроса не разбирается как JSON
400{ "error": "studio.email or studio.telegram is required, so we can confirm the order" }не заполнено ни studio.email, ни studio.telegram
413{ "error": "Request too large" }тело запроса больше 20 000 байт
429{ "error": "Too many orders from this address, try again in an hour" }больше 10 заказов с одного IP-адреса за час
404{ "error": "order_id not found" }заказа с таким order_id нет
Ограничения

Что разрешает адрес

  • Открыт любому сайту: адрес отвечает на запросы с любого источника (CORS).
  • Методы: GET, POST и OPTIONS.
  • Тело POST — до 20 000 байт.
  • До 10 заказов в час с одного IP-адреса; у GET такого предела нет.
После заказа

Что происходит после POST

В ответе на заказ сразу приходят его номер и точная цена. Мы сохраняем его так же, как заявку с формы на сайте, подтверждаем по почте или в Telegram и просим материалы в течение 15 минут.

Условия о сроке, оплате и правках в каждом ответе — те же, что на странице для студий.

Полное описание

Для программы или ИИ-агента

Полное машиночитаемое описание обоих вызовов — в openapi.json.

Вопросы по подключению: [email protected].