flye.win

// sdks

SDKs oficiais

Clientes oficiais para JavaScript/TypeScript e Python. Cada endpoint de cada API vira um método, com os mesmos parâmetros desta documentação, e o SDK cuida da chave, dos erros, do tempo limite e das novas tentativas. Esta página cobre tudo: da instalação à referência completa de cada método.

versão 0.1.0 sem dependências npm ↗ PyPI ↗ OpenAPI ↗
Exemplos em

Instalação

npm install flyewin
# or: pnpm add flyewin · yarn add flyewin · bun add flyewin
  • —JavaScript/TypeScript: Node 18 ou mais novo, Deno e Bun. Funciona com import (ESM) e require (CommonJS), e já vem com os tipos do TypeScript.
  • —Python: 3.8 ou mais novo. Usa só a biblioteca padrão, sem requests nem outra dependência.

Use o SDK no seu servidor. Uma chave flye_sk_ no navegador ou num app de celular pode ser copiada por qualquer pessoa. Seu front-end chama o seu back-end, e o back-end chama a flye.win.

// CommonJS (require) also works:
const Flye = require("flyewin");
const { FlyeError } = require("flyewin");

Primeira chamada

  1. 01

    Crie uma chave

    Em Dashboard → Chaves. Para começar, escolha Teste: ela não precisa de plano e não gasta cota.

  2. 02

    Guarde a chave numa variável de ambiente

    O SDK lê FLYE_API_KEY sozinho. Assim a chave não fica no código nem vai parar no git.

    # macOS / Linux
    export FLYE_API_KEY="flye_test_…"
    
    # Windows (PowerShell)
    $env:FLYE_API_KEY = "flye_test_…"
  3. 03

    Chame a API

    import Flye from "flyewin";
    
    const flye = new Flye(); // reads FLYE_API_KEY
    
    const data = await flye.utils.uuid({ count: 2 });
    console.log(data.uuids);

    O método devolve o JSON da resposta já convertido: um objeto em JavaScript e um dict em Python. O formato de cada resposta está na referência, no fim desta página.

Configuração

Tudo é opcional. Sem nada, o cliente lê a chave de FLYE_API_KEY e usa os padrões abaixo. Crie um cliente só e reaproveite na aplicação inteira.

JavaScriptPythonpadrãodescrição
apiKeyapi_keyFLYE_API_KEYSua chave (flye_sk_… ou flye_test_…). Sem ela e sem a variável de ambiente, o cliente nem é criado.
baseURLbase_urlhttps://flye.win/v1Endereço da API. Só mude para testes ou um proxy seu.
timeouttimeout30000 ms · 30.0 sTempo máximo de cada requisição: milissegundos em JS, segundos em Python.
maxRetriesmax_retries2Quantas vezes repetir uma chamada que falhou por motivo passageiro. 0 desliga.
fetch—globalThis.fetchSó JavaScript: outra implementação de fetch, para ambientes antigos ou testes.
import Flye from "flyewin";

const flye = new Flye(process.env.FLYE_API_KEY, {
  timeout: 10_000, // ms, per request
  maxRetries: 3,
});

// or pass everything in one object:
const other = new Flye({ apiKey: "flye_test_...", maxRetries: 0 });

Variáveis de ambiente lidas pelos dois SDKs: FLYE_API_KEY (a chave) e FLYE_BASE_URL (o endereço). O que você passa no código tem prioridade.

Chaves de teste

Com uma chave flye_test_, o código é exatamente o mesmo: cada método devolve o exemplo de resposta da documentação, sem plano e sem gastar cota (30 requisições por minuto e 1.000 por dia). Parâmetros obrigatórios e rotas são conferidos como na produção, então um erro de integração aparece já no teste.

const flye = new Flye("flye_test_...");

const data = await flye.utils.hash({ text: "hello" });
console.log(flye.lastResponse.headers.get("x-flye-mode")); // "test"

Use a chave de teste no desenvolvimento e no CI. Para ir para produção, só troque o valor de FLYE_API_KEY por uma chave flye_sk_.

