FAST DEV 24
Para estúdios web e agentes de IA

Preço e pedido de sites por API

Um endereço no nosso site devolve um preço fixo e regista um pedido em JSON. Chame-o a partir do seu próprio sistema, de um bot ou de um agente de IA, pelo mesmo preço da página de estúdios.

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.",
  …
}

Resposta abreviada da API a um pedido de preço

Como corre um pedido

Do agente do seu estúdio ao site pronto

  1. O agente do seu estúdio

    O seu agente ou o seu próprio programa chama o endereço e recebe logo o preço.

  2. Perguntas do briefing

    O agente faz ao seu cliente as perguntas do briefing: o que faz o negócio e o que deve fazer um visitante.

  3. O pedido

    O POST devolve um número de pedido e o mesmo preço. Confirmamos por e-mail ou Telegram.

  4. Site em 24 horas

    Online em 24 horas a partir do nosso e-mail a confirmar que temos tudo.

Página de vagas da WNR Group num portátil e uma vaga num telemóvel
wnrgroup.work — o site em funcionamento do nosso cliente

Esta página é uma referência técnica. O preço e as condições para estúdios estão na página de estúdios.

Para um agente de IA

Instruções para o agente

Um texto que o seu estúdio entrega ao seu agente de IA: como consultar o preço, que perguntas do briefing fazer e como fazer o pedido.

Instruções
Instruções para o seu agente Está a atuar em nome de um estúdio web na fast24.dev. Tudo passa por um único endereço: https://fast24.dev/api/studio-order. Descrição completa para máquinas: https://fast24.dev/openapi.json. Instruções completas para um programa: https://fast24.dev/studios/api/agent.md. 1. O preço. Envie um GET para este endereço com os parâmetros do projeto (tipo, páginas, línguas, moeda, extras): a resposta traz o preço fixo. Esta chamada não guarda nada. 2. Entreviste o cliente. Envie um GET para este endereço com brief=1 e lang na língua do cliente: a resposta traz as perguntas do brief do estúdio, as mais importantes primeiro, cada uma marcada consoante seja necessária para começar o site. Faça ao cliente uma ou duas perguntas de cada vez, por essa ordem, na língua dele, não na língua destas instruções. Nunca invente uma resposta pelo cliente: uma resposta vazia ou «não sei» também é uma resposta, transmita-a tal como é. Se duas respostas do cliente se contradisserem (por exemplo, duas cidades diferentes), não escolha você: deixe o campo em branco e avise o estúdio dessa contradição. 3. Envie o pedido. Envie um POST com o contacto do estúdio (e-mail ou Telegram), o projeto e as respostas do brief que recolheu, sob o número de cada pergunta. A resposta traz um número de pedido e o preço fixo, que já não muda depois. 4. Se ainda faltar algo. O pedido é aceite mesmo que o brief não esteja completo: a resposta indica exatamente que perguntas faltam. Faça-as ao cliente e envie-as de novo com o mesmo número de pedido: as novas respostas juntam-se às já recebidas. Repita até a lista ficar vazia. 5. Teste primeiro. Acrescente "dry_run": true para verificar um pedido exatamente como um real: mesmo preço, mesma lista de faltas, mas não se cria nenhum pedido nem sai nenhuma mensagem. Use isto enquanto prepara o pedido, e envie o real já sem este campo. 6. O que dizer ao cliente. Só o que o próprio endereço diz: o site fica online num link privado em 24 horas depois de chegar o conteúdo; o estúdio paga só depois de ver o site pronto, e não deve nada se não gostar; depois do pagamento, o estúdio recebe ficheiros HTML, CSS e JavaScript sem painel de administração, e na semana após a entrega estão incluídas até 3 rondas de alterações. 7. O que não deve fazer. Não prometa ao cliente um preço nem um prazo diferentes dos que o endereço devolve. Não envie um pedido real sem o aval do próprio estúdio: a decisão é dele, não sua. Não responda você mesmo às perguntas do brief quando o cliente não as tiver respondido.
O que este endereço faz

Um endereço, duas chamadas

GET

Consultar um preço

Envie o projeto como parâmetros no endereço e a resposta traz o preço. Nada é guardado.

POST

Fazer um pedido

Envie o projeto em JSON e a resposta traz um número de pedido e o mesmo preço. Confirmamos por e-mail ou Telegram.

Endereço

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

