Entre com email, Google ou Apple em auth.3mm.com.br.
Construa com a API da 3M
Chat, geração de imagem, vídeo, objeto 3D e sites completos -- tudo por uma API HTTP simples, autenticada por chave de projeto.
Da conta à primeira chamada
Em Chaves, crie uma credencial com account_id, site_id e project_key próprios.
Envie os 3 headers de autenticação para qualquer endpoint /api/v1/*.
Autenticação
Toda chamada pública leva três headers, obtidos ao criar uma credencial em platform.3mm.com.br/chaves.
Endpoints
Chat geral com continuidade de sessão. Use sessionId/previousResponseId para manter contexto entre chamadas.
{
"prompt": "Resuma os pontos principais do meu plano de lançamento.",
"sessionId": "sess_8f2a1c",
"useKnowledge": true
}{
"id": "sess_8f2a1c",
"message": "Aqui está o resumo...",
"previousResponseId": "resp_91a2",
"provider": "3m-chat"
}Geração de imagem a partir de prompt, com opção de imagem de referência e proporção.
{
"prompt": "Banner promocional para uma loja de café artesanal, tons quentes.",
"imageAspectRatio": "16:9"
}{
"id": "pred_5a91",
"output": ["https://cdn.3mm.com.br/generated/5a91.png"],
"predictionIds": ["pred_5a91"],
"provider": "replicate:nano-banana",
"status": "succeeded"
}Geração de vídeo curto a partir de um prompt de texto.
{
"prompt": "Vídeo curto mostrando um produto girando em fundo neutro, 5 segundos."
}{
"id": "pred_c02e",
"output": ["https://cdn.3mm.com.br/generated/c02e.mp4"],
"predictionIds": ["pred_c02e"],
"provider": "replicate:kling",
"status": "processing"
}Geração de objeto 3D a partir de prompt e, opcionalmente, uma imagem de referência.
{
"prompt": "Vaso de cerâmica minimalista para renderização em e-commerce.",
"referenceImageUrl": "https://meusite.com/referencia.png"
}{
"id": "pred_11fa",
"output": ["https://cdn.3mm.com.br/generated/11fa.glb"],
"predictionIds": ["pred_11fa"],
"provider": "replicate:object-3d",
"status": "succeeded"
}Geração de um pacote de site completo: seções, copy, código e preview.
{
"prompt": "Site institucional para uma clínica odontológica, visual clean."
}{
"id": "site_77ab",
"output": ["https://cdn.3mm.com.br/generated/site-77ab.zip"],
"predictionIds": ["site_77ab"],
"provider": "3m-site",
"status": "succeeded"
}Exemplos de código
curl -X POST "https://www.3mm.com.br/api/v1/chat" \
-H "Content-Type: application/json" \
-H "x-3m-account-id: $THREEM_ACCOUNT_ID" \
-H "x-3m-site-id: $THREEM_SITE_ID" \
-H "x-3m-project-key: $THREEM_PROJECT_KEY" \
-d '{"prompt":"Diga oi em uma frase."}'const response = await fetch("https://www.3mm.com.br/api/v1/chat", {
method: "POST",
headers: {
"Content-Type": "application/json",
"x-3m-account-id": process.env.THREEM_ACCOUNT_ID,
"x-3m-site-id": process.env.THREEM_SITE_ID,
"x-3m-project-key": process.env.THREEM_PROJECT_KEY,
},
body: JSON.stringify({ prompt: "Diga oi em uma frase." }),
});
const data = await response.json();
console.log(data.message);import os
import requests
response = requests.post(
"https://www.3mm.com.br/api/v1/chat",
headers={
"Content-Type": "application/json",
"x-3m-account-id": os.environ["THREEM_ACCOUNT_ID"],
"x-3m-site-id": os.environ["THREEM_SITE_ID"],
"x-3m-project-key": os.environ["THREEM_PROJECT_KEY"],
},
json={"prompt": "Diga oi em uma frase."},
)
print(response.json()["message"])Códigos de erro
Validando chamadas no seu backend
Se você expõe suas próprias rotas para outros consumidores, valide a credencial de projeto assim:
import {
unauthorizedProjectApiClientResponse,
verifyProjectApiClientRequest,
} from "@/lib/project-api-client-auth";
export async function POST(request: Request) {
const auth = await verifyProjectApiClientRequest(request);
if (!auth.ok) {
return unauthorizedProjectApiClientResponse(auth.reason);
}
return Response.json({ ok: true, project: auth.client.label });
}Para tutoriais, integrações e dúvidas frequentes, veja a documentação completa em docs.3mm.com.br.