Hasura API
Hasura API
Instant GraphQL API over PostgreSQL with real-time subscriptions and auth.
Quick Facts
| Field | Value |
|---|---|
| Provider | Hasura |
| Category | Data & Storage APIs |
| Website | https://hasura.io |
| Authentication | Admin Secret |
| Pricing Model | open-source |
| Free Tier | Yes, self-hosted free |
| Rate Limit | 100 req/min (varies by plan) |
Overview
Hasura API is a data & storage apis provided by Hasura. Instant GraphQL API over PostgreSQL with real-time subscriptions and auth. This API is designed to help developers integrate data capabilities into their applications with minimal setup and maximum reliability.
The API supports Admin Secret authentication, ensuring secure access to all endpoints. With a open-source pricing model, Hasura offers flexible options for projects of any size, from prototypes to enterprise deployments.
Hasura maintains comprehensive documentation, SDKs for popular programming languages, and active community support. The API is built on REST principles, returning JSON responses with standard HTTP status codes, making it straightforward to integrate into existing workflows.
Authentication
This API uses Admin Secret authentication. Send the admin secret in the x-hasura-admin-secret header.
Always store your credentials securely using environment variables or a secrets manager. Never commit API keys to version control or expose them in client-side code.
Code Samples
Python
import requests
import os
API_KEY = os.environ.get("API_KEY", "YOUR_API_KEY")
BASE_URL = "https://api.hasura.io"
headers = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
}
response = requests.get(f"{BASE_URL}/v1/resources", headers=headers)
print(response.status_code)
print(response.json())
JavaScript
const API_KEY = process.env.API_KEY || 'YOUR_API_KEY';
const BASE_URL = 'https://api.hasura.io';
const response = await fetch(`${BASE_URL}/v1/resources`, {
headers: {
'Authorization': `Bearer ${API_KEY}`,
'Content-Type': 'application/json'
}
});
const data = await response.json();
console.log(data);
cURL
curl -H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
https://api.hasura.io/v1/resources
Go
package main
import (
"net/http"
"fmt"
"io"
"os"
)
func main() {
apiKey := os.Getenv("API_KEY")
if apiKey == "" {
apiKey = "YOUR_API_KEY"
}
req, _ := http.NewRequest("GET", "https://api.hasura.io/v1/resources", nil)
req.Header.Set("Authorization", "Bearer " + apiKey)
req.Header.Set("Content-Type", "application/json")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
Pricing
The pricing model is open-source. Open-source software you can self-host for free, with paid managed cloud options. Visit the provider’s pricing page at https://hasura.io for current rates and detailed pricing information.
Use Cases
- Integration: Connect Hasura services to your application for seamless data functionality.
- Automation: Automate data workflows and reduce manual operations.
- Scaling: Handle growing data demands with Hasura’s robust infrastructure.