Tratando erros

Toda falha vira um FlyeError: resposta de erro da API, tempo esgotado, falha de rede ou parâmetro faltando. Decida pelo code, que é estável. A message é para pessoas e pode mudar.

campodescrição
codeCódigo do erro, como rate_limited ou invalid_api_key. É o mesmo error.code que a API devolve.
statusStatus HTTP (401, 429…). Vazio quando a requisição nem chegou à API (rede ou tempo esgotado).
messageExplicação em texto, no idioma da conta.
bodyO corpo da resposta de erro, já convertido de JSON.
headersOs headers da resposta (Retry-After, X-RateLimit-*…).
import Flye, { FlyeError } from "flyewin";

const flye = new Flye();

try {
  const data = await flye.utils.hash({ text: "hello" });
} catch (err) {
  if (!(err instanceof FlyeError)) throw err;

  switch (err.code) {
    case "invalid_api_key":
      // wrong or revoked key
      break;
    case "no_subscription":
      // activate a plan for this API in the dashboard
      break;
    case "rate_limited":
    case "quota_exceeded":
      // slow down / upgrade the plan
      break;
    default:
      console.error(err.status, err.code, err.message);
  }
}

Erros do próprio SDK

Estes não vêm da API: o SDK detecta antes ou durante a chamada.

codequando acontece
missing_api_keyNenhuma chave no código nem em FLYE_API_KEY. Acontece ao criar o cliente.
missing_paramFaltou um parâmetro que vai no caminho, como o id em getPack. A chamada nem sai.
invalid_fileO valor passado num upload não é um arquivo aceito (veja Uploads).
timeoutA resposta não chegou dentro do tempo limite.
network_errorSem conexão, DNS falhou ou a conexão caiu, depois das novas tentativas.

A lista completa dos códigos da API está em Documentação → Erros.

Novas tentativas

O SDK repete sozinho só o que é seguro repetir:

  • —Falha de rede e erro 5xx, só em chamadas GET. Um POST (como um upload) nunca é repetido sozinho, para não duplicar.
  • —429 com Retry-After de até 60 segundos (limite por minuto), em qualquer método: o SDK espera o tempo pedido e tenta de novo.
  • —Nunca repete cota do mês esgotada, chave inválida, falta de plano nem parâmetro errado: tentar de novo não resolveria.
  • —Até maxRetries vezes (padrão 2), com espera crescente: cerca de 0,5 s, 1 s, 2 s…
// Whole client:
const flye = new Flye(undefined, { maxRetries: 4 });

// Only this call (0 = never retry):
await flye.cdn.upload({ image, project: "shop" }, { maxRetries: 0 });

Em JavaScript dá para mudar por chamada, no segundo argumento. Em Python a configuração vale para o cliente: crie outro cliente se precisar de um comportamento diferente.

Tempo limite e cancelamento

O tempo limite padrão é de 30 segundos por requisição, contando o download da resposta. Mude para o cliente inteiro ou só para uma chamada. Em JavaScript dá também para cancelar com um AbortSignal. Quando o tempo acaba, o erro tem o código timeout.

// Per call, in milliseconds:
await flye.stickers.search({ q: "cat" }, { timeout: 5_000 });

// Cancel with an AbortController (e.g. the user left the page):
const controller = new AbortController();
const pending = flye.stickers.search({ q: "cat" }, { signal: controller.signal });
controller.abort();

Limites e cota

Os headers de limite da última resposta ficam no cliente: lastResponse em JavaScript e last_response em Python. Use para mostrar a cota ao usuário ou para diminuir o ritmo antes de chegar no limite.

const data = await flye.utils.uuid();
const h = flye.lastResponse.headers;

console.log(h.get("x-ratelimit-remaining")); // left in this minute
console.log(h.get("x-quota-remaining"));     // left this month

Com várias chamadas ao mesmo tempo, lastResponse guarda a que terminou por último. Leia logo depois do await ou use um cliente por tarefa.

