Connect Hasura to your new or existing MySQL database and generate high-quality, secure, and performant GraphQL APIs.
Instant GraphQL APIs
Build high-quality GraphQL APIs on MySQL, instantly
Connect to a new or existing MySQL 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 MySQL tables, views, and functions.
GraphQL queries on MySQL
Leverage the full power of GraphQL API to interact with your MySQL database for all your read use cases.
Query exactly what you want from your MySQL tables, views, and functions.
Relationships and nesting
The GraphQL API on MySQL 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 MySQL using advanced WHERE clauses and Boolean / logical operators like _and / _or, etc.
Sorting
Sort data based on multiple fields in MySQL tables / views and specify the sort direction (ascending or descending), making it easy to present your data.
Aggregation
Perform various aggregations to get detailed summary about your MySQL data directly within your GraphQL queries. Leverage aggregate functions in MySQL like count, sum, min, max, avg, etc.
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 MySQL
Perform robust data manipulation operations on your MySQL database with GraphQL mutations. Insert, update, or delete data in MySQL via Hasura’s native queries.
mutation {
insert_artist(id: 100, name: "New Artist") {
ArtistId
Name
}
}
Insert into the artist table in MySQL 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 MySQL 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.
Predicate pushdown SQL to MySQL
Hasura filters data at the source with a predicate pushdown of SQL queries to MySQL.

Performance benchmarks
Hasura’s GraphQL APIs are faster than handwritten subgraphs on top of MySQL
Add caching to existing MySQL APIs for faster response times
Get up to 10x faster API performance on MySQL 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 MySQL, from day one
Observability
Monitor for known issues by debugging and analyzing metrics from your Hasura instance.
API security
Secure your MySQL 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 MySQL database with a built-in authorization engine.