Chamado sem parâmetros, devolve uma descrição curta do serviço. Com brief=1 devolve as perguntas do brief; com qualquer outro parâmetro, um preço.

curl, sem parâmetros

curl "https://fast24.dev/api/studio-order"

Resposta

{
  "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, com um preço

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

Resposta

{
  "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/"
}
Parâmetros

Parâmetros da consulta GET

ParâmetroValoresPadrão
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: as perguntas do brief em vez de um preço—
langlíngua das perguntas do brief: en, ru, pl, de, fr, es, pt, byen

Em EUR e USD o preço é o mesmo número; em PLN é 4 vezes maior. Para ligar um parâmetro sim/não, envie 1, true, yes ou on; para o deixar desligado, não o envie.

Pedido

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

Envie o projeto em JSON. studio.email ou studio.telegram é obrigatório, senão não conseguimos confirmar o pedido.

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

Resposta, pedido recebido (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/"
}
Campos

O que se envia, o que volta

studio

CampoObrigatórioNota
namenãonome do estúdio ou da agência
websitenãosite do estúdio ou da agência
emailpelo menos um dos doispara podermos confirmar o pedido
telegrampelo menos um dos doispara podermos confirmar o pedido

project

CampoValoresPadrão
typelanding, website, shop, redesignwebsite
pages1–5001
languages1–201
paymentson / offoff
subscriptionson / offoff
bookingon / offoff
accountson / offoff
extra_roles0–100
integrations0–100
businesstexto: o que faz o negócio do cliente do estúdio—
goaltexto: o que um visitante deve fazer no site—
content_readyon / offoff
notestexto: qualquer outra coisa que valha a pena dizer—

Outros campos do pedido

CampoO que significa
briefas respostas do brief, com o id da pergunta de brief_questions como chave
langlíngua da lista missing na resposta, en por omissão
order_idnúmero de um pedido já recebido: as novas respostas do brief juntam-se a ele, e studio e project deixam de ser obrigatórios
dry_runtrue: verifica o pedido sem criar encomenda nem enviar mensagens

A resposta a um pedido

CampoO que significa
order_ido número do pedido, por exemplo FD-MUKEOJ1N-BBC8
status"received": pedido recebido, brief completo; "brief_incomplete": pedido recebido, o que falta está em missing; "brief_complete": as respostas enviadas com order_id completaram o brief
missingas perguntas do brief que ainda faltam para começar; vazio quando não falta nada
dry_runtrue só quando o pedido trazia dry_run
priceo mesmo objeto que quote na resposta do GET: amount, currency, total_pages, breakdown
projecto projeto com os valores padrão aplicados
nexto que acontece a seguir, numa linha
deliverya condição de entrega, o mesmo texto da página de estúdios
paymenta condição de pagamento, o mesmo texto da página de estúdios
editsa condição sobre alterações, o mesmo texto da página de estúdios
termsum link para as condições do contrato
studiosum link para os preços para estúdios
Erros

O que pode voltar em vez de um preço

CódigoErroQuando
400{ "error": "Send JSON: {studio, project, currency}" }o corpo não é um JSON válido
400{ "error": "studio.email or studio.telegram is required, so we can confirm the order" }não foi preenchido nem studio.email nem studio.telegram
413{ "error": "Request too large" }o corpo do pedido passa de 20 000 bytes
429{ "error": "Too many orders from this address, try again in an hour" }mais de 10 pedidos a partir do mesmo IP numa hora
404{ "error": "order_id not found" }não existe pedido com esse order_id
Limites

O que este endereço permite

  • Aberto a qualquer site: o endereço responde a pedidos de qualquer origem (CORS).
  • Métodos: GET, POST e OPTIONS.
  • Um corpo de POST até 20 000 bytes.
  • Até 10 pedidos por hora a partir do mesmo IP; o GET não tem esse limite.
Depois do pedido

O que acontece depois de um POST

O pedido recebe um número e o preço fixo logo na resposta. Guardamo-lo da mesma forma que um pedido enviado pelo formulário do site, confirmamos por e-mail ou Telegram e pedimos o conteúdo em 15 minutos.

As condições de entrega, pagamento e alterações são, em cada resposta, as mesmas da página de estúdios.

Descrição completa

Para um programa ou um agente de IA

A descrição completa das duas chamadas, em formato lido por máquina, está em openapi.json.

Dúvidas sobre a integração: [email protected].