Data Catalog offers several programmatic interfaces for
interaction, and we recommend using them in the following order:

- [Google Cloud Client Libraries](https://docs.cloud.google.com/apis/docs/client-libraries-explained#google_cloud_client_libraries):
  Data Catalog client libraries are available in multiple
  languages and are built on [gRPC](https://grpc.io/). These client libraries
  provide a layer of abstraction on top of gRPC and handle the details of
  operation polling and retries. For more information, see
  [Data Catalog client libraries](https://docs.cloud.google.com/data-catalog/docs/reference/libraries).

  > [!NOTE]
  > **Note:** While the Cloud Client Libraries are the preferred library choice, you can also use the [Google API Client Libraries](https://docs.cloud.google.com/apis/docs/client-libraries-explained#google-api-client-libraries) for Data Catalog. The "legacy" Google API Client Libraries provide access to the REST interface, but not the gRPC APIs.

- [gRPC](https://docs.cloud.google.com/data-catalog/docs/reference/rpc): If your preferred programming
  language lacks a dedicated client library, you can still generate gRPC client
  libraries for Data Catalog using any gRPC-supported language.
  This requires the
  [protocol buffers](https://developers.google.com/protocol-buffers/)
  service definition, which is available in the
  [GitHub repository](https://github.com/googleapis/googleapis).

  To generate and use your client, refer to the instructions on
  [grpc.io](https://grpc.io/) for your chosen language.
- [REST API](https://docs.cloud.google.com/data-catalog/docs/reference/rest): if you're unable
  to use Data Catalog's client libraries or the gRPC API, use the
  REST API.

For more information, see the following:

- [Google Cloud APIs](https://docs.cloud.google.com/apis/docs/overview)
- [Client libraries explained](https://docs.cloud.google.com/apis/docs/client-libraries-explained)
- [API errors](https://docs.cloud.google.com/apis/design/errors)
- [HTTP response status codes](https://docs.cloud.google.com/apis/design/errors#handling_errors)