Skip to content

PostgreSQL · GraphQLA GraphQL API over your PostgreSQL database

HornetHive gives every PostgreSQL database a GraphQL endpoint, powered by Hasura and run for you. Queries run as a role made for your database alone, so they can only ever see your tables. No Hasura instance to host, upgrade or secure.

Engine
Hasura, run for you
Scope
Your tables only
Plans
Every plan

Query it in one request

Your tables appear under one root field named after your database, so names never clash with anyone else's:

HIVE=https://hornethive.io
DB=<database id>     # from the dashboard
KEY=<api key>        # read or write, one database or all

curl $HIVE/api/graphql/$DB -H "Authorization: Bearer $KEY" \
  -H "Content-Type: application/json" \
  -d '{"query":"{ u4f1c2d3e_shop { books(limit: 10) { id title } } }"}'

How it is kept separate

Hasura is not exposed to the internet. Every GraphQL request goes through HornetHive, which checks the API key, then runs the query as your database's read role, or its write role for a write key. Those roles have permissions on your tables only, so a query cannot reach data that is not yours, whatever it asks for.

After you change the schema

GraphQL picks up new tables when you sync: one click on the database's GraphQL tab, one API call, or the sync_graphql tool over MCP. REST needs no sync at all.

On every plan

GraphQL is included from the free plan up, counted against the same monthly API calls as REST. Use it from your frontend framework of choice, Apollo, urql, Relay, or plain fetch.

Updated

Questions

Do I need a Hasura account?+

No. HornetHive runs Hasura for you; you only need a HornetHive API key.

Are mutations supported?+

Yes, as Hasura generates them for your tables, with a write key. Read-only keys can only query.

Why is my new table missing?+

Sync GraphQL after creating it, from the database's GraphQL tab.