/

hasura-header-illustration

Create GraphQL APIs on PostgreSQL in 2 minutes

Connect Hasura to your new or existing PostgreSQL database and generate high-quality, secure, and performant GraphQL APIs.
Instant GraphQL APIs

Build high-quality GraphQL APIs on PostgreSQL, instantly

Connect to a new or existing PostgreSQL database and get standardized, highly composable GraphQL APIs. The Hasura GraphQL Engine introspects the database and automatically generates GraphQL schemas and resolvers based on the PostgreSQL tables, views, and functions.

GraphQL Queries on PostgreSQL

Leverage the full power of GraphQL API to interact with your PostgreSQL database for all your read use cases.

Query exactly what you want from your PostgreSQL tables, views, and functions.

Relationships and nesting

The GraphQL API on PostgreSQL handles relationships between models, and queries can be nested to any depth if required.

Pagination

Easily manage large datasets with built-in pagination capabilities. Cursor-based, Relay-style, and offset-based pagination is supported natively.

Filtering

Filter query results on PostgreSQL using advanced WHERE clauses and Boolean / logical operators like _and / _or, etc.

Sorting

Sort data based on multiple fields in PostgreSQL tables and specify the sort direction (ascending or descending), making it easy to present your data.

Aggregation

Perform various aggregations to get detailed statistics about your PostgreSQL data directly within your GraphQL queries. Leverage aggregate functions in PostgreSQL like count, sum, min, max, avg, etc.

Vector search

Perform similarity / vector search using native queries.

query fetchUsersAndPosts {
  users(where: { age: { _gt: 18 } }) {
    id
    name
    posts {
      title
      comments {
        text
      }
    }
  }
}
Fetch users' data like the `id` and `name` where the age is > 18, and fetch the `posts` written by them along with the `comments` for each post.

GraphQL Mutations on PostgreSQL

Perform robust data manipulation operations on your PostgreSQL database with GraphQL mutations. Insert, update, or delete data in PostgreSQL via Hasura’s native queries.

mutation {
 insert_artist(id: 100, name: "New Artist") {
   ArtistId
   Name
 }
}
Insert into the artist table in PostgreSQL with values for `id` and `name` columns.

High-performance GraphQL APIs, at scale

Hasura takes a domain-driven approach to GraphQL, where a GraphQL query is compiled to a query on a domain model (a database query or existing APIs) resulting in superior API performance.

Hasura leverages the goodness of PostgreSQL to create efficient GraphQL queries.

Compile vs. resolve

Hasura avoids the GraphQL N+1 query problem by compiling a query instead of resolving. This compiler-based approach allows Hasura to form a single SQL query for a GraphQL query of any depth and avoids the N+1 problem in GraphQL.

JSON aggregations in PostgreSQL

Hasura avoids the Cartesian product problem while fetching data from the underlying system by performing JSON aggregations in PostgreSQL.

Predicate pushdown SQL to PostgreSQL

Hasura filters data at the source with a predicate pushdown of SQL queries to PostgreSQL.

High-performance GraphQL APIs, at scale
Performance benchmarks

Hasura’s GraphQL APIs are 3x faster than handwritten subgraphs on top of PostgreSQL.

Scaling PostgreSQL with read replicas

Maximize your PostgreSQL database performance and scalability with Hasura’s read replicas support.

Easily configure PostgreSQL read replicas in Hasura to offload read-intensive operations, achieve seamless load balancing, and perform real-time analytics without impacting your primary database.

Configure routing, connection pooling, and load balancing.

Add caching to existing PostgreSQL APIs for faster response times

Get up to 10x faster API performance on PostgreSQL with end-to-end caching, scaling vertically and horizontally.

Hasura has metadata about the data models across data sources, and the authorization rules at the application level, which helps provide end-to-end caching.

Production-ready APIs on PostgreSQL, from day one

Observability

Monitor for known issues by debugging and analyzing metrics from your Hasura instance.

API security

Secure your APIs with tools including allow list, multiple JWT secrets, API rate limits, and more.

Authorization

Make granular read and write access control easy to configure on your PostgreSQL database with a built-in authorization engine.

Add any Postgres database

Works with PostgreSQL flavors of your choice

Hasura is fully compatible with PostgreSQL standards. Choose the optimal PostgreSQL flavor for your use case. Use TimescaleDB for efficient time-series data handling, CockroachDB or YugabyteDB for robust distributed data solutions, and Neon for seamless database branching and versioning.

Add any Postgres database

Frequently Asked Questions

Can’t find the answer you are looking for? Reach out to our team, and we can help you select the Hasura plan that’s right for you.

How to optimize GraphQL queries on Postgres?

What security measures are in place when using GraphQL with PostgreSQL?

Can I combine data from PostgreSQL and other sources in a single GraphQL query?

Can I use GraphQL with PostgreSQL extensions like TimescaleDB or PostGIS?

Can I use GraphQL with existing PostgreSQL databases?

Contact Us

If you have any more questions about pricing, we’re here to help.

2024 Edition

The GraphQL Handbook

A GraphQL Handbook for developers and architects to help plan your GraphQL adoption journey.
The GraphQL Handbook