API Request Samples

To simplify your DIA API integration journey, we created sample API calls for retrieving price data in the most widely used programming languages.

All examples make a call to DIA Asset Quotation API for Bitcoin price.

Shell

cURL

curl --request GET \
  --url https://api.diadata.org/v1/assetQuotation/Bitcoin/0x000000000000000000000000000000000000000 \
  --header 'Content-Type: application/json'

HTTPie

http GET https://api.diadata.org/v1/assetQuotation/Bitcoin/0x0000000000000000000000000000000000000000 \
  Content-Type:application/json

Wget

wget --quiet \
  --method GET \
  --header 'Content-Type: application/json' \
  --output-document \
  - https://api.diadata.org/v1/assetQuotation/Bitcoin/0x0000000000000000000000000000000000000000
JavaScript

Fetch

fetch("https://api.diadata.org/v1/assetQuotation/Bitcoin/0x0000000000000000000000000000000000000000", {
  "method": "GET",
  "headers": {
    "Content-Type": "application/json"
  }
})
.then(response => {
  console.log(response);
})
.catch(err => {
  console.error(err);
});

XMLHttpRequest

const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.diadata.org/v1/assetQuotation/Bitcoin/0x0000000000000000000000000000000000000000");
xhr.setRequestHeader("Content-Type", "application/json");

xhr.send(data);

jQuery

const settings = {
  "async": true,
  "crossDomain": true,
  "url": "https://api.diadata.org/v1/assetQuotation/Bitcoin/0x0000000000000000000000000000000000000000",
  "method": "GET",
  "headers": {
    "Content-Type": "application/json"
  }
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

Axios

import axios from "axios";

const options = {
  method: 'GET',
  url: 'https://api.diadata.org/v1/assetQuotation/Bitcoin/0x0000000000000000000000000000000000000000',
  headers: {'Content-Type': 'application/json'}
};

axios.request(options).then(function (response) {
  console.log(response.data);
}).catch(function (error) {
  console.error(error);
});
Node

Native

const http = require("https");

const options = {
  "method": "GET",
  "hostname": "api.diadata.org",
  "port": null,
  "path": "/v1/assetQuotation/Bitcoin/0x0000000000000000000000000000000000000000",
  "headers": {
    "Content-Type": "application/json"
  }
};

const req = http.request(options, function (res) {
  const chunks = [];

  res.on("data", function (chunk) {
    chunks.push(chunk);
  });

  res.on("end", function () {
    const body = Buffer.concat(chunks);
    console.log(body.toString());
  });
});

req.end();

Request

const request = require('request');

const options = {
  method: 'GET',
  url: 'https://api.diadata.org/v1/assetQuotation/Bitcoin/0x0000000000000000000000000000000000000000',
  headers: {'Content-Type': 'application/json'}
};

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});

Unirest

const unirest = require("unirest");

const req = unirest("GET", "https://api.diadata.org/v1/assetQuotation/Bitcoin/0x0000000000000000000000000000000000000000");

req.headers({
  "Content-Type": "application/json"
});

req.end(function (res) {
  if (res.error) throw new Error(res.error);

  console.log(res.body);
});

Fetch

const fetch = require('node-fetch');

let url = 'https://api.diadata.org/v1/assetQuotation/Bitcoin/0x0000000000000000000000000000000000000000';

let options = {method: 'GET', headers: {'Content-Type': 'application/json'}};

fetch(url, options)
  .then(res => res.json())
  .then(json => console.log(json))
  .catch(err => console.error('error:' + err));

Axios

var axios = require("axios").default;

var options = {
  method: 'GET',
  url: 'https://api.diadata.org/v1/assetQuotation/Bitcoin/0x0000000000000000000000000000000000000000',
  headers: {'Content-Type': 'application/json'}
};

axios.request(options).then(function (response) {
  console.log(response.data);
}).catch(function (error) {
  console.error(error);
});
Python

Python 3

import http.client

conn = http.client.HTTPSConnection("api.diadata.org")

headers = { 'Content-Type': "application/json" }

conn.request("GET", "/v1/assetQuotation/Bitcoin/0x0000000000000000000000000000000000000000", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))

Requests

import requests

url = "https://api.diadata.org/v1/assetQuotation/Bitcoin/0x0000000000000000000000000000000000000000"

headers = {'Content-Type': 'application/json'}

response = requests.request("GET", url, headers=headers)

print(response.text)
Go
package main

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

func main() {

	url := "https://api.diadata.org/v1/assetQuotation/Bitcoin/0x0000000000000000000000000000000000000000"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

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

	fmt.Println(res)
	fmt.Println(string(body))

}
C
CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(hnd, CURLOPT_URL, "https://api.diadata.org/v1/assetQuotation/Bitcoin/0x0000000000000000000000000000000000000000");

struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);

CURLcode ret = curl_easy_perform(hnd);
Obj-C
#import <Foundation/Foundation.h>

NSDictionary *headers = @{ @"Content-Type": @"application/json" };

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://api.diadata.org/v1/assetQuotation/Bitcoin/0x0000000000000000000000000000000000000000"]
                                                       cachePolicy:NSURLRequestUseProtocolCachePolicy
                                                   timeoutInterval:10.0];
[request setHTTPMethod:@"GET"];
[request setAllHTTPHeaderFields:headers];

NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
                                            completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
                                                if (error) {
                                                    NSLog(@"%@", error);
                                                } else {
                                                    NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
                                                    NSLog(@"%@", httpResponse);
                                                }
                                            }];
