SDK JavaScript

Entrar

Instalação

Copie e cole no HTML — ou baixe o arquivo e sirva do seu próprio domínio. Funciona no browser (global Nyqo) e no Node 18+ (require).

Browser — script tag

<script src="/nyqo-sdk.js"></script>
<script>
  const nyqo = Nyqo.createClient({ apiKey: "nyq_sua_chave_aqui" });
  const res = await nyqo.search.web("nyqo");
  console.log(res);
</script>
Baixar nyqo-sdk.js

Node 18+ — arquivo local

// Node 18+ — copie nyqo-sdk.js para o projeto (sem npm, sem CDN)
const { createClient } = require("./nyqo-sdk.js");
// (projeto "type": "module": import "./nyqo-sdk.js"; const { createClient } = globalThis.Nyqo;)

const nyqo = createClient({
  apiKey: process.env.NYQO_API_KEY || "nyq_sua_chave_aqui",
  baseUrl: "https://api.nyqo.dev", // no browser, omita: mesma origem
});

Postman — coleção pronta

Todos os endpoints com auth via variável nyqo_api_key. Importe e troque pela sua chave nyq_.

Baixar coleção Postman

Quickstart

// 1 — cliente (browser: mesma origem; demo local responde sozinho)
const nyqo = Nyqo.createClient({ apiKey: "nyq_sua_chave_aqui" });

// 2 — Nyqo Buscas (slug data-query, quota diária separada)
const busca = await nyqo.buscas.query({ type: "cpf", value: "12345678901" });

// 3 — erros padronizados (NyqoError: status/code/retryAfter)
try {
  console.log(busca);
} catch (err) {
  if (err.code === "rate_limited") {
    await new Promise((r) => setTimeout(r, err.retryAfter * 1000));
  }
  throw err;
}

Autenticação

O data-plane aceita Bearer (padrão) ouX-API-Key — nunca na query string. Os helpers de billing usam a sessão do site/painel (cookie same-origin): a chave nyq_ não autentica lá.

// Recomendado: Authorization Bearer (padrão do SDK)
Nyqo.createClient({ apiKey: "nyq_sua_chave_aqui" });

// Alternativa: header X-API-Key
Nyqo.createClient({ apiKey: "nyq_sua_chave_aqui", authMode: "x-api-key" });

// Billing = SESSÃO same-origin (nyq_ NÃO autentica lá)
await nyqo.billing.subscription(); // logado no painel/site

Erros e Retry-After

Toda falha vira NyqoErrorcom status,code (slug do envelope) eretryAfter (segundos do headerRetry-After em 429). Detalhes em /docs — códigos de erro.

import { NyqoError } from "./nyqo-sdk.js"; // browser: Nyqo.NyqoError

try {
  await nyqo.search.web("nyqo");
} catch (err) {
  console.log(err.status, err.code, err.retryAfter);
  // 401 unauthorized  — sem chave ou chave inválida (msk_ legada cai aqui)
  // 403 forbidden     — sem plano ativo, rota fora do plano/escopo da chave
  // 429 rate_limited  — quota estourada; err.retryAfter = segundos do
  //                     header Retry-After (60 janelas · 86400 Nyqo Buscas)
}

Exemplos JavaScript

