
# gRPC {/* #grpc */}

Comece por [Conectar via API](/docs/pt/connect-api) para criar token API. Clientes gRPC-Web usam `https://reconstruct.dev`. O gRPC nativo conecta a `reconstruct.dev:443` por TLS e usa o caminho gerado a partir do nome do serviço proto. Cada chamada exige metadados `authorization: Bearer <token>`.

`GetCaptureOptions` retorna IDs de tipos e ambientes; clientes não devem manter lista fixa. `CatalogPlatform.view` é o tipo (`desktop`/`mobile`) e `CatalogPlatform.implementation`, o ambiente. Desktop admite `web/web-extension/macos/windows/linux`; mobile, `web/ios/android`. `captured` indica disponibilidade armazenada. MCP usa `platform`/`environment` para a mesma seleção; `view` da página identifica um perfil salvo. Consulte o [catálogo MCP](/docs/pt/mcp-tools).

## Baixar o contrato {/* #download-the-contract */}

```bash
curl -fsSL https://reconstruct.dev/docs/proto/platform.proto -o platform.proto
```

O [contrato para clientes](https://reconstruct.dev/docs/proto/platform.proto) tem o mesmo serviço, mensagens e números de campo do servidor. Omite anotações HTTP para que gerar clientes não exija protos de anotações API do Google.

| RPC | Solicitação | Resultado |
|---|---|---|
| `ListCatalogs` | `page_size`, `page_token` opcional | `catalogs[]`, `next_page_token` opcional |
| `GetCaptureOptions` | Solicitação vazia | IDs de plataforma/ambiente, padrões e opções de plataforma para solicitações; sem autenticação ou medição. |
| `GetCatalog` | `catalog_id`, `version` opcional | Metadados, `version` selecionada, `versions[]` publicadas, `screens[]`, opções de plataforma/idioma |
| `GetCatalogInsights` | `catalog_id`, `locale`, `view`, `implementation`, `section`, `version` opcionais | `version`, `technologies[]`, `rendering`, `fonts[]`, `text_styles[]`, `assets[]`, `color_themes[]`, `page_count` |

Use `next_page_token` como `page_token` da próxima chamada para continuar. Obtenha IDs de catálogo de `ListCatalogs`.

O contrato inclui `GetCatalogFile` (bytes e tipo, `version` opcional), `CreateRequest`, `ListRequests`, `GetRequest` e as operações de conta, aparência, avatar e tokens pessoais do [guia REST](/docs/pt/api/rest). Os requisitos de acesso são iguais nas duas APIs. `ListCatalogs` admite busca, ordenação e filtros repetidos documentados ali.

`WatchCatalogs` transmite `changed` e `revision`; passe `catalog_id` para um catálogo ou omita para a lista e reutilize a última `revision` ao reconectar. `WatchRequests` transmite invalidações das solicitações do usuário. Atualize os dados quando `changed` for true. Esses fluxos usam gRPC/gRPC-Web e não têm anotação HTTP.

## Gerar um cliente {/* #generate-a-client */}

- [Python](/docs/pt/api/grpc/python)
- [C#](/docs/pt/api/grpc/csharp)
- [TypeScript](/docs/pt/api/grpc/typescript)
- [Go](/docs/pt/api/grpc/go)
- [Rust](/docs/pt/api/grpc/rust)
- [Java](/docs/pt/api/grpc/java)
- [C++](/docs/pt/api/grpc/cpp)

## Testar uma chamada com grpcurl {/* #try-a-call-with-grpcurl */}

No diretório com `platform.proto`, com `CR_RECONSTRUCT_API_TOKEN` definido:

```bash
grpcurl \
  -import-path . -proto platform.proto \
  -H "authorization: Bearer ${CR_RECONSTRUCT_API_TOKEN}" \
  -d '{"pageSize":10}' \
  reconstruct.dev:443 \
  reconstruct.platform.v1.PlatformService/ListCatalogs
```

Use host e porta no destino gRPC nativo, sem caminho URL.

## Uso e cobrança da conta {/* #account-usage-and-billing */}

Gerencie assinatura e uso nas configurações da plataforma. Tokens pessoais API/MCP dão acesso a catálogos e solicitações; não gerenciam cobrança.

## Dados de interface normalizados {/* #normalized-interface-data */}

O [formato Scene](/docs/pt/data-format) 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.
