NexoTrade

API for developers

The tools’ data as JSON, to read from your programs, your scripts or a spreadsheet. Read-only: the API doesn’t change anything in your account.

Base URL
https://api.nexotrade.com

Your key

You create it in Settings › API, from the Elite rank. You can have up to 5 at a time and delete them whenever you want. Go to Settings › API

The key is shown only once, when you create it. Keep it like a password: in an environment variable or in the script properties, never in the code, in a cell or in a repository.

It goes in the Authorization header of every request, never in the URL:

Authorization: Bearer nxt_…

The API doesn’t answer web pages from other sites (it has no CORS). Call it from a server, a script or Google Sheets, so your key doesn’t end up in anyone’s browser.

When you create a key, you accept the API terms of use. Read the terms

Limits

Each key can make 60 requests per minute and 10,000 per day. The day starts at 00:00 UTC. The Bitcoin Zone and the Fear and Greed Index change once a day: asking for them every minute brings nothing new.

Every response carries these headers:

X-RateLimit-LimitThe requests you can make per day.
X-RateLimit-RemainingThe ones you have left today.
X-RateLimit-ResetThe seconds until the next day starts (00:00 UTC).
X-RateLimit-Limit-MinuteThe requests you can make per minute.
Retry-AfterOnly with a 429: the seconds you have to wait before asking again.

Errors

An error comes with its HTTP status and this body. Your program should check «codigo»: «mensaje» is for people and may change.

{
  "error": {
    "codigo": "ritmo",
    "mensaje": "You're going too fast. Wait a moment and try again."
  }
}
HTTPCodeWhen
401clave-apiThe key is missing, malformed or no longer valid (for example, because you deleted it).
403sin-permisoYour rank doesn’t unlock that endpoint. «puerta» says what unlocks it.
404no-existeThat endpoint doesn’t exist.
405—The API is read-only: it accepts GET and HEAD.
429ritmoYou went over the per-minute or the daily limit. Wait as long as Retry-After says.
503api-apagadaThe API is switched off for a moment.
503no-disponibleThe source of that data isn’t answering right now. Try again in a while.
500falloSomething failed on our side.

Endpoints

All are requested with GET and answer in JSON. Parameters go in the URL, after «?».

GET /v1/zona-btc

The Bitcoin zone: a score from 1 to 100 of how high or low it is compared with its last 4 years, and its parts.

Who can use it: From the Elite rank

ParameterWhat it does
historicoWith 1, also the score for each day.Values: 1

Source: Alternative.me

Example response
{
  "hoy": {
    "fecha": "2026-10-27",
    "nota": 63,
    "tramo": "alta",
    "cobertura": 1,
    "comparaciones": [
      {
        "dias": 1,
        "nota": 61,
        "diferencia": 2
      }
    ],
    "enElTramo": 4
  },
  "atrasada": false,
  "version": 3,
  "partes": {
    "mayer": 71,
    "semanas200": 66,
    "funding": 48,
    "miedo": 55
  },
  "serie": null,
  "fuentes": [
    {
      "fuente": "Alternative.me",
      "enlace": "https://alternative.me/crypto/fear-and-greed-index/"
    }
  ]
}

GET /v1/miedo-codicia

Today's fear and greed index, with its band and where it was yesterday and 7 and 30 days ago.

Who can use it: From the Elite rank

ParameterWhat it does
historicoWith 1, also the last 30 days.Values: 1

Source: Alternative.me

Example response
{
  "hoy": {
    "fecha": "2026-10-28",
    "valor": 54,
    "tramo": "neutral",
    "comparaciones": [
      {
        "dias": 1,
        "valor": 50,
        "diferencia": 4
      }
    ]
  },
  "atrasado": false,
  "serie": null,
  "fuente": {
    "fuente": "Alternative.me",
    "enlace": "https://alternative.me/crypto/fear-and-greed-index/"
  }
}

GET /v1/funding

The average 8-hour funding rate of perpetual futures, in %, for each coin.

Who can use it: From the Elite rank

ParameterWhat it does
monedaThe coin for the last 30 days series (without it, BTC).Values: BTC, ETH, SOL, XRP, DOGE, BNB, ADA, SUI, LINK, AVAX, LTC, HYPE
Example response
{
  "hora": "2026-10-28T10:00:00.000Z",
  "monedas": [
    {
      "moneda": "BTC",
      "media8h": 0.0081
    },
    {
      "moneda": "ETH",
      "media8h": 0.0064
    }
  ],
  "serie": {
    "moneda": "BTC",
    "tramos": [
      {
        "t": "2026-10-28T00:00:00.000Z",
        "media": 0.0079
      }
    ]
  }
}

GET /v1/calendario

The week's economic data: when it comes out, its importance, the forecast, the previous and the actual figure.

Who can use it: From the Elite rank

ParameterWhat it does
semanaThis week or the next one.Values: actual, siguiente
importanciaOnly these importance levels, separated by commas. Without it, only high importance.Values: alta, media, baja
paisesOnly these countries, separated by commas.Values: estados-unidos, eurozona, reino-unido, japon, china, espana, mexico, argentina, colombia, cripto
idiomaThe language of the data names (without it, Spanish).Values: es, en, pt, de, fr, tr

Source: FREDThis product uses the FRED® API but is not endorsed or certified by the Federal Reserve Bank of St. Louis.

