
# gRPC {/* #grpc */}

Empieza por [Conectar mediante API](/docs/es/connect-api) para crear un token API de la plataforma. Los clientes gRPC-Web usan `https://reconstruct.dev`. El gRPC nativo se conecta a `reconstruct.dev:443` mediante TLS y utiliza la ruta de método generada a partir del nombre de servicio proto. Cada llamada necesita los metadatos `authorization: Bearer <token>`.

`GetCaptureOptions` devuelve los ID de tipo y entornos admitidos; los clientes no deben mantener una lista fija propia. `CatalogPlatform.view` es el tipo de plataforma (`desktop`/`mobile`) y `CatalogPlatform.implementation` es el entorno. Escritorio admite `web/web-extension/macos/windows/linux`; móvil admite `web/ios/android`. `captured` indica disponibilidad almacenada. MCP utiliza `platform`/`environment` para la misma selección; su `view` de página identifica un perfil guardado. Consulta el [catálogo MCP](/docs/es/mcp-tools).

## Descargar el contrato {/* #download-the-contract */}

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

El [contrato orientado al cliente](https://reconstruct.dev/docs/proto/platform.proto) tiene el mismo servicio, mensajes y números de campo que el contrato del servidor. Omite las anotaciones HTTP para que generar clientes no requiera los protos de anotación API de Google.

| RPC | Solicitud | Resultado |
|---|---|---|
| `ListCatalogs` | `page_size`, `page_token` opcional | `catalogs[]`, `next_page_token` opcional |
| `GetCaptureOptions` | Solicitud vacía | ID de plataforma/entorno admitidos, valores predeterminados y opciones de plataforma para solicitudes; sin autenticación ni medición. |
| `GetCatalog` | `catalog_id`, `version` opcional | Metadatos, `version` seleccionada, `versions[]` publicadas, `screens[]`, opciones de plataforma/idioma |
| `GetCatalogInsights` | `catalog_id`, `locale`, `view`, `implementation`, `section`, `version` opcionales | `version`, `technologies[]`, `rendering`, `fonts[]`, `text_styles[]`, `assets[]`, `color_themes[]`, `page_count` |

Utiliza `next_page_token` como `page_token` de la siguiente llamada para continuar por la lista. Obtén los ID de catálogo de `ListCatalogs`.

El contrato también incluye `GetCatalogFile` (bytes y tipo de contenido, `version` opcional), `CreateRequest`, `ListRequests`, `GetRequest` y las operaciones de cuenta, apariencia, avatar y tokens personales de la [guía REST](/docs/es/api/rest). Ambas modalidades de API tienen los mismos requisitos de acceso a la cuenta. `ListCatalogs` admite la búsqueda, ordenación y filtros repetidos de la plataforma documentados allí.

`WatchCatalogs` transmite `changed` y `revision`; pasa `catalog_id` para un catálogo u omítelo para la lista y reutiliza la última `revision` al reconectar. `WatchRequests` transmite invalidaciones de las solicitudes del llamante. Actualiza los datos correspondientes cuando `changed` sea true. Estos flujos utilizan gRPC/gRPC-Web y no tienen anotación HTTP.

## Generar un cliente {/* #generate-a-client */}

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

## Probar una llamada con grpcurl {/* #try-a-call-with-grpcurl */}

Desde el directorio que contiene `platform.proto`, con `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
```

Utiliza nombre de host y puerto para el destino gRPC nativo, sin ruta URL.

## Uso y facturación de la cuenta {/* #account-usage-and-billing */}

Gestiona tu suscripción y revisa el uso en la configuración de cuenta de la plataforma. Los tokens API y MCP personales permiten operaciones de catálogo y solicitudes; no sirven para gestionar la facturación de la cuenta.

## Datos de interfaz normalizados {/* #normalized-interface-data */}

El [formato de datos Scene](/docs/es/data-format) especifica artefactos de interfaz independientes de la plataforma, incluidos estados, recursos y pruebas. La exportación normalizada actual se obtiene mediante MCP `get_interface_scene`; esta API de catálogo no define una operación Scene independiente.
