API Quickstart

Things to know before using an API

Prerequisite

  • You need to signup PLYR[ID] first on both Mainnet and Testnet. This PLYR[ID] gonna be a "Developer account and Game ID". Please set a name to be related with your game name.

  • API KEY and SECRET KEY — After you signup the PLYR[ID]. You can request us to generate API KEY Pair.

Basic to Call our API

We use "Timestamp + Body Payload" and signs with SECRET KEY as a HMAC (SHA256) signature. You need to include custom header apikey, signature, timestamp every time to call our API.

Base Headers

Every API request must include these base headers:

{
    apikey: string; // Your API key obtained from the developer portal
    signature: string; // HMAC signature of the request
    timestamp: string; // Current timestamp in milliseconds (Date.now().toString())
}

Header Requirements

Format Requirements:

- Headers are case-sensitive
- Values must be strings
- Timestamp must be in milliseconds

HMAC Signature Generation

// Example signature generation
const timestamp = Date.now().toString();
const payload = JSON.stringify(requestBody);
const message = timestamp + payload;
const signature = crypto.createHmac('sha256', secretKey).update(message).digest('hex');

Always keep your API key and secret key secure. Never expose them in client-side code or public repositories.

Example 1: GET Method API without Body Payload.

Let see the example of "userInfo" API endpoint.

// Generate HMAC signature from timestamp + body //
const crypto = require('crypto');
const axios = require("axios");

const APIKEY = ''; // your api key
const SECRETKEY = ''; // you api secret key 

function generateHmacSignature(timestamp, body, secretkey) {
  const bodyString = JSON.stringify(body);
  const data = timestamp + bodyString;
  return crypto
    .createHmac('sha256', secretkey)
    .update(data)
    .digest('hex');
}

const timestamp = Date.now().toString();
const apiEndpoint = 'https://api-testnet.plyr.network/api';
const searchText = 'cyptofennec'; // PLYR[ID]
let hmac = generateHmacSignature(timestamp, {}, SECRETKEY); // If API required body payload (POST method) just pass the object //
let ret = await axios.get(
            apiEndpoint + "/api/user/info/" + searchTxt + '/',
            {
                headers: {
                    apikey: APIKEY,
                    signature: hmac,
                    timestamp: timestamp,
                },
            }
        );
console.log("ret data",ret.data);

Example 2: POST Method API with Body Payload.

Let see the example of "getAvatars" API endpoint.

// Generate HMAC signature from timestamp + body //
const crypto = require('crypto');
const axios = require("axios");

const APIKEY = ''; // your api key
const SECRETKEY = ''; // you api secret key 

function generateHmacSignature(timestamp, body, secretkey) {
  const bodyString = JSON.stringify(body);
  const data = timestamp + bodyString;
  return crypto
    .createHmac('sha256', secretkey)
    .update(data)
    .digest('hex');
}

const timestamp = Date.now().toString();
const apiEndpoint = 'https://api-testnet.plyr.network/api';
let body = {
    plyrIds: ['fennec2', 'cyptofennec']
}
let hmac = generateHmacSignature(timestamp, body, SECRETKEY);
let ret = await axios.post(
            apiEndpoint + "/api/user/avatars",
            body,
            {
                headers: {
                    apikey: APIKEY,
                    signature: hmac,
                    timestamp: timestamp,
                },
            }
        );
console.log("ret data",ret.data);

Last updated