Making A Request

Fetching data from a GraphQL API is a simple as making a HTTP request. The code below provides a basic example of how this can be achieved.

C#
using System.Net.Http.Headers;
using System.Text;

public class Program
{
    public async static Task Main()
    {
        var url = "https://hub.production.racing.tote.co.uk/partner/gateway/graphql/";
        var token = ""; // JWT Access Token;
        var query = ""; // Omitted for brevity

        using var client = new HttpClient();
        client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Api-Key", token);

        var request = new StringContent(query, Encoding.UTF8, "application/json");
        var response = await client.PostAsync(url, request);
        var responseBody = await response.Content.ReadAsStringAsync();
    }
}
Go
package main

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

func main() {
  url := "https://hub.production.racing.tote.co.uk/partner/gateway/graphql/"
  token := "" // JWT Access Token;
  query := "" // Omitted for brevity

  req, _ := http.NewRequest("POST", url, bytes.NewBuffer([]byte(query)))
  req.Header.Set("Content-Type", "application/json")
  req.Header.Set("Authorization", fmt.Sprintf("Api-Key %s", token))

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

  responseBody, _ := ioutil.ReadAll(resp.Body)
}
Node js
"use strict";

import fetch from "node-fetch";

const url = "https://hub.production.racing.tote.co.uk/partner/gateway/graphql/";
const token = ""; // JWT Access Token;
const query = ""; // Omitted for brevity

const response = await fetch(url, {
  method: "POST",
  body: query,
  headers: {
    "Content-Type": "application/json",
    Authorization: `Api-Key ${token}`,
  },
});

const responseBody = await response.json();
Java
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

public class Main {
    public static void main(String[] args) {
        var url = "https://hub.production.racing.tote.co.uk/partner/gateway/graphql/";
        var token = ""; // JWT Access Token;
        var query = ""; // Omitted for brevity

        var request = HttpRequest.newBuilder()
                .uri(URI.create(url))
                .header("Content-Type", "application/json")
                .header("Authorization", "Api-Key " + token)
                .POST(HttpRequest.BodyPublishers.ofString(query))
                .build();

        var client = HttpClient.newHttpClient();
        var response = client.send(request, HttpResponse.BodyHandlers.ofString());
        var responseBody = response.body();
    }
}
Python
import asyncio
import aiohttp
async def main():
    url = "https://hub.production.racing.tote.co.uk/partner/gateway/graphql/"
    token = ""  # JWT Access Token
    query = ""  # Omitted for brevity

    headers = {
        "Authorization": f"Api-Key {token}",
        "Content-Type": "application/json"
    }

    async with aiohttp.ClientSession() as session:
        async with session.post(url, data=query, headers=headers) as response:
            response_body = await response.text()
            print(response_body)

asyncio.run(main())