Skip to content

Início Rápido

Carrega o teu primeiro ficheiro para o IPFS em menos de dois minutos.

Upload page with drag-and-drop file upload

1. Obtém a tua chave de API

Regista-te em ipfs.ninja com a tua conta Google. Uma chave de API predefinida é criada automaticamente. Vai à tua página de Perfil para veres e giras as tuas chaves de API.

WARNING

Nota: As chaves de API não expiram. Podes criar várias chaves e revogá-las individualmente na tua página de Perfil.

2. Carrega um ficheiro

Envia um pedido POST para /upload/new com o teu conteúdo. Aqui tens um exemplo de carregamento de um objeto JSON:

curl

bash
curl -X POST https://api.ipfs.ninja/upload/new \
  -H "X-Api-Key: bws_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "content": {
      "name": "My NFT",
      "description": "A permanent file on IPFS",
      "image": "ipfs://bafybeiExampleCID..."
    },
    "description": "NFT metadata"
  }'

JavaScript

javascript
const response = await fetch("https://api.ipfs.ninja/upload/new", {
  method: "POST",
  headers: {
    "X-Api-Key": "bws_your_api_key_here",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    content: {
      name: "My NFT",
      description: "A permanent file on IPFS",
      image: "ipfs://bafybeiExampleCID..."
    },
    description: "NFT metadata"
  })
});

const data = await response.json();
console.log(data.cid);       // "bafybeigdyrzt5..."
console.log(data.uris.url);  // "https://ipfs.ninja/ipfs/bafybeigdyrzt5..."

CIDv1 por predefinição

Os novos carregamentos produzem CIDv1 moderno (bafk… para conteúdo pequeno de bloco único, bafy… para ficheiros e diretórios maiores) segundo o IPIP-0499. Os CIDs legados Qm… de carregamentos anteriores continuam a resolver em qualquer lugar — ambos os formatos funcionam como entrada em todos os endpoints.

A API devolve o CID, o tamanho do ficheiro e os URIs de acesso:

json
{
  "cid": "bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi",
  "sizeMB": 0.001,
  "uris": {
    "ipfs": "ipfs://bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi",
    "url": "https://ipfs.ninja/ipfs/bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi"
  }
}

3. Obtém o teu ficheiro

Acede ao teu ficheiro de duas formas:

Via gateway IPFS (sem autenticação necessária)

bash
curl https://ipfs.ninja/ipfs/bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi

TIP

O gateway apex https://ipfs.ninja/ipfs/<CID> serve CIDs carregados ou fixados por qualquer utilizador do IPFS Ninja. Os CIDs desconhecidos da plataforma devolvem HTTP 410 Gone — para esses, usa um gateway público (ipfs.io, dweb.link) ou faz primeiro POST /pin do CID para a tua conta.

Via API (devolve metadados do ficheiro)

bash
curl https://api.ipfs.ninja/file/bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi \
  -H "X-Api-Key: bws_your_api_key_here"

Resposta:

json
{
  "cid": "bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi",
  "fileName": "NFT metadata",
  "fileType": "json",
  "sizeMB": 0.001,
  "createdAt": 1711036800000,
  "uris": {
    "ipfs": "ipfs://bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi",
    "url": "https://ipfs.ninja/ipfs/bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi"
  }
}

Alternativa: usar o AWS SDK (compatível com S3)

Já usas S3? Aponta o teu AWS SDK existente para https://s3.ipfs.ninja e usa a tua chave de API como credenciais:

javascript
import { S3Client, PutObjectCommand } from "@aws-sdk/client-s3";

const s3 = new S3Client({
  endpoint: "https://s3.ipfs.ninja",
  credentials: { accessKeyId: "bws_prefix", secretAccessKey: "bws_fullkey" },
  region: "us-east-1",
  forcePathStyle: true
});

await s3.send(new PutObjectCommand({
  Bucket: "my-project",
  Key: "my-file.json",
  Body: JSON.stringify({ hello: "IPFS" })
}));

Consulta Compatibilidade S3 para a documentação completa com exemplos em Python, Go e guias de migração.

Preferes clicar? Usa o Painel

Se preferires não escrever código, ipfs.ninja/upload aceita arrastar e largar para:

  • Qualquer ficheiro — larga-o na zona de carregamento, fica fixado e recebes o CID
  • Uma pasta — agrupada num diretório UnixFS no teu browser, carregada como uma única importação, resolve em /ipfs/{cid}/{subpath} para cada ficheiro filho
  • Um arquivo .car — deteção automática, CID raiz preservado exatamente (ver Importação CAR)

Depois de carregados, os ficheiros aparecem na página Ficheiros, onde podes mudar o nome, mover entre pastas, obter um CID de diretório IPFS para uma pasta inteira (instantâneo), e configurar CORS S3 por bucket para acesso via SDK no browser.

Próximos passos