# gRPC API

Call Nominal’s services over gRPC, with your API key.

Use the gRPC API from Python or Go, which have generated clients: [`nominal-api-protos`](https://pypi.org/project/nominal-api-protos/) on PyPI and the [`nominal-api-protos-go`](https://github.com/nominal-io/nominal-api-protos-go) Go module. These are low-level packages that call the gRPC services directly. From other languages, use the [REST API](https://dev.nominal.io/api.md).

Connect over TLS to your base URL’s host on port 443, such as `api.gov.nominal.io:443`. Every call needs your API key in the `authorization` metadata: `Bearer <api key>`. [API keys setup](https://dev.nominal.io/quickstart/api-keys-setup.md) shows where to find your key and base URL.

## Services

### Data

- [Containerized extractor service](https://dev.nominal.io/api/grpc/containerized-extractor-service.md)
- [Data connector service](https://dev.nominal.io/api/grpc/data-connector-service.md)
- [Data deletion service](https://dev.nominal.io/api/grpc/data-deletion-service.md)
- [Dataset retention service](https://dev.nominal.io/api/grpc/dataset-retention-service.md)
- [Ingest service](https://dev.nominal.io/api/grpc/ingest-service.md)
- [Native extractor service](https://dev.nominal.io/api/grpc/native-extractor-service.md)
- [SQL service](https://dev.nominal.io/api/grpc/sql-service.md)
- [Streaming session service](https://dev.nominal.io/api/grpc/streaming-session-service.md)
- [Units service](https://dev.nominal.io/api/grpc/units-service.md)

### Metadata

- [Asset service](https://dev.nominal.io/api/grpc/asset-service.md)
- [Blob storage service](https://dev.nominal.io/api/grpc/blob-storage-service.md)
- [Comments service](https://dev.nominal.io/api/grpc/comments-service.md)
- [Event service](https://dev.nominal.io/api/grpc/event-service.md)

### Checklists and procedures

- [Procedure executions service](https://dev.nominal.io/api/grpc/procedure-executions-service.md)
- [Procedures service](https://dev.nominal.io/api/grpc/procedures-service.md)

### Access and administration

- [Group service](https://dev.nominal.io/api/grpc/group-service.md)
- [Marking service](https://dev.nominal.io/api/grpc/marking-service.md)
- [Permission service](https://dev.nominal.io/api/grpc/permission-service.md)
- [Role service](https://dev.nominal.io/api/grpc/role-service.md)
- [Workspace service](https://dev.nominal.io/api/grpc/workspace-service.md)

### Apps and integrations

- [Application service](https://dev.nominal.io/api/grpc/application-service.md)
- [Connect apps service](https://dev.nominal.io/api/grpc/connect-apps-service.md)
- [Connect demo apps service](https://dev.nominal.io/api/grpc/connect-demo-apps-service.md)
- [Connect download service](https://dev.nominal.io/api/grpc/connect-download-service.md)
- [Registry service](https://dev.nominal.io/api/grpc/registry-service.md)

## Errors

A failed call returns a gRPC status with a code and a message. For an error a service defines, the status also has a `google.rpc.ErrorInfo` detail. Its `reason` says which error it is, such as `GROUP_ERRORS_NOT_FOUND`, and its `domain` is the service’s proto package, such as `nominal.authentication.groups.v1`. Each service’s page lists the errors it defines.