Upload de arquivos

Parâmetros do tipo file (como image em cdn.upload) aceitam várias formas. O SDK monta o multipart/form-data e descobre o tipo do arquivo pelo nome.

  • —JavaScript: Blob ou File, Buffer/Uint8Array/ArrayBuffer, ou { data, filename, contentType } para dar nome aos bytes.
  • —Python: arquivo aberto em modo binário, caminho (str ou Path), bytes, ou a tupla (nome, bytes, tipo).
import { openAsBlob } from "node:fs";
import { readFile } from "node:fs/promises";

// Node 20+: a Blob straight from disk
await flye.cdn.upload({ image: await openAsBlob("photo.jpg"), project: "shop" });

// Any Node: bytes + a file name
await flye.cdn.upload({
  image: { data: await readFile("photo.jpg"), filename: "photo.jpg" },
  project: "shop",
  folder: "products",
});

// A File received by your server (Next.js, Hono, Remix...)
const form = await request.formData();
await flye.cdn.upload({ image: form.get("image"), project: "shop" });

Limite por usuário final

Nos planos com limite por usuário final (como o Scale), passe endUserId / end_user_id com um identificador estável de cada usuário da sua plataforma, de preferência um hash. O SDK envia no header X-End-User-Id, e o limite por minuto passa a valer para cada usuário. O parâmetro só existe nos métodos que aceitam o header.

// Scale plan: the per-minute limit applies to each of your users
const data = await flye.stickers.search({
  q: "cat",
  endUserId: hash(user.id), // sent as the X-End-User-Id header
});

TypeScript e tipos

O pacote npm traz index.d.ts: todos os métodos e parâmetros têm tipo e descrição no editor. Os tipos dos parâmetros seguem o padrão <Api><Método>Params, como StickersSearchParams. As respostas são any: o formato de cada uma está na referência abaixo. Em Python, o pacote tem dicas de tipo (py.typed) para mypy, pyright e o editor.

import Flye, { FlyeError, type StickersSearchParams } from "flyewin";

const flye = new Flye();

const params: StickersSearchParams = { q: "cat", limit: 10 };
const data = await flye.stickers.search(params);

Parâmetros novos

Quando uma API ganha um parâmetro antes de você atualizar o SDK, passe mesmo assim: o que o SDK não conhece segue para a API sem mudança (na query em GET e DELETE, no corpo JSON nos outros). Em Python, flye.request chama qualquer caminho diretamente.

// Parameters newer than your SDK version are sent as-is:
await flye.utils.uuid({ count: 2, someNewOption: true });

Usando num servidor

Crie o cliente uma vez, ao subir a aplicação, e use em todas as rotas. Repasse o erro com o status certo para o seu front-end, sem nunca devolver a chave. O cliente Python é síncrono: em frameworks assíncronos, rode a chamada numa thread.

// server.js (Express). One client for the whole app.
import express from "express";
import Flye, { FlyeError } from "flyewin";

const app = express();
const flye = new Flye();

app.get("/stickers", async (req, res) => {
  try {
    res.json(await flye.stickers.search({ q: String(req.query.q ?? "") }));
  } catch (err) {
    const status = err instanceof FlyeError && err.status ? err.status : 502;
    res.status(status).json({ error: err.code ?? "upstream_error" });
  }
});

app.listen(3000);

Versões e atualização

Versão atual: 0.1.0. Os SDKs seguem a API /v1: versões novas só adicionam métodos e parâmetros, sem quebrar o código que já existe.

npm install flyewin@latest
pip install --upgrade flyewin

Usa outra linguagem? A especificação OpenAPI gera clientes para Go, PHP, Java, C#, Ruby e outras. E a página de cada API tem exemplos prontos em curl, Go e PHP.

// referência

Referência dos métodos

Todas as APIs e todos os métodos, com os parâmetros nos dois SDKs, um exemplo para copiar e o formato da resposta. Em JavaScript os parâmetros vão num objeto; em Python, como argumentos nomeados. Os que vão no caminho da URL também podem ser passados por posição em Python.

