// 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.
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) erequire(CommonJS), e já vem com os tipos do TypeScript. - —Python: 3.8 ou mais novo. Usa só a biblioteca padrão, sem
requestsnem 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
-
01
Crie uma chave
Em Dashboard → Chaves. Para começar, escolha Teste: ela não precisa de plano e não gasta cota.
-
02
Guarde a chave numa variável de ambiente
O SDK lê
FLYE_API_KEYsozinho. 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_…"
-
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
dictem 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.
| JavaScript | Python | padrão | descrição |
|---|---|---|---|
| apiKey | api_key | FLYE_API_KEY | Sua chave (flye_sk_… ou flye_test_…). Sem ela e sem a variável de ambiente, o cliente nem é criado. |
| baseURL | base_url | https://flye.win/v1 | Endereço da API. Só mude para testes ou um proxy seu. |
| timeout | timeout | 30000 ms · 30.0 s | Tempo máximo de cada requisição: milissegundos em JS, segundos em Python. |
| maxRetries | max_retries | 2 | Quantas vezes repetir uma chamada que falhou por motivo passageiro. 0 desliga. |
| fetch | — | globalThis.fetch | Só 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.
| campo | descrição |
|---|---|
| code | Código do erro, como rate_limited ou invalid_api_key. É o mesmo error.code que a API devolve. |
| status | Status HTTP (401, 429…). Vazio quando a requisição nem chegou à API (rede ou tempo esgotado). |
| message | Explicação em texto, no idioma da conta. |
| body | O corpo da resposta de erro, já convertido de JSON. |
| headers | Os 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.
| code | quando acontece |
|---|---|
| missing_api_key | Nenhuma chave no código nem em FLYE_API_KEY. Acontece ao criar o cliente. |
| missing_param | Faltou um parâmetro que vai no caminho, como o id em getPack. A chamada nem sai. |
| invalid_file | O valor passado num upload não é um arquivo aceito (veja Uploads). |
| timeout | A resposta não chegou dentro do tempo limite. |
| network_error | Sem 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. UmPOST(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é
maxRetriesvezes (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:
BlobouFile,Buffer/Uint8Array/ArrayBuffer, ou{ data, filename, contentType }para dar nome aos bytes. - —Python: arquivo aberto em modo binário, caminho (
strouPath),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
| método | HTTP | descrição |
|---|---|---|
| search | GET /stickers/search | Buscar figurinhas |
| listPackslist_packs | GET /stickers/packs | Listar packs |
| getPackget_pack | GET /stickers/packs/{id} | Figurinhas de um pack |
/v1/stickers/search
Buscar figurinhas
flye.stickers.search() · flye.stickers.search()
Devolve o pack mais relevante para o termo, com os links de cada figurinha. Com rotate=true, cada chamada entrega o próximo pack, ideal para bots não repetirem o mesmo resultado. Um termo nunca buscado pode vir na hora com partial=true, com o que já temos, enquanto a busca completa termina.
parâmetros
| JS · Python | tipo | na API | descrição |
|---|---|---|---|
| q opcional | string | qquery | Termo de busca, de 2 a 80 caracteres. Sem ele, a resposta traz 30 figurinhas em destaque, sorteadas a cada chamada, com trending=true. 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 | Figurinhas por resposta, de 1 a 30. Padrão 30. Ex.: 10 |
| type opcional | string | typequery | all, animated ou static. Padrão all. |
| page opcional | integer | pagequery | Posição do pack no ranking, a partir de 1. Padrão 1. |
| rotate opcional | boolean | rotatequery | true entrega o próximo pack a cada chamada desta conta. Ignora page. |
flye.stickers.search(params?: StickersSearchParams, options?: RequestOptions): Promise<any>
import Flye from "flyewin";
const flye = new Flye(); // reads FLYE_API_KEY
const data = await flye.stickers.search({
q: "gato",
maxWaitMs: 300,
limit: 10,
});
console.log(data);
resposta (exemplo)
{
"query": "gato",
"total_packs": 12,
"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
}
]
}
/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 · Python | tipo | na API | descriçã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. |
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"
}
]
}
/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 · Python | tipo | na API | descrição |
|---|---|---|---|
| id obrigatório | string | idpath · posição no Python | Id do pack, vindo de /search ou /packs. |
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
| método | HTTP | descriçã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 |
/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 · Python | tipo | na API | descriçã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. |
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"
}
/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.
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" }
]
}
/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 · Python | tipo | na API | descrição |
|---|---|---|---|
| name obrigatório | string | namebody | Nome do projeto. |
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" }
/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 · Python | tipo | na API | descriçã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. |
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 }
}
/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 · Python | tipo | na API | descrição |
|---|---|---|---|
| id obrigatório | string | idpath · posição no Python | Id da imagem. |
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"
}
/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 · Python | tipo | na API | descrição |
|---|---|---|---|
| id obrigatório | string | idpath · posição no Python | Id da imagem. |
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" }
/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 · Python | tipo | na API | descrição |
|---|---|---|---|
| project obrigatório | string | projectpath · posição no Python | Nome do projeto. |
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 }
/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.
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
| método | HTTP | descriçã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 |
/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 · Python | tipo | na API | descriçã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 |
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"
]
}
/v1/utils/hash
Calcular hash
flye.utils.hash() · flye.utils.hash()
Calcula o hash do texto informado e devolve em hex.
parâmetros
| JS · Python | tipo | na API | descriçã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 |
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…"
}
/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 · Python | tipo | na API | descrição |
|---|---|---|---|
| text obrigatório | string | textbody | Conteúdo a converter. |
| mode opcional | string | modebody | encode ou decode. Padrão encode. |
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"
}
/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.
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"
}