Unified data layer
at the edge
Connect databases and APIs to a single GraphQL endpoint.
Develop locally and deploy to the edge with zero configuration.
Ship faster
Spend less time integrating and more time iterating.
extend schema
@openapi(
name: "Stripe",
schema: "https://raw.githubusercontent.com/stripe/openapi/master/openapi/spec3.json",
headers: [{ name: "Authorization", value: "Bearer {{ env.STRIPE_SECRET_KEY }}" }]
)
@openapi(
name: "OpenAI",
schema: "https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml",
headers: [{ name: "Authorization", value: "Bearer {{ env.OPENAI_API_KEY }}" }]
)
@graphql(
name: "GitHub"
url: "https://api.github.com/graphql"
headers: [{ name: "Authorization", value: "{{ env.GITHUB_ACCESS_TOKEN }}" }]
)
Connect
Use existing connectors or vote for the ones you need.
OpenAPI
GraphQL
Aurora Serverless
Turso
Fauna
BigQuery
Apollo Federation
gRPC
MongoDB
Neon
PlanetScale
Snowflake
Supabase
Tinybird
Pinecone
Stripe
GitHub
Shopify
OpenAI
REST
Customize
Resolvers are functions written in JavaScript, TypeScript or languages that compile to WebAssembly.
They can be used to integrate your gateway with services like Shopify, GitHub or Stripe.
schema.graphql
extend type Query {
ask(prompt: String!): [Choice] @resolver(name: "ask")
}
type Choice {
text: String
finish_reason: String
}
resolvers/ask.js
export default async function Resolver(_, { prompt }) {
const response = await fetch('https://api.openai.com/v1/completions', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Authorization: '...'
},
body: JSON.stringify({
model: 'text-davinci-003',
prompt,
max_tokens: 200,
temperature: 0
})
})
const data = await response.json()
return data.choices || []
}
Your data your way
Explore your data and schema documentation with ease.