Stickers

Busca de figurinhas e GIFs animados, com links prontos para usar.

flye.stickers · flye.stickers

Página da API
métodoHTTPdescrição
search GET /stickers/search Buscar figurinhas
listPackslist_packs GET /stickers/packs Listar packs
getPackget_pack GET /stickers/packs/{id} Figurinhas de um pack
GET /v1/stickers/packs

Listar packs

flye.stickers.listPacks() · flye.stickers.list_packs()

Lista os packs encontrados para o termo, com uma figurinha de capa, para você montar uma tela de escolha.

parâmetros

JS · Pythontipona APIdescrição
q obrigatório string qquery Termo de busca, de 2 a 80 caracteres. Ex.: gato
endUserIdend_user_id opcional string X-End-User-Idheader Plano Scale: identifica o usuário da sua plataforma, para o limite valer por usuário e não para a conta. Use um id estável, de preferência um hash.
maxWaitMsmax_wait_ms opcional integer max_wait_msquery Tempo máximo de espera por um termo nunca buscado, de 0 a 15000 ms. Passando disso, a resposta volta na hora com pending=true e a busca continua: repita a chamada em instantes. Sem o parâmetro, espera o resultado. Ex.: 300
limit opcional integer limitquery Packs por página, de 1 a 20. Padrão 10. Ex.: 5
page opcional integer pagequery Página, a partir de 1.
type opcional string typequery all, animated ou static. Padrão all.
exemplo

flye.stickers.listPacks(params: StickersListPacksParams, options?: RequestOptions): Promise<any>

import Flye from "flyewin";

const flye = new Flye(); // reads FLYE_API_KEY

const data = await flye.stickers.listPacks({
  q: "gato",
  maxWaitMs: 300,
  limit: 5,
});
console.log(data);

resposta (exemplo)

{
  "query": "gato",
  "total": 12,
  "page": 1,
  "packs": [
    {
      "id": "pk_3f9a1c7e2b8d4a60c1e5",
      "name": "Gatos engraçados",
      "author": "Ana",
      "animated": true,
      "count": 30,
      "cover": "https://flye.win/media/stickers/8e1f0c3ab94d27f6a5c1e08d7b3f4a12.webp"
    }
  ]
}
GET /v1/stickers/packs/{id}

Figurinhas de um pack

flye.stickers.getPack() · flye.stickers.get_pack()

Devolve todas as figurinhas de um pack pelo id.

parâmetros

JS · Pythontipona APIdescrição
id obrigatório string idpath · posição no Python Id do pack, vindo de /search ou /packs.
exemplo

flye.stickers.getPack(params: StickersGetPackParams, options?: RequestOptions): Promise<any>

import Flye from "flyewin";

const flye = new Flye(); // reads FLYE_API_KEY

const data = await flye.stickers.getPack({ id: "<id>" });
console.log(data);

resposta (exemplo)

{
  "pack": {
    "id": "pk_3f9a1c7e2b8d4a60c1e5",
    "name": "Gatos engraçados",
    "author": "Ana",
    "animated": true,
    "count": 30
  },
  "stickers": [
    {
      "id": "8e1f0c3ab94d27f6a5c1e08d7b3f4a12",
      "url": "https://flye.win/media/stickers/8e1f0c3ab94d27f6a5c1e08d7b3f4a12.webp",
      "format": "webp",
      "animated": true
    }
  ]
}

CDN

Hospedagem de imagens com links públicos, organizada por projetos e pastas.

flye.cdn · flye.cdn

Página da API
métodoHTTPdescrição
upload POST /cdn/upload Enviar imagem
listProjectslist_projects GET /cdn/projects Listar projetos
createProjectcreate_project POST /cdn/projects Criar projeto
getProjectget_project GET /cdn/projects/{project} Listar imagens
getImageget_image GET /cdn/images/{id} Detalhes de uma imagem
deleteImagedelete_image DELETE /cdn/images/{id} Apagar imagem
deleteProjectdelete_project DELETE /cdn/projects/{project} Apagar projeto
getUsageget_usage GET /cdn/usage Espaço e limites
POST /v1/cdn/upload

