Español
Español
Appearance
Español
Español
Appearance
Sube tu primer archivo a IPFS en menos de dos minutos.

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.
Envía una solicitud POST a /upload/new con tu contenido. Aquí tienes un ejemplo subiendo un objeto JSON:
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"
}'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:
{
"cid": "bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi",
"sizeMB": 0.001,
"uris": {
"ipfs": "ipfs://bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi",
"url": "https://ipfs.ninja/ipfs/bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi"
}
}Accede a tu archivo de dos formas:
curl https://ipfs.ninja/ipfs/bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdiTIP
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.
curl https://api.ipfs.ninja/file/bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi \
-H "X-Api-Key: bws_your_api_key_here"Respuesta:
{
"cid": "bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi",
"fileName": "NFT metadata",
"fileType": "json",
"sizeMB": 0.001,
"createdAt": 1711036800000,
"uris": {
"ipfs": "ipfs://bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi",
"url": "https://ipfs.ninja/ipfs/bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi"
}
}¿Ya usas S3? Apunta tu AWS SDK existente a https://s3.ipfs.ninja y usa tu clave API como credenciales:
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.
Si prefieres no escribir código, ipfs.ninja/upload acepta arrastrar y soltar para:
/ipfs/{cid}/{subpath} para cada archivo hijo.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.