.. meta:: :description: Hasura API reference :keywords: hasura, docs, API, API reference .. _api_reference: API Reference ============= .. contents:: Table of contents :backlinks: none :depth: 1 :local: Available APIs -------------- +----------------------------------+---------------------------------------------------+------------------+ | API | Endpoint | Access | +==================================+===================================================+==================+ | GraphQL | :ref:`/v1/graphql ` | Permission rules | +----------------------------------+---------------------------------------------------+------------------+ | Relay | :ref:`/v1beta1/relay ` | Permission rules | +----------------------------------+---------------------------------------------------+------------------+ | Legacy GraphQL | :ref:`/v1alpha1/graphql ` | Permission rules | +----------------------------------+---------------------------------------------------+------------------+ | Schema/Metadata *(< v1.3)* | :ref:`/v1/query ` | Admin only | +----------------------------------+---------------------------------------------------+------------------+ | Schema *(> v1.4)* | :ref:`/v2/query ` | Admin only | +----------------------------------+---------------------------------------------------+------------------+ | Metadata *(> v1.4)* | :ref:`/v1/metadata ` | Admin only | +----------------------------------+---------------------------------------------------+------------------+ | Restified GQL | :ref:`/api/rest ` | GQL REST Routes | +----------------------------------+---------------------------------------------------+------------------+ | Version | :ref:`/v1/version ` | Public | +----------------------------------+---------------------------------------------------+------------------+ | Health | :ref:`/healthz ` | Public | +----------------------------------+---------------------------------------------------+------------------+ | PG Dump | :ref:`/v1alpha1/pg_dump ` | Admin only | +----------------------------------+---------------------------------------------------+------------------+ | Config | :ref:`/v1alpha1/config ` | Admin only | +----------------------------------+---------------------------------------------------+------------------+ | Explain | :ref:`/v1/graphql/explain ` | Admin only | +----------------------------------+---------------------------------------------------+------------------+ .. _graphql_api: GraphQL API ^^^^^^^^^^^ All GraphQL requests for queries, subscriptions and mutations are made to the GraphQL API. See details at :ref:`api_reference_graphql`. .. _relay_api: Relay API ^^^^^^^^^ Hasura exposes a Relay schema for GraphQL requests for queries, subscriptions and mutations. See docs at :ref:`relay_schema`. See details at :ref:`api_reference_relay_graphql`. .. _schema_metadata_api: Schema / metadata API (v1.3 and below) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Hasura exposes a schema / metadata API for managing metadata for permissions/relationships or for directly executing SQL on the underlying Postgres. This is primarily intended to be used as an ``admin`` API to manage the Hasura schema and metadata. See details at :ref:`schema_metadata_apis` . .. _schema_api: Schema API (v1.4 and above) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ Hasura exposes a schema API for directly executing SQL on the underlying Postgres. This is primarily intended to be used as an ``admin`` API to manage the Hasura schema. See details at :ref:`schema_apis`. .. _metadata_api: Metadata API (v1.4 and above) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Hasura exposes a metadata API for managing metadata. This is primarily intended to be used as an ``admin`` API to manage the Hasura metadata. See details at :ref:`metadata_apis`. .. _version_api: RESTified GraphQL API ^^^^^^^^^^^^^^^^^^^^^ Hasura allows saved GraphQL queries and mutations to be accesed through a REST interface. See details at :ref:`restified_api_reference`. .. _restified_api: Version API ^^^^^^^^^^^ The ``/v1/version`` is a public endpoint that responds with the current server version in JSON format. See details at :ref:`version_api_reference`. .. _health_api: Health check API ^^^^^^^^^^^^^^^^ The ``/healthz`` is a public endpoint that returns the server health status. See details at :ref:`health_api_reference`. .. _pg_dump_api: pg_dump API ^^^^^^^^^^^ The ``/v1alpha1/pg_dump`` is an admin-only endpoint that can be used to execute ``pg_dump`` on the Postgres instance connected to Hasura. The ``pg_dump`` CLI tool's argument can be passed as a POST request body to the API and the response is sent back to the client. See details at :ref:`pg_dump_api_reference`. .. _config_api: Config API ^^^^^^^^^^ ``v1alpha1/config`` is an admin-only endpoint to get the current server configuration. See details at :ref:`config_api_reference`. .. _explain_api: Explain API ^^^^^^^^^^^ ``v1/graphql/explain`` returns the Postgres plan for a query or subscription based on the defined permissions. See details at :ref:`explain_api_reference`. .. toctree:: :maxdepth: 1 :hidden: GraphQL API Relay GraphQL API Schema / Metadata APIs Schema APIs (v1.4 and above) Metadata APIs (v1.4 and above) RESTified GraphQL Endpoints Version API Health check API PG Dump API Config API Explain API