Enviar imagem

flye.cdn.upload() · flye.cdn.upload()

Envia uma imagem em multipart/form-data. O projeto é criado na primeira vez que você o usa. Aceita jpg, jpeg, png, gif, webp, svg, até o limite por arquivo do seu plano. O tipo é conferido pelo conteúdo do arquivo, e SVG com script ou links externos é recusado.

parâmetros

JS · Pythontipona APIdescrição
image obrigatório file imagefile O arquivo. Também aceito com o nome file.
project obrigatório string projectform Nome do projeto: letras, números, - e _, até 48 caracteres. Maiúsculas viram minúsculas.
folder opcional string folderform Pasta dentro do projeto, opcional, com as mesmas regras do nome.
exemplo

flye.cdn.upload(params: CdnUploadParams, options?: RequestOptions): Promise<any>

import { openAsBlob } from "node:fs";
import Flye from "flyewin";

const flye = new Flye(); // reads FLYE_API_KEY

const data = await flye.cdn.upload({
  image: await openAsBlob("photo.jpg"),
  project: "<project>",
});
console.log(data);

resposta (exemplo)

{
  "id": "6f1c2a9e-4b7d-4e1a-9c3f-2d8b7a6e5f40",
  "project": "loja",
  "folder": "produtos",
  "filename": "1743580800000000000.jpg",
  "original_name": "tenis-azul.jpg",
  "url": "https://cdn.flye.win/images/fw_9c41d2e07ab3f5168e2d/produtos/1743580800000000000.jpg",
  "size": 204800,
  "content_type": "image/jpeg",
  "created_at": "2026-11-02T13:30:00Z"
}
GET /v1/cdn/projects

Listar projetos

flye.cdn.listProjects() · flye.cdn.list_projects()

Lista os projetos da sua conta, com quantidade de imagens e espaço usado em cada um.

parâmetros

Sem parâmetros.

exemplo

flye.cdn.listProjects(params?: CdnListProjectsParams, options?: RequestOptions): Promise<any>

import Flye from "flyewin";

const flye = new Flye(); // reads FLYE_API_KEY

const data = await flye.cdn.listProjects();
console.log(data);

resposta (exemplo)

{
  "projects": [
    { "name": "loja", "images": 128, "bytes": 52428800, "created_at": "2026-10-01T12:00:00Z" }
  ]
}
POST /v1/cdn/projects

Criar projeto

flye.cdn.createProject() · flye.cdn.create_project()

Cria um projeto vazio. Opcional: o envio já cria o projeto quando ele não existe.

parâmetros

JS · Pythontipona APIdescrição
name obrigatório string namebody Nome do projeto.
exemplo

flye.cdn.createProject(params: CdnCreateProjectParams, options?: RequestOptions): Promise<any>

import Flye from "flyewin";

const flye = new Flye(); // reads FLYE_API_KEY

const data = await flye.cdn.createProject({ name: "<name>" });
console.log(data);

resposta (exemplo)

{ "name": "loja", "images": 0, "bytes": 0, "created_at": "2026-11-02T13:30:00Z" }
GET /v1/cdn/projects/{project}

Listar imagens

flye.cdn.getProject() · flye.cdn.get_project()

Lista as imagens do projeto, das mais novas para as mais antigas, e as pastas que ele tem.

parâmetros

JS · Pythontipona APIdescrição
project obrigatório string projectpath · posição no Python Nome do projeto.
folder opcional string folderquery Só as imagens desta pasta. Sem ele, todas as imagens do projeto. Use / para só as que estão fora de pastas.
page opcional integer pagequery Página, a partir de 1.
perPageper_page opcional integer per_pagequery Itens por página, de 1 a 100. Padrão 20.
exemplo

flye.cdn.getProject(params: CdnGetProjectParams, options?: RequestOptions): Promise<any>

