Demos › GraphQL

GraphQL — Live Demo

Write a GraphQL query in the editor below and run it against a NASA exoplanet dataset, routed through the Opsalis Global Network. The owner registered a GraphQL endpoint and earns per query.

GraphQL Over the Opsalis Global Network

Consumer Premises
Your App
Your Opsalis
Control Center
On your premises
▼ Request ▲ Response
Opsalis Global Network
🔒 Encrypted 🔗 Automatic Payment 🌐 5 Delivery Methods
Proprietary fully encrypted protocol with automatic payment settlement
▼ Request ▲ Response
Owner Premises
Their Opsalis
Control Center
GraphQL Exoplanets
Service
On their premises

What is the Opsalis control center? A single Docker container you run on your own machine — a laptop, a Raspberry Pi, a cloud server. It connects you to the Opsalis Global Network. Through its built-in web console, you browse services, register your own, manage your wallet, and monitor your earnings. Installation takes minutes. It is completely free, forever.

docker run -d --name my-opsalis -p 3000:3000 -p 3002:3002 opsalis/wrapper:latest

The Opsalis Global Network uses a proprietary fully encrypted protocol. All traffic is end-to-end encrypted. Settlement is automatic.

What the owner did: installed their Opsalis control center, registered a service on the Opsalis network through the web console, set their price, and started earning USDC on every call. The Opsalis Global Network handles the rest.

Run a GraphQL Query

POST /api/nasa-exoplanets-v1/graphql — routed through the Opsalis Global Network
Waiting
Write a query above and click Run Query
Live call through the Opsalis Global Network. Install your own Opsalis to make unlimited calls.

How to use this service

Any developer worldwide can consume this service from their own Opsalis control center. Here is the complete flow from installation to first call:

1

Install your Opsalis control center

One Docker command on any machine -- your laptop, a Raspberry Pi, a cloud VM.

$ docker run -d --name my-opsalis -p 3000:3000 -p 3002:3002 opsalis/wrapper:latest
2

Browse the catalog

Open your web console at https://localhost:3002/panel. Go to the Catalog tab. Search for the service you need -- use keywords, tags, or browse by category.

3

Preview with demo samples

Click on any service to see its full description, available endpoints, and sample data. Try it in the Swagger sandbox -- demo samples are free, no payment needed. See exactly what the data looks like before you spend a cent.

4

Fund your wallet

Go to the Finance tab. Deposit USDC and a small amount of ETH for gas. Your control center shows both balances and alerts you when they are low.

5

Call it from your code

Copy your consumer secret from Settings. Use the service UUID from the catalog. Make your first real call:

$ curl -X POST https://localhost:3000/internal/call \ -H "Authorization: Bearer YOUR_CONSUMER_SECRET" \ -H "Content-Type: application/json" \ -d '{"api_id_public": "SERVICE_UUID", "path": "/graphql", "method": "POST", "body": "{\"query\": \"{ exoplanets(limit:3) { pl_name disc_method } }\"}"}'

Or generate an SDK in your preferred language (Python, TypeScript, Go, Rust, Kotlin, and more) -- the web console generates ready-to-use client code with the UUID pre-filled.

6

You are in business

Every call settles automatically in USDC. You pay the service owner's price. No invoices, no payment terms, no chargebacks. Your Finance tab shows every transaction.

Call It From Your Code

# GraphQL query via Opsalis — POST to /internal/call with GraphQL body # SERVICE_UUID: copy from your catalog. YOUR_CONSUMER_SECRET: from Settings tab. $ curl -X POST https://localhost:3000/internal/call \ -H "Authorization: Bearer YOUR_CONSUMER_SECRET" \ -H "Content-Type: application/json" \ -d '{"api_id_public": "SERVICE_UUID", "path": "/graphql", "method": "POST", "body": {"query": "{ exoplanets(limit:3) { pl_name pl_orbper disc_method hostname } }"}}' \ | jq '.data.exoplanets[]' # Billing: 1 GraphQL call = 1 settlement. Introspection is free.
// JavaScript — no GraphQL client needed, plain fetch // SERVICE_UUID: copy from your catalog. YOUR_CONSUMER_SECRET: from Settings tab. const QUERY = ` query ExoplanetSearch { exoplanets( where: { disc_method: { _eq: "Transit" } } limit: 5 order_by: { pl_orbper: asc } ) { pl_name pl_orbper pl_rade disc_method hostname star { st_spectype st_teff st_dist } } } `; const res = await fetch('https://localhost:3000/internal/call', { method: 'POST', headers: { 'Authorization': 'Bearer YOUR_CONSUMER_SECRET', 'Content-Type': 'application/json', }, body: JSON.stringify({ api_id_public: 'SERVICE_UUID', path: '/graphql', method: 'POST', body: { query: QUERY }, }), }); const { data } = await res.json(); data.exoplanets.forEach(p => console.log(p.pl_name, p.disc_method));
# Python — plain requests, no gql library needed # SERVICE_UUID: copy from your catalog. YOUR_CONSUMER_SECRET: from Settings tab. import requests QUERY = """ query ExoplanetSearch { exoplanets( where: { disc_method: { _eq: "Transit" } } limit: 5 order_by: { pl_orbper: asc } ) { pl_name pl_orbper disc_method hostname star { st_spectype st_teff } } } """ r = requests.post( "https://localhost:3000/internal/call", headers={"Authorization": "Bearer YOUR_CONSUMER_SECRET"}, json={ "api_id_public": "SERVICE_UUID", "path": "/graphql", "method": "POST", "body": {"query": QUERY}, }, ) r.raise_for_status() for planet in r.json()["data"]["exoplanets"]: print(planet["pl_name"], "-", planet["disc_method"])

Replicate This on Your Raspberry Pi

Any GraphQL endpoint — yours, a public one, or one you built — can be registered in Opsalis. The node handles billing per query automatically.

1

Start your Opsalis (same as REST demo)

$ docker run -d --name opsalis -p 3000:3000 -p 3001:3001 \ -v opsalis-data:/data opsalis/wrapper:latest
2

Register a GraphQL endpoint

Set protocol: "graphql" and point at your GraphQL server.

$ curl -X POST http://localhost:3001/api/register \ -H "Content-Type: application/json" \ -d '{ "name": "My GraphQL API", "endpoint": "http://localhost:4000/graphql", "protocol": "graphql", "price_usdc": "0.0005", "description": "GraphQL API for my dataset" }'
3

Run queries against your Opsalis

Any GraphQL client that can POST to an HTTP endpoint works. Variables, fragments, and subscriptions are all supported.

$ curl -X POST https://localhost:3000/internal/call \ -H "Authorization: Bearer YOUR_CONSUMER_SECRET" \ -H "Content-Type: application/json" \ -d '{"api_id_public": "SERVICE_UUID", "path": "/graphql", "method": "POST", "body": {"query": "{ __schema { types { name } } }"}}'