Mesmo estilo dos snapshots do gerador (docs/nyqo/examples/*.md): à esquerda o fetch cru, à direita o equivalente no SDK.

Busca na web — fetch cru

// web-search — Pesquisa · Nyqo API
// GET https://api.nyqo.dev/api/v1/search/web
const API_KEY = process.env.NYQO_API_KEY || "nyq_sua_chave_aqui";

const params = new URLSearchParams({ q: "exemplo de busca", max: "5" });
const res = await fetch(`https://api.nyqo.dev/api/v1/search/web?${params}`, {
  headers: { Authorization: `Bearer ${API_KEY}` },
});
if (res.status === 401) throw new Error("401: chave ausente ou inválida (use nyq_...)");
if (res.status === 403) throw new Error("403: sem plano ativo ou rota fora do escopo");
if (res.status === 429) throw new Error(`429: rate limit — Retry-After: ${res.headers.get("retry-after") ?? "60"}s`);
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());

Busca na web — via SDK

// Mesmo exemplo, via SDK (auth + 401/403/429 embutidos)
const nyqo = Nyqo.createClient({ apiKey: "nyq_sua_chave_aqui" });

console.log(await nyqo.search.web("exemplo de busca", { max: 5 }));

Nyqo Buscas — fetch cru

// data-query — Nyqo Buscas · POST https://api.nyqo.dev/api/v1/consultas
const API_KEY = process.env.NYQO_API_KEY || "nyq_sua_chave_aqui";

const res = await fetch("https://api.nyqo.dev/api/v1/consultas", {
  method: "POST",
  headers: { Authorization: `Bearer ${API_KEY}`, "Content-Type": "application/json" },
  body: JSON.stringify({ type: "cpf", value: "12345678901", format: "json" }),
});
if (res.status === 401) throw new Error("401: chave ausente ou inválida (use nyq_...)");
if (res.status === 403) throw new Error("403: sem plano ativo ou rota fora do escopo");
if (res.status === 429) throw new Error(`429: quota Nyqo Buscas — Retry-After: ${res.headers.get("retry-after") ?? "86400"}s`);
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());

Nyqo Buscas — via SDK

// Mesmo exemplo, via SDK — Nyqo Buscas (quota diária separada)
const nyqo = Nyqo.createClient({ apiKey: "nyq_sua_chave_aqui" });

console.log(await nyqo.buscas.query({ type: "cpf", value: "12345678901" }));
// format: "json" (padrão) ou "text"

IA — via SDK

// IA: chat simples + OpenAI-compatible + modelos
const nyqo = Nyqo.createClient({ apiKey: "nyq_sua_chave_aqui" });

console.log(await nyqo.ai.chat("Olá! Como você pode me ajudar?"));
console.log(await nyqo.ai.completions([{ role: "user", content: "Olá!" }]));
console.log(await nyqo.ai.models());

Exemplo Python

Nyqo Buscas com requests — mesmo shape do snapshot gerado (docs/nyqo/examples/data-query.md).

"""Nyqo Buscas (data-query) — POST https://api.nyqo.dev/api/v1/consultas."""
import os
import sys

import requests

BASE_URL = "https://api.nyqo.dev"
API_KEY = os.environ.get("NYQO_API_KEY", "nyq_sua_chave_aqui")


def main() -> None:
    try:
        res = requests.post(
            f"{BASE_URL}/api/v1/consultas",
            json={"type": "cpf", "value": "12345678901", "format": "json"},
            headers={"Authorization": f"Bearer {API_KEY}"},
            timeout=30,
        )
    except requests.RequestException as exc:  # rede, DNS, timeout
        print(f"erro de rede: {exc}", file=sys.stderr)
        raise SystemExit(1)
    if res.status_code == 401:
        print("401: chave ausente ou inválida (use nyq_...)", file=sys.stderr)
        raise SystemExit(1)
    if res.status_code == 403:
        print("403: sem plano ativo ou rota fora do escopo", file=sys.stderr)
        raise SystemExit(1)
    if res.status_code == 429:
        retry = res.headers.get("Retry-After", "86400")
        print(f"429: quota Nyqo Buscas — Retry-After: {retry}s", file=sys.stderr)
        raise SystemExit(1)
    res.raise_for_status()
    print(res.json())


if __name__ == "__main__":
    main()

Referência do SDK

HelperRotaAuth
search.web(q, {max})GET /api/v1/search/webnyq_
search.lyrics(q)GET /api/v1/search/lyricsnyq_
buscas.query({type,value,format})POST /api/v1/consultasnyq_ + quota diária
ai.chat(message, {image})POST /api/v1/ai/chatnyq_
ai.completions(messages)POST /api/v1/chat/completionsnyq_
ai.models()GET /api/v1/ai/modelsnyq_
downloads.tiktok(url) · instagram · youtube · spotify · …GET /api/v1/… + /api/modyolo/…nyq_
games.minecraftProfile(user) · robloxProfile · …GET /api/v1/games/…nyq_
utils.upload(file)POST /api/upload (multipart)nyq_
utils.brat(text)GET /api/v1/image/brat (PNG)nyq_
billing.plans()GET /v1/public/planspública
billing.subscription() · payments() · activatePlan() · …/v1/billing/…sessão

Lista completa (20+ atalhos de downloads/jogos + get/post/request crus) direto no fonte: /nyqo-sdk.js.

Playground

Rode o SDK de verdade nesta página (mesma origem). No modo demo, as chamadas são respondidas localmente — use qualquer chave nyq_demo_….

// O resultado aparece aqui.