Перейти к содержанию

Публичное API Namerate

Публичное API Namerate позволяет получить оценку никнейма в $NMRT, используя ту же логику, что и в мини‑приложении.

  • Базовый URL (прод): https://namerate.tech
  • Префикс версии API: /api/v1
  • Аутентификация: API‑ключ (заголовок или query параметр)

Быстрый старт

  1. Откройте мини‑приложение Namerate → раздел B2B → создайте API‑ключ.
  2. Сохраните ключ. Полностью он показывается только один раз — при создании.
  3. Вызовите эндпоинт:
curl -X POST \
  -H "X-API-Key: nmrt-***your_key***" \
  -H "Content-Type: application/json" \
  -d '{"name":"testuser"}' \
  https://namerate.tech/api/v1/public/rate

Эндпоинты

Оценка никнейма

  • POST https://namerate.tech/api/v1/public/rate
  • GET https://namerate.tech/api/v1/public/rate?api_key=<key>&name=<nickname>

Аутентификация через ваш API‑ключ:

  • Предпочтительно: заголовок X-API-Key: <key>
  • Альтернатива: query api_key=<key>

Требования к никнейму:

  • Длина: 5–32 символа
  • Допустимые символы: A–Z, a–z, 0–9, _ (нижнее подчёркивание)
  • При нарушении валидации — 400 Bad Request

Запрос

=== "POST (рекомендуется)"

curl -X POST \
  -H "X-API-Key: nmrt-******your_key******" \
  -H "Content-Type: application/json" \
  -d '{"name":"testuser"}' \
  https://namerate.tech/api/v1/public/rate

POST /api/v1/public/rate HTTP/1.1
Host: namerate.tech
Content-Type: application/json
X-API-Key: nmrt-******your_key******

{
  "name": "testuser"
}

=== "GET"

curl "https://namerate.tech/api/v1/public/rate?api_key=nmrt-******your_key******&name=testuser"

Ответ

{
  "name": "testuser",
  "rate": 965
}

Ошибки

HTTP Код Когда
400 invalid name: 5-32 chars, only A-Z a-z 0-9 _ allowed Ошибка валидации
400 name is required Пустой/отсутствует name
401 unauthorized Отсутствует/неверный API‑ключ
429 rate limit exceeded Превышен дневной лимит (если включён)
500 internal Внутренняя ошибка

Аутентификация

Передавай ключ одним из способов:

  • Заголовок (рекомендуется): X-API-Key: nmrt-...
  • Query: ?api_key=nmrt-...

Видимость ключа

Полный API‑ключ виден только один раз — в момент создания/ротации — в разделе B2B мини‑приложения.
Далее он отображается в маске (например, nmrt-d44b…e43b). Сохраните ключ в надёжном месте при первом показе.

Формат ключа:

  • Всегда начинается с nmrt-
  • Пример полного ключа: nmrt-7c1ba0a8c2… (случайная строка, похожая на SHA)

Лимиты и тарификация

  • Каждый успешный вызов списывает $NMRT с вашего аккаунта.
  • Возможны дневные лимиты на ключ (только при private usage, при превышении — 429 Too Many Requests).
  • Для повышения лимитов/кастомной тарификации — свяжитесь с поддержкой.

Текущий план и расход

  • При достижении дневного лимита будет 429.
  • Сумму трат можно увидеть в мини‑приложении в разделе B2B (“Spent”).

Правила валидации

  • Никнейм обрезается по краям (trim) и должен удовлетворять регекспу: ^[A-Za-z0-9_]{5,32}$
  • Примеры:
  • Валидно: test_user_01, Alice_123, abcde
  • Невалидно: ab (коротко), this_name_is_way_too_long_over_32 (длинно), abra-cadabra (дефис недопустим)

Ответ при невалидном нике:

{
  "error": "invalid name: 5-32 chars, only A-Z a-z 0-9 _ allowed"
}


Примеры

cURL

# POST
curl -X POST \
  -H "X-API-Key: nmrt-******your_key******" \
  -H "Content-Type: application/json" \
  -d '{"name":"alice_123"}' \
  https://namerate.tech/api/v1/public/rate

JavaScript (fetch)

const API_URL = 'https://namerate.tech/api/v1/public/rate';
const API_KEY = 'nmrt-******your_key******';

async function rateName(name) {
  const res = await fetch(API_URL, {
    method: 'POST',
    headers: {
      'X-API-Key': API_KEY,
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({ name }),
  });
  if (!res.ok) {
    const err = await res.json().catch(() => ({}));
    throw new Error(err.error || `HTTP ${res.status}`);
  }
  return res.json();
}

rateName('alice_123')
  .then(console.log)
  .catch(console.error);

Python (requests)

import requests

API_URL = 'https://namerate.tech/api/v1/public/rate'
API_KEY = 'nmrt-******your_key******'

resp = requests.post(
    API_URL,
    headers={'X-API-Key': API_KEY, 'Content-Type': 'application/json'},
    json={'name': 'alice_123'}
)
if resp.ok:
    print(resp.json())
else:
    print('Error', resp.status_code, resp.json())

Схема ответа

{
  "name": "string", // проверенный никнейм
  "rate": 965       // целочисленная оценка в $NMRT
}

Схема ошибки:

{ "error": "string" }


Рекомендации

  • Предпочтительнее POST и заголовок X-API-Key вместо query.
  • Валидируйте ник на клиенте той же регуляркой, чтобы не делать лишних запросов.
  • Обрабатывайте 429 (повтор позже/снизить частоту).
  • Кешируйте популярные результаты, если это допустимо.
  • Храните ключ в секьюр‑хранилище (не коммитьте в репо, не встраивайте в публичные клиенты).

Changelog

  • 2025‑10: Запуск публичного API; B2B‑управление ключами; маскировка ключей; валидация никнеймов.
  • Дальше: новые эндпоинты, пагинация, webhooks — без ломания совместимости.

Контакты и поддержка

  • В приложении: раздел B2B — управление ключом и просмотр расходов.
  • Поддержка: через меню в мини‑приложении или ваш контакт у Namerate.