Skip to content

Inicio Rápido

Sube tu primer archivo a IPFS en menos de dos minutos.

Upload page with drag-and-drop file upload

1. Obtén tu clave API

Regístrate en ipfs.ninja con tu cuenta de Google. Se crea automáticamente una clave API por defecto. Ve a tu página de Perfil para ver y gestionar tus claves API.

WARNING

Nota: Las claves API no expiran. Puedes crear múltiples claves y revocarlas individualmente desde tu página de Perfil.

2. Sube un archivo

Envía una solicitud POST a /upload/new con tu contenido. Aquí tienes un ejemplo subiendo un 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 defecto

Las nuevas subidas producen CIDv1 moderno (bafk… para contenido pequeño de un solo bloque, bafy… para archivos y directorios más grandes) según IPIP-0499. Los CIDs Qm… heredados de subidas anteriores siguen resolviendo en todas partes — ambos formatos funcionan como entrada en todos los endpoints.

La API devuelve el CID, el tamaño del archivo y las URIs de acceso:

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

3. Recupera tu archivo

Accede a tu archivo de dos formas:

A través del gateway IPFS (sin autenticación necesaria)

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

TIP

El gateway apex https://ipfs.ninja/ipfs/<CID> sirve CIDs subidos o fijados por cualquier usuario de IPFS Ninja. Los CIDs desconocidos para la plataforma devuelven HTTP 410 Gone — para esos, usa un gateway público (ipfs.io, dweb.link) o haz primero POST /pin del CID a tu cuenta.

A través de la API (devuelve metadatos del archivo)

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

Respuesta:

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

Alternativa: usa el AWS SDK (compatible con S3)

¿Ya usas S3? Apunta tu AWS SDK existente a https://s3.ipfs.ninja y usa tu clave API como credenciales:

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 Compatibilidad con S3 para la documentación completa con ejemplos en Python, Go y guías de migración.

¿Prefieres hacer clic? Usa el Dashboard

Si prefieres no escribir código, ipfs.ninja/upload acepta arrastrar y soltar para:

  • Cualquier archivo — suéltalo en la zona de subida, se fija y obtienes el CID
  • Una carpeta — se empaqueta en un directorio UnixFS en tu navegador, se sube como una única importación y resuelve en /ipfs/{cid}/{subpath} para cada archivo hijo
  • Un archivo .car — se detecta automáticamente, el CID raíz se conserva exactamente (consulta Importación CAR)

Una vez subidos, los archivos aparecen en la página Files, donde puedes renombrarlos, moverlos entre carpetas, obtener un CID de directorio IPFS para toda una carpeta (instantánea), y configurar S3 CORS por bucket para el acceso desde SDKs de navegador.

Próximos pasos