{"name":"samehand","description":"Reescreve texto curto na voz MEDIDA de um autor, e mostra o que cortou. Serve para usar IA sem que o texto denuncie que é de IA. Cliente: agente e humano.","build":"359bbfd6","base_url":"https://staging.samehand.app","docs":{"llms":"https://staging.samehand.app/llms.txt","llms_full":"https://staging.samehand.app/llms-full.txt","openapi":"https://staging.samehand.app/openapi.json","mcp":"https://staging.samehand.app/mcp","pricing":"https://staging.samehand.app/api/pricing","billing":"https://staging.samehand.app/api/billing","human_ui":"https://staging.samehand.app/","data_indexes":[{"id":"cep","produto":"https://pontofato.com","caminho":"/enderecos","title":"CEPs e endereços","description":"Encontre endereços por lugar, com coordenadas e referência de 2022. Não certifica CEP vigente.","hierarchy":"UF → município → bairro/localidade → rua → endereços","url":"https://api.pontofato.com/enderecos/","formats":{"html":"https://api.pontofato.com/enderecos/","json":"https://api.pontofato.com/enderecos/index.json","md":"https://api.pontofato.com/enderecos/index.md","okf":"https://api.pontofato.com/enderecos/index.okf.md"},"llms":"https://api.pontofato.com/enderecos/llms.txt","openapi":"https://api.pontofato.com/enderecos/openapi.json","mcp":"https://api.pontofato.com/enderecos/mcp","okf":"https://api.pontofato.com/enderecos/okf/index.md","access":"public-read-only","pagination":{"max_items":20,"next":"links.proximo"},"updates":"manual"},{"id":"editais","produto":"https://editalmd.com","caminho":"/licitacoes","title":"Editais e compras públicas","description":"Encontre compras públicas por lugar e período. Consulte documentos e opções de leitura no EditalMD.","hierarchy":"Modalidade → UF → ano → mês → dia → município → compras","url":"https://api.editalmd.com/licitacoes/","formats":{"html":"https://api.editalmd.com/licitacoes/","json":"https://api.editalmd.com/licitacoes/index.json","md":"https://api.editalmd.com/licitacoes/index.md","okf":"https://api.editalmd.com/licitacoes/index.okf.md"},"llms":"https://api.editalmd.com/licitacoes/llms.txt","openapi":"https://api.editalmd.com/licitacoes/openapi.json","mcp":"https://api.editalmd.com/licitacoes/mcp","okf":"https://api.editalmd.com/licitacoes/okf/index.md","access":"public-read-only","pagination":{"max_items":20,"next":"links.proximo"},"updates":"manual"}]},"conventions":{"format":"JSON em `/api/*`.","cors":"`Access-Control-Allow-Origin: *` nas rotas de agente.","x402":"Reescrita além da franquia: HTTP 402 + X-PAYMENT, ou crédito pré-pago.","parity":"Mexeu na UI/API → apidocs + MCP no mesmo PR."},"auth":{"none":"Público.","token":"Token de operador `METRICS_TOKEN` em `Authorization: Bearer` (métricas).","credito":"Token de crédito em `Authorization: Bearer cred_…` (ou header `X-Credito`). Não é conta: é portador de saldo.","session":"Global session in the product's HttpOnly cookie; writes require exact Origin and X-CSRF-Token."},"endpoints":[{"method":"GET","path":"/api/auth/bootstrap","auth":"none","grupo":"Account","summary":"Prepare the browser for global sign-in.","desc":"Sets a host-only HttpOnly browser cookie. CSRF is bound to the current session. No CORS.","retorno":{"csrf":{"tipo":"string","desc":"X-CSRF-Token"},"context":{"tipo":"string","desc":"Opaque view context, also in X-MM-Context; not a credential / contexto opaco da vista, não é credencial."}},"erros":{"400":"invalid_request","403":"invalid_origin / invalid_csrf","503":"auth_unavailable: a sessão anterior é preservada / the previous session is preserved"},"returns":"{ csrf, context }","url":"https://staging.samehand.app/api/auth/bootstrap","auth_detail":"Público."},{"method":"GET","path":"/api/account/profile","auth":"session","grupo":"Account","exemplo":"await fetch(\"$ORIGIN/api/account/profile\", {credentials: \"same-origin\"}).then(r => r.json());","exemploLinguagem":"js","summary":"Read your global profile.","desc":"Reads current preferences from the account. Edit them on your account page; products never own a separate profile.","retorno":{"_texto":"{profile:{name,locale,timeZone,theme,revision}}"},"erros":{"401":"invalid_session","503":"auth_unavailable"},"returns":"{profile:{name,locale,timeZone,theme,revision}}","url":"https://staging.samehand.app/api/account/profile","auth_detail":"Global session in the product's HttpOnly cookie; writes require exact Origin and X-CSRF-Token."},{"method":"GET","path":"/api/account/avatar","auth":"session","grupo":"Account","exemplo":"await fetch(\"$ORIGIN/api/account/avatar\", {credentials: \"same-origin\"}).then(r => {if (!r.ok) throw new Error(\"HTTP \" + r.status); return r.blob();});","exemploLinguagem":"js","summary":"Read your global profile photo.","desc":"Private WebP, up to 64 KiB, no cache. Change it on your account. No user ID or object URL accepted.","retorno":{"_texto":"image/webp; Cache-Control: no-store"},"erros":{"401":"invalid_session","404":"not_found: no photo / sem foto","503":"auth_unavailable"},"returns":"image/webp; Cache-Control: no-store","url":"https://staging.samehand.app/api/account/avatar","auth_detail":"Global session in the product's HttpOnly cookie; writes require exact Origin and X-CSRF-Token."},{"method":"GET","path":"/api/me","auth":"session","grupo":"Account","exemplo":"await fetch(\"$ORIGIN/api/me\", {credentials: \"same-origin\"}).then(r => r.json());","exemploLinguagem":"js","summary":"Read the current global account in this product.","retorno":{"_texto":"{user:{identityId,sessionId,productId,audience,authTime,methods,mfaState}}"},"erros":{"401":"invalid_session","503":"auth_unavailable"},"returns":"{user:{identityId,sessionId,productId,audience,authTime,methods,mfaState}}","url":"https://staging.samehand.app/api/me","auth_detail":"Global session in the product's HttpOnly cookie; writes require exact Origin and X-CSRF-Token."},{"method":"POST","path":"/api/auth/logout","auth":"session","grupo":"Account","exemplo":"// Execute no console da página do produto / Run in the product page console.\n(async () => {\n  const origin = \"$ORIGIN\";\n  const {csrf} = await fetch(origin + \"/api/auth/bootstrap\").then(r => r.json());\n  const r = await fetch(origin + \"/api/auth/logout\", {\n    method: \"POST\", credentials: \"same-origin\",\n    headers: {\"Content-Type\": \"application/json\", \"X-CSRF-Token\": csrf},\n    body: JSON.stringify({})\n  });\n  if (!r.ok) throw new Error(\"Auth HTTP \" + r.status);\n  return r.json();\n})();","exemploLinguagem":"js","summary":"Revoke this product session.","desc":"Bootstrap/CSRF must belong to this browser and session. Other product sessions remain active.","retorno":{"ok":{"tipo":"bool","desc":"true"}},"erros":{"400":"invalid_request","403":"invalid_origin / invalid_csrf","503":"auth_unavailable: a sessão anterior é preservada / the previous session is preserved"},"returns":"{ ok }","url":"https://staging.samehand.app/api/auth/logout","auth_detail":"Global session in the product's HttpOnly cookie; writes require exact Origin and X-CSRF-Token."},{"method":"GET","path":"/api/account/keys","auth":"session","grupo":"Account","summary":"List your API keys in this product.","desc":"Never returns the key itself: name, last 4 characters, organization, creation, last use (hourly) and whether it still works.","retorno":{"keys":{"tipo":"object[]","desc":"`id`, `name`, `organizationId`, `last4`, `createdAt`, `lastUsedAt`, `revokedAt`, `active` (false when revoked or stopped by a password change / ending all sessions)."}},"erros":{"401":"invalid_session","503":"auth_unavailable"},"exemplo":"await fetch(\"$ORIGIN/api/account/keys\", {credentials: \"same-origin\"}).then(r => r.json());","exemploLinguagem":"js","returns":"{ keys }","url":"https://staging.samehand.app/api/account/keys","auth_detail":"Global session in the product's HttpOnly cookie; writes require exact Origin and X-CSRF-Token."},{"method":"POST","path":"/api/account/keys/create","auth":"session","grupo":"Account","summary":"Create an API key for agents and scripts.","desc":"Needs a sign-in in the last 5 minutes; an organization key also needs a second factor in the session and the owner/admin role with this product enabled. At most 10 live keys per account and product. The key (`secret`) is returned ONCE.","corpo":{"name":{"tipo":"string","obrigatorio":true,"desc":"Up to 60 characters."},"organizationId":{"tipo":"string","nulo":true,"obrigatorio":true,"desc":"`null` for an account key."}},"body":{"name":"agent","organizationId":null},"retorno":{"key":{"tipo":"object","desc":"`id`, `name`, `organizationId`, `last4`, `createdAt`."},"secret":{"tipo":"string","desc":"`mmk_…`, shown once."}},"erros":{"400":"invalid_key_name / invalid_organization","401":"invalid_session / reauth_required","403":"invalid_origin / invalid_csrf / organization_forbidden / organization_mfa_required","409":"key_limit_reached","503":"auth_unavailable"},"exemplo":"(async () => {\n  const {csrf} = await fetch(\"$ORIGIN/api/auth/bootstrap\").then(r => r.json());\n  const r = await fetch(\"$ORIGIN/api/account/keys/create\", {method: \"POST\", credentials: \"same-origin\",\n    headers: {\"Content-Type\": \"application/json\", \"X-CSRF-Token\": csrf},\n    body: JSON.stringify({name: \"agent\", organizationId: null})});\n  return r.json();\n})();","exemploLinguagem":"js","returns":"{ key, secret }","url":"https://staging.samehand.app/api/account/keys/create","auth_detail":"Global session in the product's HttpOnly cookie; writes require exact Origin and X-CSRF-Token."},{"method":"POST","path":"/api/account/keys/revoke","auth":"session","grupo":"Account","summary":"Revoke one of your API keys.","desc":"Stops the key at once. Repeating is harmless.","corpo":{"id":{"tipo":"string","obrigatorio":true,"desc":"The key `id`."}},"body":{"id":"…"},"retorno":{"ok":{"tipo":"bool","desc":"true"}},"erros":{"400":"invalid_key_id","401":"invalid_session","403":"invalid_origin / invalid_csrf","404":"key_not_found","503":"auth_unavailable"},"exemplo":"(async () => {\n  const {csrf} = await fetch(\"$ORIGIN/api/auth/bootstrap\").then(r => r.json());\n  const r = await fetch(\"$ORIGIN/api/account/keys/revoke\", {method: \"POST\", credentials: \"same-origin\",\n    headers: {\"Content-Type\": \"application/json\", \"X-CSRF-Token\": csrf},\n    body: JSON.stringify({id: \"…\"})});\n  return r.json();\n})();","exemploLinguagem":"js","returns":"{ ok }","url":"https://staging.samehand.app/api/account/keys/revoke","auth_detail":"Global session in the product's HttpOnly cookie; writes require exact Origin and X-CSRF-Token."},{"method":"GET","path":"/agent.json","auth":"none","summary":"Agent card: identity, operator, documentation, the MCP endpoint and the tools it serves. Same document as `/.well-known/agent-card.json`.","grupo":"Discovery","retorno":{"_texto":"`application/json`: `name`, `provider`, `protocol` (`mcp`), `interfaces[]` and `skills[]`."},"exemplo":"curl -s $ORIGIN/agent.json","returns":"`application/json`: `name`, `provider`, `protocol` (`mcp`), `interfaces[]` and `skills[]`.","url":"https://staging.samehand.app/agent.json","auth_detail":"Público."},{"method":"GET","path":"/okf/:arquivo","auth":"none","summary":"OKF bundle (Open Knowledge Format v0.1): markdown with frontmatter so an agent reads the whole product without parsing HTML.","grupo":"Discovery","params":{"arquivo":{"desc":"`index.md`, `sobre.md`, `api.md` or `faq.md`.","exemplo":"index.md"}},"retorno":{"_texto":"`text/markdown`. Start at `/okf/index.md`, which lists the bundle."},"erros":{"404":"File outside the bundle."},"exemplo":"curl -s $ORIGIN/okf/index.md","returns":"`text/markdown`. Start at `/okf/index.md`, which lists the bundle.","url":"https://staging.samehand.app/okf/:arquivo","auth_detail":"Público."},{"method":"GET","path":"/.well-known/:arquivo","auth":"none","summary":"Machine discovery before the home page: `api-catalog` (RFC 9727, a linkset with the API and the MCP), `security.txt` (RFC 9116), `x402` (payment manifest: network, wallet and the routes that charge) and `mcp-registry-auth` (the official MCP registry key).","grupo":"Discovery","params":{"arquivo":{"desc":"`api-catalog`, `security.txt`, `x402`, `mcp-registry-auth` or `apis.json`.","exemplo":"api-catalog"}},"retorno":{"_texto":"`application/linkset+json` for the api-catalog; `application/json` for x402 and apis.json; `text/plain` for the other two."},"erros":{"404":"Name outside the five published."},"exemplo":"curl -s $ORIGIN/.well-known/api-catalog","returns":"`application/linkset+json` for the api-catalog; `application/json` for x402 and apis.json; `text/plain` for the other two.","url":"https://staging.samehand.app/.well-known/:arquivo","auth_detail":"Público."},{"method":"GET","path":"/apis.json","auth":"none","summary":"APIs.json (apisjson.org, 0.19): the index APIs.io harvests — the API, the MCP, OpenAPI, guide and OKF bundle in one file. Also at `/.well-known/apis.json`.","grupo":"Discovery","retorno":{"_texto":"`application/json` in the APIs.json 0.19 format: `apis[]` with `baseURL`, `humanURL` and `properties[]`."},"exemplo":"curl -s $ORIGIN/apis.json","returns":"`application/json` in the APIs.json 0.19 format: `apis[]` with `baseURL`, `humanURL` and `properties[]`.","url":"https://staging.samehand.app/apis.json","auth_detail":"Público."},{"method":"GET","path":"/api/","auth":"none","summary":"Índice auto-descrito: cada rota, o que cobra e como plugar o MCP.","grupo":"Descoberta","retorno":{"name":{"tipo":"string","desc":"Nome do produto."},"description":{"tipo":"string","desc":"O que o produto faz."},"build":{"tipo":"string","desc":"Commit publicado."},"base_url":{"tipo":"string","desc":"Origem em que esta API está servindo."},"docs":{"tipo":"object","desc":"Links para llms.txt, OpenAPI, MCP e a UI."},"endpoints":{"tipo":"object[]","desc":"Catálogo de endpoints."},"mcp_tools":{"tipo":"string[]","desc":"Tools do MCP."}},"returns":"{ name, description, build, base_url, docs, endpoints, mcp_tools }","url":"https://staging.samehand.app/api/","auth_detail":"Público."},{"method":"GET","path":"/api/health","auth":"none","grupo":"Descoberta","summary":"Vivacidade, tamanho do banco de exemplos e modelo em uso.","retorno":"Saude","exemplo":"curl -s $ORIGIN/api/health","returns":"{ ok, build, exemplos, modelo, protocolo }","url":"https://staging.samehand.app/api/health","auth_detail":"Público."},{"method":"POST","path":"/mcp","auth":"none","summary":"MCP Streamable HTTP — as tools deste catálogo, despachadas neste mesmo Worker.","grupo":"Descoberta","retorno":{"_texto":"JSON-RPC 2.0 (`initialize`, `tools/list`, `tools/call`)."},"exemplo":"curl -s -XPOST $ORIGIN/mcp -H 'content-type: application/json' -d '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"tools/list\"}'","returns":"JSON-RPC 2.0 (`initialize`, `tools/list`, `tools/call`).","url":"https://staging.samehand.app/mcp","auth_detail":"Público."},{"method":"GET","path":"/api/estilo","auth":"none","summary":"O estilo medido do autor: as marcas dele, em distribuição, com o tamanho da amostra.","grupo":"Voz","retorno":"StyleCard","exemplo":"curl -s $ORIGIN/api/estilo","returns":"{ geradoEm, desde, medidas{resposta,post} }","url":"https://staging.samehand.app/api/estilo","auth_detail":"Público."},{"method":"POST","path":"/api/rewrite","auth":"credito","summary":"Reescreve um texto curto na voz medida do autor, mostrando o que foi cortado.","grupo":"Voz","preco":"$PRECO_REESCRITA_USD por reescrita além da franquia diária por IP","corpo":{"texto":{"tipo":"string","desc":"O que reescrever. Texto de IA ou a ideia crua.","req":true},"contexto":{"tipo":"string","desc":"A conversa ou o assunto. Referência, nunca respondida."},"registro":{"tipo":"string","desc":"`resposta` (padrão) ou `post`."},"instrucoes":{"tipo":"string","desc":"Regras do autor sobre a própria voz, uma por linha."},"estilos":{"tipo":"object[]","desc":"Até 5 `{id, nome, prompt}`. Cada estilo é uma variante — e uma chamada ao modelo."}},"retorno":"Reescrita","erros":{"400":"`texto_vazio` ou `json_invalido`.","402":"Franquia do dia esgotada: pague com x402 ou crédito pré-pago.","413":"`texto_longo` — o teto é 4000 caracteres.","502":"`falha_upstream` — o provedor do modelo não respondeu.","503":"`sem_credencial` — o Worker está sem modelo configurado."},"exemplo":"curl -s -XPOST $ORIGIN/api/rewrite -H 'content-type: application/json' -d '{\"texto\":\"This is not just a flaw, it is a breach of trust.\",\"registro\":\"post\"}'","returns":"{ registro, entrada, aviso, variantes[{estilo,texto,passou,achados,palavras,tirado,palavrasAMenos,diff}], falhas[{estilo,motivo}], uso, cota }","url":"https://staging.samehand.app/api/rewrite","auth_detail":"Token de crédito em `Authorization: Bearer cred_…` (ou header `X-Credito`). Não é conta: é portador de saldo."},{"method":"POST","path":"/api/credito","auth":"none","summary":"Recarrega crédito pré-pago: paga uma vez com x402 e recebe o token que desconta em qualquer API da casa.","grupo":"Crédito","query":{"usd":{"tipo":"int","desc":"Pacote: 1, 5, 10 ou 25 dólares.","obrigatorio":true}},"retorno":{"token":{"tipo":"string","desc":"Token portador do saldo (`cred_…`). Mostrado UMA vez — não há como recuperá-lo."},"saldo_usd":{"tipo":"string","desc":"Saldo creditado."},"guarde":{"tipo":"string","desc":"Aviso de que o token é o portador do crédito."},"usar":{"tipo":"string","desc":"Como apresentar o token nas rotas pagas."},"saldo_em":{"tipo":"string","desc":"Onde consultar saldo e extrato."}},"erros":{"400":"Pacote fora da lista (1, 5, 10 ou 25).","402":"Sem pagamento — o corpo traz `accepts[]` do x402."},"exemplo":"curl -s -XPOST '$ORIGIN/api/credito?usd=10'","returns":"{ token, saldo_usd, guarde, usar, saldo_em }","url":"https://staging.samehand.app/api/credito","auth_detail":"Público."},{"method":"GET","path":"/api/credito","auth":"credito","summary":"Saldo e extrato do crédito — as últimas movimentações, sem devolver o token.","grupo":"Crédito","retorno":{"saldo_micros":{"tipo":"int","desc":"Saldo em micro-dólares (1e-6 USD)."},"saldo_usd":{"tipo":"string","desc":"Saldo formatado."},"criado_em":{"tipo":"string","desc":"Quando o crédito foi aberto."},"movimentos":{"tipo":"object[]","desc":"Entradas e saídas recentes, com produto e recurso."}},"erros":{"401":"Sem token ou token desconhecido."},"exemplo":"curl -s $ORIGIN/api/credito -H 'Authorization: Bearer cred_…'","returns":"{ saldo_micros, saldo_usd, criado_em, movimentos }","url":"https://staging.samehand.app/api/credito","auth_detail":"Token de crédito em `Authorization: Bearer cred_…` (ou header `X-Credito`). Não é conta: é portador de saldo."},{"method":"GET","path":"/api/vitrine","auth":"none","grupo":"Public stats","summary":"The product's public numbers: traffic, agents, usage and reliability, no money.","desc":"Projection published hourly by the house collector, rounded to two significant digits; `null` is a missing measurement, never zero. 15-minute cache with ETag (`If-None-Match` → 304). There is no way to send numbers through this route: publishing belongs to the collector, with its own token.","retorno":{"v":{"tipo":"int","desc":"Contract version (1)."},"produto":{"tipo":"string","desc":"Product id."},"publicado":{"tipo":"bool","desc":"`false` before the collector's first publication; then only these five keys come."},"atualizado_em":{"tipo":"string","desc":"When the collector published (ISO 8601).","nulo":true},"stale":{"tipo":"bool","desc":"`true` when the projection is older than 26 h."},"nome":{"tipo":"string","desc":"Product name.","opcional":true},"desde":{"tipo":"string","desc":"First day the series covers.","nulo":true,"opcional":true},"fuso":{"tipo":"string","desc":"Time zone of the days (`UTC`).","opcional":true},"hoje":{"tipo":"object","desc":"Today: pages by class (human, AI, bot), API calls by class, machine-surface reads and product usage.","opcional":true},"dias":{"tipo":"object[]","desc":"Up to 31 days, oldest first: `dia`, `paginas`, `api`, `api_ia`, `maquina`, `visitantes`, `uso`.","opcional":true},"janelas":{"tipo":"object","desc":"7- and 30-day sums (`d7`, `d30`).","opcional":true},"visitantes":{"tipo":"object","desc":"Unique visitors at the edge over 7 days.","opcional":true},"pessoas":{"tipo":"object","desc":"GA4 when available: users, sessions, countries, devices and who arrived from AI.","nulo":true,"opcional":true},"agentes":{"tipo":"object","desc":"The AI agents and bots that read the most, 7 days.","opcional":true},"superficies":{"tipo":"object","desc":"Reads of OKF, llms, well-known, OpenAPI and MCP over 7 days.","opcional":true},"mcp":{"tipo":"object","desc":"MCP calls over 7 days.","opcional":true},"uso":{"tipo":"object","desc":"Real product usage per resource: label, today, 7 and 30 days.","opcional":true},"contas":{"tipo":"object","desc":"Users and guests.","nulo":true,"opcional":true},"confiabilidade":{"tipo":"object","desc":"Share of requests without 5xx over 7 days, and the live build.","opcional":true},"catalogo":{"tipo":"object","desc":"Size of the catalog, when the product has one.","nulo":true,"opcional":true},"apoio":{"tipo":"object","desc":"Impressions and clicks per sponsor, when any.","opcional":true}},"exemplo":"curl -s $ORIGIN/api/vitrine","returns":"{ v, produto, publicado, atualizado_em, stale, nome?, desde?, fuso?, hoje?, dias?, janelas?, visitantes?, pessoas?, agentes?, superficies?, mcp?, uso?, contas?, confiabilidade?, catalogo?, apoio? }","url":"https://staging.samehand.app/api/vitrine","auth_detail":"Público."},{"method":"GET","path":"/api/vitrine/operador","auth":"none","grupo":"Public stats","summary":"The product's full document on the operator panel — operator token only.","headers":{"Authorization":{"tipo":"string","desc":"`Bearer <METRICS_TOKEN>` — the operator class.","obrigatorio":true}},"retorno":{"produto":{"tipo":"string","desc":"Product id."},"atualizado_em":{"tipo":"string","desc":"When the collector published.","nulo":true},"operador":{"tipo":"object","desc":"The collector's full document, with what the public projection leaves out.","nulo":true}},"erros":{"401":"No token, wrong token or a token of another class.","503":"Worker without `METRICS_TOKEN` or without the control plane."},"exemplo":"curl -s $ORIGIN/api/vitrine/operador -H \"Authorization: Bearer $METRICS_TOKEN\"","returns":"{ produto, atualizado_em, operador }","url":"https://staging.samehand.app/api/vitrine/operador","auth_detail":"Público."},{"method":"GET","path":"/api/vitrine/painel","auth":"none","grupo":"Public stats","summary":"The whole house panel, in the shape the gm reads — operator token only.","headers":{"Authorization":{"tipo":"string","desc":"`Bearer <METRICS_TOKEN>` — the operator class.","obrigatorio":true}},"retorno":{"apps":{"tipo":"object[]","desc":"One operator document per product, ordered by id."},"updated":{"tipo":"string","desc":"When the collector closed the round.","opcional":true},"totals":{"tipo":"object","desc":"House totals.","opcional":true}},"erros":{"401":"No token, wrong token or a token of another class.","503":"Worker without `METRICS_TOKEN` or without the control plane."},"exemplo":"curl -s $ORIGIN/api/vitrine/painel -H \"Authorization: Bearer $METRICS_TOKEN\"","returns":"{ apps, updated?, totals? }","url":"https://staging.samehand.app/api/vitrine/painel","auth_detail":"Público."},{"method":"GET","path":"/api/vitrine/cursores","auth":"none","grupo":"Public stats","summary":"The resolved-error cursor per product (`borda`, `cli`) — operator token only.","headers":{"Authorization":{"tipo":"string","desc":"`Bearer <METRICS_TOKEN>` — the operator class.","obrigatorio":true}},"retorno":{"_texto":"JSON: `{ [product]: { borda?: ISO, cli?: ISO } }`; empty is `{}`."},"erros":{"401":"No token, wrong token or a token of another class.","503":"Worker without `METRICS_TOKEN` or without the control plane."},"exemplo":"curl -s $ORIGIN/api/vitrine/cursores -H \"Authorization: Bearer $METRICS_TOKEN\"","returns":"JSON: `{ [product]: { borda?: ISO, cli?: ISO } }`; empty is `{}`.","url":"https://staging.samehand.app/api/vitrine/cursores","auth_detail":"Público."},{"method":"GET","path":"/api/partners","auth":"none","grupo":"Partnership","summary":"Partnership, sponsorship and advertising: the product's placements with a suggested price, the public numbers next to them and how to propose.","desc":"Information on request, no activation: placements from the house catalogue priced in USD per 30 days (90 and 365 days discounted), sponsors in effect, an excerpt of `/api/vitrine`, the house wallet (USDC on Base) and the contact path — bank deposit, PIX or invoice are arranged in the reply. Cached for 1 hour.","retorno":{"status":{"tipo":"string","desc":"`sob_consulta`: information and proposal, no activation and no charge."},"produto":{"tipo":"string","desc":"Product name."},"idioma":{"tipo":"string","desc":"Language of the texts (the product's)."},"titulo":{"tipo":"string","desc":"Title of the offer."},"descricao":{"tipo":"string","desc":"One sentence about the offer."},"publico":{"tipo":"string","desc":"Who uses the product — the audience a sponsor reaches."},"modalidades":{"tipo":"object[]","desc":"`{ id, nome }`: patrocinio, parceria, anuncio."},"placements":{"tipo":"object[]","desc":"The product's placements: `id`, `nome`, `onde`, `formato`, `exclusivo`, `medicao`, `price_usd_30d` (suggested; `null` is on request), `exposure[{ dias, price_usd }]` for 30, 90 and 365 days, `disponivel`."},"house_bundle":{"tipo":"object","desc":"The house bundle: footer and agent mention across the ten products, discounted."},"parcerias":{"tipo":"string[]","desc":"Partnership ideas the product is open to discuss."},"current_sponsors":{"tipo":"object[]","desc":"Sponsors in effect: `id`, `nome`, `url`, `frase`, `espacos`, `ate`."},"stats":{"tipo":"object","desc":"Excerpt of the public numbers (`hoje`, `janelas`, `agentes`, `confiabilidade`) and the `link` to `/api/vitrine`; `publicado: false` before the first publication."},"payment":{"tipo":"object","desc":"How to pay: `rede`, `chain_id`, `ativo`, `pay_to`, `eip681` (the house wallet, when declared), `alternativas` and the `nota` — bank deposit, PIX or invoice in the reply."},"contact":{"tipo":"object","desc":"`email`, `form_url`, `api_url` (`POST /api/contact` where the handler exists), `campos` (required), `campos_proposta` (the optional proposal fields, each with its accepted values), `price_agent_usd`, `message_template`, `instructions`."},"politica":{"tipo":"object","desc":"Placement label, refused sectors, prepayment, deadlines."},"_links":{"tipo":"object","desc":"`self`, `stats`, `page` (`null` until the page exists), `contact`, `casa` (the same path on the ten products)."}},"exemplo":"curl -s $ORIGIN/api/partners","returns":"{ status, produto, idioma, titulo, descricao, publico, modalidades, placements, house_bundle, parcerias, current_sponsors, stats, payment, contact, politica, _links }","url":"https://staging.samehand.app/api/partners","auth_detail":"Público."},{"method":"GET","path":"/api/metrics","auth":"token","summary":"Uso e receita do produto, para o painel da casa. Financeiro exige token.","grupo":"Operação","retorno":{"_texto":"`{app, produto, uso, payments?}`."},"erros":{"401":"Token errado.","503":"`METRICS_TOKEN` não configurado no Worker — o financeiro não sai sem ele."},"exemplo":"curl -s $ORIGIN/api/metrics -H \"authorization: Bearer $METRICS_TOKEN\"","returns":"`{app, produto, uso, payments?}`.","url":"https://staging.samehand.app/api/metrics","auth_detail":"Token de operador `METRICS_TOKEN` em `Authorization: Bearer` (métricas)."},{"method":"GET","path":"/api/pricing","auth":"none","grupo":"Descoberta","summary":"Preços vigentes e franquias gratuitas.","retorno":{"product":{"tipo":"string","desc":"Product name."},"quota":{"tipo":"PaymentQuota","desc":"Public allowances and current list prices; not personal usage."},"pricing":{"tipo":"string","desc":"Absolute URL of the current price list."},"billing":{"tipo":"string","desc":"Absolute URL of payment discovery or the existing billing summary."},"api_index":{"tipo":"string","desc":"Absolute URL of the API catalog."}},"erros":{"405":"Use GET ou HEAD."},"exemplo":"curl -s $ORIGIN/api/pricing","returns":"{ product, quota{free,paid,how_to_pay,live,free_now?,trial?}, pricing, billing, api_index }","url":"https://staging.samehand.app/api/pricing","auth_detail":"Público."},{"method":"GET","path":"/api/billing","auth":"none","grupo":"Descoberta","summary":"Descoberta pública de pagamento e crédito pré-pago.","retorno":{"product":{"tipo":"string","desc":"Product name."},"quota":{"tipo":"PaymentQuota","desc":"Public allowances and current list prices; not personal usage."},"pricing":{"tipo":"string","desc":"Absolute URL of the current price list."},"billing":{"tipo":"string","desc":"Absolute URL of payment discovery or the existing billing summary."},"api_index":{"tipo":"string","desc":"Absolute URL of the API catalog."},"payment":{"tipo":"PaymentX402","desc":"Public x402 configuration; pay_to=null means not configured."},"credit":{"tipo":"PaymentCredit","desc":"Prepaid credit entry point. Never contains a balance or token."}},"erros":{"405":"Use GET ou HEAD."},"exemplo":"curl -s $ORIGIN/api/billing","returns":"{ product, quota{free,paid,how_to_pay,live,free_now?,trial?}, pricing, billing, api_index, payment{provider,mode,network,chain_id,pay_to,homolog,dev,dev_gate,gratis?,facilitator,asset,asset_address,faucet,wallets}, credit{url,header} }","url":"https://staging.samehand.app/api/billing","auth_detail":"Público."}],"quota":{"free":[{"o_que":"índice, saúde, estilo medido, llms.txt, OpenAPI e MCP","limite":"sem cota","janela":null},{"o_que":"reescrita","limite":"5 por dia por IP","janela":null}],"paid":[{"o_que":"reescrita, além da franquia do dia","price_usd":0.02}],"how_to_pay":"Rota paga → **402** com `accepts[]` (x402) e `credito` (pré-pago, `POST /api/credito?usd=10`, vale em todos os produtos). Pague e repita com `X-PAYMENT`, ou mande `Authorization: Bearer cred_…`.","live":"https://staging.samehand.app/api/"},"mcp":{"endpoint":"https://staging.samehand.app/mcp","transport":"streamable-http","tools":5},"mcp_tools":["api_index","voice_card","rewrite_in_voice","pricing","billing"],"quickstart":["curl -s https://staging.samehand.app/api/health","curl -s https://staging.samehand.app/api/estilo","curl -s -XPOST https://staging.samehand.app/api/rewrite -H 'content-type: application/json' -d '{\"texto\":\"This is not just a flaw, it is a breach of trust.\",\"registro\":\"post\"}'"]}