Skip to content

クイックスタート

2分以内に最初のファイルを IPFS にアップロードしましょう。

Upload page with drag-and-drop file upload

1. API キーを取得する

Google アカウントで ipfs.ninja にサインアップしてください。デフォルトの API キーが自動的に作成されます。プロフィールページで API キーの表示と管理ができます。

WARNING

注意: API キーには有効期限がありません。複数のキーを作成し、プロフィールページから個別に取り消すことができます。

2. ファイルをアップロードする

/upload/newPOST リクエストを送信し、コンテンツを含めます。以下は 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

新規アップロードは、IPIP-0499 に準拠したモダンな CIDv1(小さな単一ブロックのコンテンツには bafk…、より大きなファイルやディレクトリには bafy…)を生成します。以前のアップロードによるレガシーな Qm… CID も引き続きどこでも解決可能で、どちらの形式もすべてのエンドポイントへの入力として使用できます。

API は CID、ファイルサイズ、アクセス URI を返します:

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

3. ファイルを取得する

2つの方法でファイルにアクセスできます:

IPFS ゲートウェイ経由(認証不要)

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

TIP

apex ゲートウェイ https://ipfs.ninja/ipfs/<CID> は、IPFS Ninja のいずれかのユーザーによってアップロードまたはピン留めされた CID を配信します。プラットフォームにとって未知の CID は HTTP 410 Gone を返します — その場合は公開ゲートウェイ(ipfs.iodweb.link)を使用するか、まず CID を自分のアカウントに POST /pin してください。

API 経由(ファイルメタデータを返します)

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

レスポンス:

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

代替方法:AWS SDK を使う(S3 互換)

すでに S3 を使っていますか?既存の AWS SDK のエンドポイントを https://s3.ipfs.ninja に向け、API キーを認証情報として使用してください:

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" })
}));

Python、Go、移行例を含む完全なドキュメントは S3 Compatibility を参照してください。

クリック操作がお好みなら、ダッシュボードを使いましょう

コードを書きたくない場合は、ipfs.ninja/upload でドラッグ&ドロップにより以下を扱えます:

  • 任意のファイル — アップロードゾーンにドロップするだけでピン留めされ、CID が取得できます
  • フォルダ — ブラウザ内で UnixFS ディレクトリにまとめられ、単一のインポートとしてアップロードされます。各子ファイルは /ipfs/{cid}/{subpath} で解決されます
  • .car アーカイブ — 自動検出され、ルート CID がそのまま保持されます(詳細は CAR Import を参照)

アップロード後、ファイルは Files ページに表示され、そこで名前の変更フォルダ間の移動、フォルダ全体のIPFS ディレクトリ CID の取得(スナップショット)、ブラウザ SDK アクセス用のバケットごとの S3 CORS 設定ができます。

次のステップ

  • API リファレンス — すべてのエンドポイント、パラメータ、エラーコードの完全なドキュメント。
  • S3 Compatibility — AWS SDK を使って IPFS Ninja とやり取りする方法。
  • 専用ゲートウェイ — 自分のファイルのみを配信するプライベートゲートウェイを取得。