Pular para o conteúdo principal

REST

Comece por Conectar via API para criar token API. A URL base REST pública é https://reconstruct.dev/api/v1/platform. As rotas abaixo são relativas a ela.

Descubra tipos e ambientes com GET /capture-options; não fixe seus IDs no código. As opções usam view para tipo (desktop/mobile) e implementation para ambiente. Desktop admite web, web-extension, macos, windows, linux; mobile, web, ios, android. Verifique captured antes de solicitar dados. No MCP os campos se chamam platform e environment; view de página é a chave exata do perfil salvo. Consulte a seleção MCP.

Envie Authorization: Bearer <token> em cada solicitação. Os endpoints são:

Método e caminhoFinalidade
GET /catalogs?pageSize=10&pageToken=...Listar catálogos. pageSize e pageToken são opcionais.
GET /capture-optionsIDs de tipos, rótulos, ambientes, padrões e requestPlatforms para envios. Sem autenticação/medição e sem conteúdo de captura.
GET /catalogs/{catalogId}?version=...Ler telas, plataformas, idiomas e versões de catálogo publicado.
GET /catalogs/{catalogId}/insights?locale=en&view=desktop&implementation=webLer tecnologias, renderização, famílias tipográficas, estilos, mídia e temas de versão publicada.

JSON usa campos camelCase. GET /catalogs retorna catalogs e nextPageToken quando há mais resultados. Passe o token como pageToken na próxima solicitação. O detalhe contém catalogId, name, kind e description.

locale, view e implementation são opcionais. view aceita desktop/mobile; implementation, web, web-extension, windows, macos, linux, ios ou android. Os detalhes retornam combinações em platforms[]; telas têm sua implementation. Tecnologias, tipografia e mídia se limitam à combinação e idioma. technologyInventory: true identifica inventário de versão quando falta detecção por vista. Capturas web em iPhone emulado continuam mobile + web. Captura legada sem detalhes usa inventários de fontes/recursos da versão e retorna pageCount: 0. Links mantêm a origem. Recursos salvos podem ser lidos pela operação abaixo.

Filtros e versões de catálogo​

ListCatalogs aceita query, sort (newest, name-asc, name-desc, screens, versions), screens (with/without), versions (single/multiple) e filtros repetidos platforms, technologies, renderings, categories, languages. IDs de filtro combinam vista e implementação, como desktop:web. Use IDs de filters; opções no mesmo filtro são alternativas e filtros distintos se combinam. Preserve filtros e ordenação ao seguir nextPageToken.

GetCatalog, GetCatalogInsights e GetCatalogFile aceitam version opcional. Vazio seleciona a captura publicada mais recente. O detalhe retorna a version selecionada e todas as versions[] publicadas; latestVersion e latestCapturedAt continuam identificando a mais nova. Passe a versão selecionada às chamadas posteriores de insights e arquivos para manter os dados consistentes. Rascunhos e versões desconhecidas retornam 404.

Insights aceitam section: tech stack, typography, colors, themes ou assets (omita para todos). colorThemes[] contém paletas nomeadas. platforms[].captured identifica opções disponíveis; detectedLocales[] contém idiomas descobertos, locales[], capturados.

Medições de componentes​

componentSizing[] agrupa medições por tipo semântico. Na aba Componentes, abra um para ver capturas, tamanhos, padding, raio, bordas, sombras e estados. Contêineres genéricos são excluídos.

dimensionContexts[] acrescenta propriedade: tipo de componente, propriedade CSS, valor/abreviação original, total e até três amostras. Identificam página, vista, caminho relativo, ID/tag/rótulo de origem, pai conhecido e até três filhos diretos (childCount é o total). São IDs brutos daquela página/vista/versão, não IDs MCP renumerados. A vista da amostra é a chave exata, como laptop; o filtro é desktop ou mobile. IDs ausentes são -1. Contagens só cobrem capturados; nem elas nem os exemplos prometem cobertura total.

O catálogo apresenta medições no detalhe de cada componente. Padding é interno; margin é externo, não necessariamente distância ao vizinho. Gap pertence ao contêiner; filhos são exemplos, não pares adjacentes medidos. Tamanho descreve o componente. Preserve unidades e abreviações. As ferramentas MCP get_spacing e get_sizing oferecem contexto paginado ou resumo de página/vista.

A aba Fontes baixa originais como ZIP; JSON de tamanhos e uso por idioma deriva de textStyles[] e fonts[].locales. São arquivos do cliente, não endpoints @export adicionais. Idiomas descobertos (detectedLocales) não garantem capturas nesses idiomas.

Arquivos armazenados e exportações​

GET /catalogs/{catalogId}/files/{path} retorna JSON BinaryFileResponse: data é base64 e contentType descreve bytes decodificados. Caminhos vêm de screens[] (imagePath, fullPagePath, sectionPaths[], videoPath, interactionVideoPath). captureLimited indica captura incompleta.

A rota aceita @asset/{hash}, @font/{hash} e @model/{hash} para originais; o hash é SHA-256 da URL de origem ou data URL em UTF-8, hexadecimal minúsculo. Aceita também @export/assets, @export/fonts, @export/colors, @export/screenshots, @export/components, @export/languages, @export/technologies e @export/spacing-sizing para ZIP. O arquivo de espaçamento/tamanho contém spacing-sizing.json com versão, total de páginas, dimensions agregadas, componentSizing e dimensionContexts. Use version para arquivos/exportações de captura selecionada. JSON comum de captura não é exposto.

Operações do usuário chamador​

Método e caminhoFinalidade
POST /requestsEnvie requestType: PRODUCT_REQUEST_TYPE_ADD com url e subject, ou requestType: PRODUCT_REQUEST_TYPE_UPDATE com catalogId.
GET /requests, GET /requests/{requestId}Paginar envios do usuário e inspecionar decisões, segurança e progresso.
GET /me/appearance, PUT /me/appearanceLer/atualizar apelido.
GET /me/avatar, PUT /me/avatar, DELETE /me/avatarLer, enviar (data base64) ou remover avatar.
GET /tokens, POST /tokens, DELETE /tokens/{id}Gerenciar tokens pessoais; criação aceita name, scopes (api, mcp) e expiresInDays (1–365). O segredo retorna uma vez.
GET /me/profile, PUT /me/profileLer/atualizar perfil da conta (objeto profile).
GET /me/credentials, GET /me/sessions, DELETE /me/sessions/{id}Inspecionar credenciais/sessões e encerrar sessão.

Operações de conta, aparência, avatar e tokens exigem token de sessão do usuário; tokens API pessoais não as autorizam. Catálogos e solicitações aceitam token pessoal com escopo api. WatchCatalogs e WatchRequests são fluxos gRPC/gRPC-Web, sem rota REST.

Exemplos​

Envios de produto usam POST /requests, GET /requests e GET /requests/{request_id} na mesma base. requestType: PRODUCT_REQUEST_TYPE_ADD exige url e subject; catalogId é opcional. Para PRODUCT_REQUEST_TYPE_UPDATE, informe catalogId existente; o servidor resolve nome e origem. Solicitações persistem e só o dono acessa. São revisadas antes da captura e podem ser aprovadas ou rejeitadas com motivo. Sites inseguros conhecidos são rejeitados automaticamente. REST e gRPC expõem as mesmas operações.

Dados de interface normalizados​

O formato Scene define artefatos independentes de plataforma, com estados, recursos e evidências. A exportação normalizada atual vem do MCP get_interface_scene; a API de catálogo não define operação Scene separada.