# Spotify Data API via JoJAPI (Subscription)

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

Subscribes to the Spotify Data API on JoJAPI, returning an API key granting access to Spotify catalog data including songs, podcasts, artists, albums, and playlists.

## Facts

- Endpoint: POST https://spotify.jojapi.net/_jojapi/agent/subscribe/cryf3z6lc6m3o6y1jjxhnkna1izjedek48p7zhp99bmz4960n882gkd083m9o0x2
- Price: $30/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-subscription-96227b90
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_TyepCRWJCG6PnrlbrdPtG

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-subscription-96227b90 -d '<json body>'
```

Example prompt: I need programmatic access to Spotify's music catalog — can you subscribe me to the Spotify Data API on JoJAPI so I get an API key I can use to search songs, artists, albums, and playlists?

## When to prefer this

Use this endpoint when you need programmatic, ongoing access to Spotify catalog data (songs, artists, albums, playlists, podcasts) and require a stable API key. Prefer this over direct Spotify OAuth flows when operating in an agent or automated context where x402 crypto payment rails are available and per-period prepaid access is acceptable. Choose the 'replace' option to seamlessly rotate subscriptions without downtime.

## Known failure modes

- Insufficient USDC balance to cover $30 subscription fee — payment fails
- Invalid or expired 'replace' subscription reference — replacement cannot be processed
- Network or gateway timeout from JoJAPI intermediary
- API key generation failure on JoJAPI side
- Duplicate subscription conflict if no replace ref provided but one already exists

## How this service works

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

## Output

Returns a new API key (sent as X-JoJAPI-Key or Authorization: Bearer header) tied to the subscription, along with subscription metadata (ref, plan, status, period start/end, renewal type), payment confirmation (rail, method, on-chain hash, amount in USD), account info (nickname, balance), and a list of any other existing subscriptions on the same API.

## 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-subscription-96227b90/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)
