# Spotify Data API via JoJAPI

> Spotify Data API via JoJAPI is a paid API for AI agents from spotify.jojapi.net, paid per call via x402, $10/call, status unknown (last checked 2026-09-14).

Subscribe to access Spotify's catalog data — songs, podcasts, artists, albums, and playlists — returning an API key for subsequent data queries.

## Facts

- Endpoint: POST https://spotify.jojapi.net/_jojapi/agent/subscribe/pqqj6vqmq14yklm795ptw4tl99le1k3shce76h1zt4kmdmcl0lao21isozk0gf2y
- Price: $10/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/spotify-data-api-via-jojapi-b3d2e273
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_eorOpeJa4eeYA0JwV_8Ty

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability spotify-data-api-via-jojapi-b3d2e273 -d '<json body>'
```

Example prompt: Subscribe me to the Spotify Data API through JoJAPI so I can start querying track, artist, album, and playlist metadata — I want a fresh API key and don't need to replace any existing subscription.

## When to prefer this

Choose this endpoint when you need programmatic access to Spotify's music and podcast catalog data (tracks, artists, albums, playlists) via a pay-per-period API key model using x402/USDC on-chain payments. Prefer this over direct Spotify API registration when you need crypto-native, agent-friendly payment flows without OAuth app setup.

## Known failure modes

- Payment failure — insufficient USDC balance or x402 payment not accepted
- Invalid 'replace' subscription reference — unknown or already cancelled subscription ref
- Duplicate active subscription conflict — account already has a conflicting active plan
- Network or gateway timeout from JoJAPI proxy
- Spotify upstream API unavailability causing downstream key activation failure

## How this service works

Spotify Data API for Millions of songs & podcasts, artists, albums, playlists and more.

## Output

Returns a new API key bound to the paid subscription, along with subscription metadata (period start/end, plan, status, renewal type), payment confirmation (on-chain transaction hash, amount in USD), account info (nickname, balance), and any other existing subscriptions on the same account.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "replace": {
   "type": "string",
   "description": "Optional: ref of one of your own subscriptions on this API to cancel when the new one starts"
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "status",
  "api_key",
  "subscription"
 ],
 "properties": {
  "auth": {
   "type": "object",
   "properties": {
    "header": {
     "type": "string"
    },
    "alternatives": {
     "type": "array",
     "items": {
      "type": "string"
     }
    }
   }
  },
  "status": {
   "enum": [
    "success"
   ],
   "type": "string"
  },
  "account": {
   "type": "object",
   "properties": {
    "nick": {
     "type": "string"
    },
    "balance_usd": {
     "type": "number"
    }
   }
  },
  "api_key": {
   "type": "string",
   "description": "The new API key, bound to this subscription. Send it as the X-JoJAPI-Key header (or Authorization: Bearer)."
  },
  "payment": {
   "type": "object",
   "properties": {
    "rail": {
     "type": "string"
    },
    "method": {
     "type": "string"
    },
    "reference": {
     "type": "string",
     "description": "On-chain transaction hash or rail reference"
    },
    "amount_usd": {
     "type": "number"
    }
   }
  },
  "existing": {
   "type": "array",
   "items": {
    "type": "object"
   },
   "description": "Other subscriptions of this account on the same API"
  },
  "key_hint": {
   "type": "string",
   "description": "Last characters of the key, for lists"
  },
  "subscription": {
   "type": "object",
   "properties": {
    "ref": {
     "type": "string",
     "description": "Subscription reference (use it in /keys/rotate)"
    },
    "plan": {
     "type": "object"
    },
    "status": {
     "type": "string"
    },
    "renewal": {
     "type": "string",
     "description": "prepaid: no automatic charge, a 402 renewal offer comes when the period ends"
    },
    "period_end": {
     "type": "string",
     "format": "date-time"
    },
    "period_start": {
     "type": "string",
     "format": "date-time"
    }
   }
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/spotify-data-api-via-jojapi-b3d2e273/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from spotify.jojapi.net](https://www.zero.xyz/host/spotify.jojapi.net/llms.txt)