import Flye from "flyewin";

const flye = new Flye(); // reads FLYE_API_KEY

const data = await flye.cdn.getProject({ project: "<project>" });
console.log(data);

resposta (exemplo)

{
  "project": "loja",
  "folders": [{ "name": "produtos", "images": 96 }],
  "images": [{
    "id": "6f1c2a9e-4b7d-4e1a-9c3f-2d8b7a6e5f40",
    "project": "loja",
    "folder": "produtos",
    "filename": "1743580800000000000.jpg",
    "original_name": "tenis-azul.jpg",
    "url": "https://cdn.flye.win/images/fw_9c41d2e07ab3f5168e2d/produtos/1743580800000000000.jpg",
    "size": 204800,
    "content_type": "image/jpeg",
    "created_at": "2026-11-02T13:30:00Z"
  }],
  "pagination": { "page": 1, "per_page": 20, "total": 96, "total_pages": 5 }
}
GET /v1/cdn/images/{id}

Detalhes de uma imagem

flye.cdn.getImage() · flye.cdn.get_image()

Devolve uma imagem da sua conta pelo id recebido no envio.

parâmetros

JS · Pythontipona APIdescrição
id obrigatório string idpath · posição no Python Id da imagem.
exemplo

flye.cdn.getImage(params: CdnGetImageParams, options?: RequestOptions): Promise<any>

import Flye from "flyewin";

const flye = new Flye(); // reads FLYE_API_KEY

const data = await flye.cdn.getImage({ id: "<id>" });
console.log(data);

resposta (exemplo)

{
  "id": "6f1c2a9e-4b7d-4e1a-9c3f-2d8b7a6e5f40",
  "project": "loja",
  "folder": "produtos",
  "filename": "1743580800000000000.jpg",
  "original_name": "tenis-azul.jpg",
  "url": "https://cdn.flye.win/images/fw_9c41d2e07ab3f5168e2d/produtos/1743580800000000000.jpg",
  "size": 204800,
  "content_type": "image/jpeg",
  "created_at": "2026-11-02T13:30:00Z"
}
DELETE /v1/cdn/images/{id}

Apagar imagem

flye.cdn.deleteImage() · flye.cdn.delete_image()

Apaga a imagem e libera o espaço na hora. O link deixa de funcionar em instantes.

parâmetros

JS · Pythontipona APIdescrição
id obrigatório string idpath · posição no Python Id da imagem.
exemplo

flye.cdn.deleteImage(params: CdnDeleteImageParams, options?: RequestOptions): Promise<any>

import Flye from "flyewin";

const flye = new Flye(); // reads FLYE_API_KEY

const data = await flye.cdn.deleteImage({ id: "<id>" });
console.log(data);

resposta (exemplo)

{ "deleted": true, "id": "6f1c2a9e-4b7d-4e1a-9c3f-2d8b7a6e5f40" }
DELETE /v1/cdn/projects/{project}

Apagar projeto

flye.cdn.deleteProject() · flye.cdn.delete_project()

Apaga o projeto com todas as imagens dele e libera o espaço na hora. Não dá para desfazer.

parâmetros

JS · Pythontipona APIdescrição
project obrigatório string projectpath · posição no Python Nome do projeto.
exemplo

flye.cdn.deleteProject(params: CdnDeleteProjectParams, options?: RequestOptions): Promise<any>

import Flye from "flyewin";

const flye = new Flye(); // reads FLYE_API_KEY

const data = await flye.cdn.deleteProject({ project: "<project>" });
console.log(data);

resposta (exemplo)

{ "deleted": true, "project": "loja", "images": 128 }
GET /v1/cdn/usage

Espaço e limites

flye.cdn.getUsage() · flye.cdn.get_usage()

Mostra o espaço usado, os limites do plano e o maior arquivo aceito. Limite null significa ilimitado.

parâmetros

Sem parâmetros.

exemplo

flye.cdn.getUsage(params?: CdnGetUsageParams, options?: RequestOptions): Promise<any>

