Getting Started

Steps for getting started with the Defined Public API.

1. Get your API key ✨

Go to the Defined Dashboard and sign up for an API account. Choose between:

  • Free Plan - for personal and hobby projects
  • Growth Plan - for teams and startups
  • Enterprise Plan - for tailored solutions and support

2. Run your first query

Replace <MY_KEY> with your new API key.

  curl \
  -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization:<MY_KEY>" -d '{ "query": "{ getNetworks { name, id } }"}' \
  https://graph.defined.fi/graphql
import axios from "axios";

axios
  .post(
    "https://graph.defined.fi/graphql",
    {
      query: `{
        getNetworks {
          name
          id
        }
      }`
    },{
      headers: {
        "Content-Type": "application/json",
        "Authorization": "<MY_KEY>"
      }
    }
  )
  .then((response) => {
    console.log(response.data);
  });

import requests
import json

url = "https://graph.defined.fi/graphql"

headers = {
  "content_type":"application/json",
  "Authorization": "<MY_KEY>"
}

getNetworks = """query GetNetworksQuery { getNetworks { name id } }"""

response = requests.post(url, headers=headers, json={"query": getNetworks})

print(json.loads(response.text))
<?php

$url = "https://graph.defined.fi/graphql";

$query = array(
    'query' => '{
        getNetworks {
            name
            id
        }
    }'
);

$headers = array(
    'Content-Type: application/json',
    'Authorization: ' . "<MY_KEY>"
);

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($query));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$response = curl_exec($ch);
curl_close($ch);

echo $response;
package main

import (
  "bytes"
	"fmt"
	"net/http"
	"io/ioutil"
	"encoding/json"
)

func main() {
	url := "https://graph.defined.fi/graphql"
	apiKey := "<MY_KEY>"

	query := `query GetNetworksQuery { getNetworks { name id } }`
	payload := map[string]string{"query": query}
	payloadBytes, _ := json.Marshal(payload)

	req, _ := http.NewRequest("POST", url, bytes.NewBuffer(payloadBytes))
	req.Header.Set("Content-Type", "application/json")
	req.Header.Set("Authorization", apiKey)

	client := &http.Client{}
	res, _ := client.Do(req)
	defer res.Body.Close()

	body, _ := ioutil.ReadAll(res.Body)

	var response map[string]interface{}
	json.Unmarshal(body, &response)

	fmt.Println(response)
}


require 'net/http'
require 'json'

uri = URI('https://graph.defined.fi/graphql')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true

headers = {
  'Content-Type' => 'application/json',
  'Authorization' => '<MY_KEY>'
}

query = {
  query: '{
    getNetworks {
      name
      id
    }
  }'
}

request = Net::HTTP::Post.new(uri.path, headers)
request.body = query.to_json

response = http.request(request)
puts response.body

Your key must be included as Authorization in the header of every request.

Make sure to keep your API key private and secure.

3. Start building

Visit the Quickstart guides for each section for ideas and help integrating your app with the Defined API.

Check out the 🧭 Explorer if you'd like to scope out the API and run some queries right now.

Go to the Defined Charting Tools and turn on the Show API endpoints setting to see the endpoints powering the site.

We maintain an SDK to help you develop on top of our API. The SDK provides the public schema definition language (SDL). You can use graphql-codegen to generate types and queries. Check out the Github repo for installation and examples.

πŸ‘‹

Join our Discord

Ask questions, share what you're working on and request new features πŸ‘¬πŸ‘­