Example response
{
  "semana": "actual",
  "hora": "2026-10-28T10:00:00.000Z",
  "vieja": false,
  "eventos": [
    {
      "id": "us-ipc-anual",
      "titulo": "IPC (anual)",
      "pais": "US",
      "impacto": "alto",
      "hora": "2026-10-29T12:30:00.000Z",
      "soloFecha": false,
      "actual": null,
      "prevision": 2.9,
      "anterior": 3,
      "unidad": "%",
      "decimales": 1,
      "fuente": null
    }
  ],
  "aviso": {
    "texto": "This product uses the FRED® API but is not endorsed or certified by the Federal Reserve Bank of St. Louis.",
    "enlace": "https://fred.stlouisfed.org/docs/api/terms_of_use.html"
  }
}

GET /v1/mapa/{moneda}

The zones of the liquidation map: where liquidations cluster, on which side and how strongly.

Who can use it: Nobody yet: it will open soon.

ParameterWhat it does
monedaRequiredIn the path: bitcoin or ethereum (ethereum, with the full map).Values: bitcoin, ethereum
horizonteThe map horizon (without it, 1h).Values: 1h, 4h
antiguedadOnly the money that came in during that time.Values: todas, 4h, 12h, 24h, 3d, 7d
apalancamientoOnly those leverage levels, separated by commas (3,5,10).
minimaThe minimum strength of the zones.Values: 0, 25, 50, 75
enA past moment, in ISO 8601 with its time zone (up to 30 days back).
Example response
{
  "moneda": "bitcoin",
  "horizonte": "1h",
  "version": "completa",
  "calculadaEn": "2026-10-28T10:00:00.000Z",
  "datosDe": "2026-10-28T09:59:30.000Z",
  "enDirecto": true,
  "zonas": [
    {
      "desde": 64200,
      "hasta": 64550,
      "lado": "largos",
      "fuerza": 82,
      "confianza": 0.74,
      "estado": "activa",
      "nacio": "2026-10-27T22:10:00.000Z"
    }
  ],
  "tiempo": {
    "en": null,
    "desde": "2026-09-28T10:05:00.000Z",
    "hasta": "2026-10-28T10:00:00.000Z"
  },
  "filtro": {
    "antiguedad": "todas",
    "apalancamientos": null,
    "minima": 0,
    "escalones": [
      5,
      10,
      25,
      50,
      100
    ],
    "disponible": true
  },
  "vieja": false,
  "mejora": null
}

Examples

All four ask for today’s Bitcoin Zone. The first three read the key from the environment variable API_KEY: set it in your terminal first, not in the code.

curl
curl -H "Authorization: Bearer $API_KEY" https://api.nexotrade.com/v1/zona-btc
Python (with requests)
import os
import requests

r = requests.get(
    "https://api.nexotrade.com/v1/zona-btc",
    headers={"Authorization": f"Bearer {os.environ['API_KEY']}"},
    timeout=10,
)
r.raise_for_status()
hoy = r.json()["hoy"]
print(hoy["fecha"], hoy["nota"], hoy["tramo"])
JavaScript (Node 18 or newer, in a .mjs file)
const r = await fetch('https://api.nexotrade.com/v1/zona-btc', {
  headers: { Authorization: `Bearer ${process.env.API_KEY}` },
});
if (!r.ok) throw new Error(`HTTP ${r.status}`);
const { hoy } = await r.json();
console.log(hoy.fecha, hoy.nota, hoy.tramo);

Google Sheets

With Apps Script, the sheet writes each day’s score in a new row.

  1. In your spreadsheet, open Extensions › Apps Script.
  2. In Project Settings › Script Properties, add the property API_KEY with your key as its value. That way the key isn’t in any cell or in the code.
  3. In the editor, paste the code below and save it.
  4. Run zonaBtc once and grant it permission. It writes today’s score in the «Bitcoin Zone» tab.
  5. To have it write itself every day, in Triggers add one for zonaBtc, time-driven, once a day.
Apps Script
function zonaBtc() {
  const clave = PropertiesService.getScriptProperties().getProperty('API_KEY');
  const r = UrlFetchApp.fetch('https://api.nexotrade.com/v1/zona-btc', {
    headers: { Authorization: 'Bearer ' + clave },
    muteHttpExceptions: true,
  });
  if (r.getResponseCode() !== 200) throw new Error('HTTP ' + r.getResponseCode() + ': ' + r.getContentText());
  const hoy = JSON.parse(r.getContentText()).hoy;
  if (!hoy) return;

  const libro = SpreadsheetApp.getActiveSpreadsheet();
  const hoja = libro.getSheetByName("Bitcoin Zone") || libro.insertSheet("Bitcoin Zone");
  if (hoja.getLastRow() === 0) hoja.appendRow(['fecha', 'nota', 'tramo']);
  const fechas = hoja.getRange(1, 1, hoja.getLastRow(), 1).getDisplayValues().flat();
  if (!fechas.includes(hoy.fecha)) hoja.appendRow(["'" + hoy.fecha, hoy.nota, hoy.tramo]);
}

Sources and their licenses

Some data comes from sources that ask to be credited. If you show it, credit them like this:

Responses with data from those sources carry their credit in «fuente», «fuentes» or «aviso». API terms of use

This is information, not investment advice.

Unlock for free