import Flye from "flyewin";

const flye = new Flye(); // reads FLYE_API_KEY

const data = await flye.cdn.getUsage();
console.log(data);

resposta (exemplo)

{
  "storage": { "used_bytes": 52428800, "limit_bytes": 5368709120 },
  "max_file_bytes": 20971520,
  "images": 128,
  "projects": { "used": 1, "limit": 5 }
}

Utils

UUIDs, hashes, base64 e inspeção de IP em uma chamada.

flye.utils · flye.utils

Página da API
métodoHTTPdescrição
uuid GET /utils/uuid Gerar UUIDs
hash GET /utils/hash Calcular hash
base64 POST /utils/base64 Codificar / decodificar base64
ip GET /utils/ip IP de origem
GET /v1/utils/uuid

Gerar UUIDs

flye.utils.uuid() · flye.utils.uuid()

Gera de 1 a 100 UUIDs. A versão 7 é ordenável por tempo, boa para chaves primárias.

parâmetros

JS · Pythontipona APIdescrição
count opcional integer countquery Quantidade, de 1 a 100. Padrão 1. Ex.: 2
version opcional integer versionquery 4 (aleatório) ou 7 (ordenado por tempo). Padrão 4. Ex.: 7
exemplo

flye.utils.uuid(params?: UtilsUuidParams, options?: RequestOptions): Promise<any>

import Flye from "flyewin";

const flye = new Flye(); // reads FLYE_API_KEY

const data = await flye.utils.uuid({ count: 2, version: 7 });
console.log(data);

resposta (exemplo)

{
  "version": 7,
  "uuids": [
    "019a3c1e-7b2d-7c41-9f0e-5d8a21c4b6e3",
    "019a3c1e-7b2d-7f88-a1c2-0e93b7d45f12"
  ]
}
GET /v1/utils/hash

Calcular hash

flye.utils.hash() · flye.utils.hash()

Calcula o hash do texto informado e devolve em hex.

parâmetros

JS · Pythontipona APIdescrição
text obrigatório string textquery Texto de entrada (até 64 KB). Ex.: flye
algo opcional string algoquery md5, sha1, sha256 ou sha512. Padrão sha256. Ex.: sha256
exemplo

flye.utils.hash(params: UtilsHashParams, options?: RequestOptions): Promise<any>

import Flye from "flyewin";

const flye = new Flye(); // reads FLYE_API_KEY

const data = await flye.utils.hash({ text: "flye", algo: "sha256" });
console.log(data);

resposta (exemplo)

{
  "algo": "sha256",
  "hex": "9a5c3b4f1f8e0d6c…"
}
POST /v1/utils/base64

Codificar / decodificar base64

flye.utils.base64() · flye.utils.base64()

Converte texto de e para base64 padrão (RFC 4648).

parâmetros

JS · Pythontipona APIdescrição
text obrigatório string textbody Conteúdo a converter.
mode opcional string modebody encode ou decode. Padrão encode.
exemplo

flye.utils.base64(params: UtilsBase64Params, options?: RequestOptions): Promise<any>

import Flye from "flyewin";

const flye = new Flye(); // reads FLYE_API_KEY

const data = await flye.utils.base64({ text: "<text>" });
console.log(data);

resposta (exemplo)

{
  "mode": "encode",
  "result": "aGVsbG8sIHdvcmxk"
}
GET /v1/utils/ip

IP de origem

flye.utils.ip() · flye.utils.ip()

Retorna o IP e o user-agent com que sua requisição chegou à plataforma.

parâmetros

Sem parâmetros.

exemplo

flye.utils.ip(params?: UtilsIpParams, options?: RequestOptions): Promise<any>

import Flye from "flyewin";

const flye = new Flye(); // reads FLYE_API_KEY

const data = await flye.utils.ip();
console.log(data);

resposta (exemplo)

{
  "ip": "203.0.113.24",
  "user_agent": "curl/8.7.1"
}

Tem certeza?