[dataTask resume];
OCaml
open Cohttp_lwt_unix
open Cohttp
open Lwt

let uri = Uri.of_string "https://api.diadata.org/v1/assetQuotation/Bitcoin/0x0000000000000000000000000000000000000000" in
let headers = Header.add (Header.init ()) "Content-Type" "application/json" in

Client.call ~headers `GET uri
>>= fun (res, body_stream) ->
  (* Do stuff with the result *)
C#

HttpClient

var client = new HttpClient();
var request = new HttpRequestMessage
{
    Method = HttpMethod.Get,
    RequestUri = new Uri("https://api.diadata.org/v1/assetQuotation/Bitcoin/0x0000000000000000000000000000000000000000"),
    Headers =
    {
        { "Content-Type", "application/json" },
    },
};
using (var response = await client.SendAsync(request))
{
    response.EnsureSuccessStatusCode();
    var body = await response.Content.ReadAsStringAsync();
    Console.WriteLine(body);
}

RestSharp

var client = new RestClient("https://api.diadata.org/v1/assetQuotation/Bitcoin/0x0000000000000000000000000000000000000000");
var request = new RestRequest(Method.GET);
request.AddHeader("Content-Type", "application/json");
IRestResponse response = client.Execute(request);
Java

AsyncHttp

AsyncHttpClient client = new DefaultAsyncHttpClient();
client.prepare("GET", "https://api.diadata.org/v1/assetQuotation/Bitcoin/0x0000000000000000000000000000000000000000")
  .setHeader("Content-Type", "application/json")
  .execute()
  .toCompletableFuture()
  .thenAccept(System.out::println)
  .join();

client.close();

NetHttp

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.diadata.org/v1/assetQuotation/Bitcoin/0x0000000000000000000000000000000000000000"))
    .header("Content-Type", "application/json")
    .method("GET", HttpRequest.BodyPublishers.noBody())
    .build();
HttpResponse<String> response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());

OkHttp

OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://api.diadata.org/v1/assetQuotation/Bitcoin/0x0000000000000000000000000000000000000000")
  .get()
  .addHeader("Content-Type", "application/json")
  .build();

Response response = client.newCall(request).execute();

Unirest

HttpResponse<String> response = Unirest.get("https://api.diadata.org/v1/assetQuotation/Bitcoin/0x0000000000000000000000000000000000000000")
  .header("Content-Type", "application/json")
  .asString();
Http
GET /v1/assetQuotation/Bitcoin/0x0000000000000000000000000000000000000000 HTTP/1.1
Content-Type: application/json
Host: api.diadata.org
Clojure
(require '[clj-http.client :as client])

(client/get "https://api.diadata.org/v1/assetQuotation/Bitcoin/0x0000000000000000000000000000000000000000" {:headers {:Content-Type "application/json"}})
Kotlin
val client = OkHttpClient()

val request = Request.Builder()
  .url("https://api.diadata.org/v1/assetQuotation/Bitcoin/0x0000000000000000000000000000000000000000")
  .get()
  .addHeader("Content-Type", "application/json")
  .build()

val response = client.newCall(request).execute()
PHP

pecl/http 1

<?php

$request = new HttpRequest();
$request->setUrl('https://api.diadata.org/v1/assetQuotation/Bitcoin/0x0000000000000000000000000000000000000000');
$request->setMethod(HTTP_METH_GET);

$request->setHeaders([
  'Content-Type' => 'application/json'
]);

try {
  $response = $request->send();

  echo $response->getBody();
} catch (HttpException $ex) {
  echo $ex;
}

pecl/http 2

<?php

$client = new http\Client;
$request = new http\Client\Request;

$request->setRequestUrl('https://api.diadata.org/v1/assetQuotation/Bitcoin/0x0000000000000000000000000000000000000000');
$request->setRequestMethod('GET');
$request->setHeaders([
  'Content-Type' => 'application/json'
]);

$client->enqueue($request)->send();
$response = $client->getResponse();

echo $response->getBody();

cURL

<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.diadata.org/v1/assetQuotation/Bitcoin/0x0000000000000000000000000000000000000000",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => [
    "Content-Type: application/json"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
Powershell

WebRequest

$headers=@{}
$headers.Add("Content-Type", "application/json")
$response = Invoke-WebRequest -Uri 'https://api.diadata.org/v1/assetQuotation/Bitcoin/0x0000000000000000000000000000000000000000' -Method GET -Headers $headers

RestMethod

$headers=@{}
$headers.Add("Content-Type", "application/json")
$response = Invoke-RestMethod -Uri 'https://api.diadata.org/v1/assetQuotation/Bitcoin/0x0000000000000000000000000000000000000000' -Method GET -Headers $headers
R
library(httr)

url <- "https://api.diadata.org/v1/assetQuotation/Bitcoin/0x0000000000000000000000000000000000000000"

response <- VERB("GET", url, add_headers(Content_Type = 'application/json'), content_type("application/octet-stream"))

content(response, "text")
Ruby
require 'uri'
require 'net/http'
require 'openssl'

url = URI("https://api.diadata.org/v1/assetQuotation/Bitcoin/0x0000000000000000000000000000000000000000")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Get.new(url)
request["Content-Type"] = 'application/json'

response = http.request(request)
puts response.read_body
Swift
import Foundation

let headers = ["Content-Type": "application/json"]

let request = NSMutableURLRequest(url: NSURL(string: "https://api.diadata.org/v1/assetQuotation/Bitcoin/0x0000000000000000000000000000000000000000")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()