naftiko: 1.0.0-alpha2 info: label: PodcastIndex.org API — Static Data description: 'PodcastIndex.org API — Static Data. 11 operations. Lead operation: Dead Feeds. Self-contained Naftiko capability covering one Podcastindex business surface.' tags: - Podcastindex - Static Data created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: PODCASTINDEX_API_KEY: PODCASTINDEX_API_KEY capability: consumes: - type: http namespace: podcastindex-static-data baseUri: https://api.podcastindex.org/api/1.0 description: PodcastIndex.org API — Static Data business capability. Self-contained, no shared references. resources: - name: static-public-podcastindex_dead_feeds.csv path: /static/public/podcastindex_dead_feeds.csv operations: - name: podcastindexdeadfeedscsv method: GET description: Dead Feeds outputRawFormat: json outputParameters: - name: result type: object value: $. - name: static-public-podcastindex_feeds.db.tgz path: /static/public/podcastindex_feeds.db.tgz operations: - name: podcastindexfeedsdbtgz method: GET description: Feeds Database outputRawFormat: json outputParameters: - name: result type: object value: $. - name: static-stats-chart-data.json path: /static/stats/chart-data.json operations: - name: chartdatajson method: GET description: v4v Sats outputRawFormat: json outputParameters: - name: result type: object value: $. - name: static-stats-daily_counts.json path: /static/stats/daily_counts.json operations: - name: dailycountsjson method: GET description: Stats Daily Counts outputRawFormat: json outputParameters: - name: result type: object value: $. - name: static-stats-hourly_counts.json path: /static/stats/hourly_counts.json operations: - name: hourlycountsjson method: GET description: Stats Hourly Counts outputRawFormat: json outputParameters: - name: result type: object value: $. - name: static-stats-v4vmusic.json path: /static/stats/v4vmusic.json operations: - name: v4vmusicjson method: GET description: v4v Music Chart JSON outputRawFormat: json outputParameters: - name: result type: object value: $. - name: static-stats-v4vmusic.opml path: /static/stats/v4vmusic.opml operations: - name: v4vmusicopml method: GET description: v4v Music Chart OPML outputRawFormat: json outputParameters: - name: result type: object value: $. - name: static-stats-v4vmusic.rss path: /static/stats/v4vmusic.rss operations: - name: v4vmusicrss method: GET description: v4v Music Chart RSS outputRawFormat: json outputParameters: - name: result type: object value: $. - name: static-tracking-current path: /static/tracking/current operations: - name: current method: GET description: Current outputRawFormat: json outputParameters: - name: result type: object value: $. - name: static-tracking-episodeValueBlocks path: /static/tracking/episodeValueBlocks operations: - name: episodevalueblocksjson method: GET description: Episode Value Blocks outputRawFormat: json outputParameters: - name: result type: object value: $. - name: static-tracking-feedValueBlocks path: /static/tracking/feedValueBlocks operations: - name: feedvalueblocksjson method: GET description: Feed Value Blocks outputRawFormat: json outputParameters: - name: result type: object value: $. authentication: type: apikey key: User-Agent value: '{{env.PODCASTINDEX_API_KEY}}' placement: header exposes: - type: rest namespace: podcastindex-static-data-rest port: 8080 description: REST adapter for PodcastIndex.org API — Static Data. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/static/public/podcastindex-dead-feeds-csv name: static-public-podcastindex-dead-feeds-csv description: REST surface for static-public-podcastindex_dead_feeds.csv. operations: - method: GET name: podcastindexdeadfeedscsv description: Dead Feeds call: podcastindex-static-data.podcastindexdeadfeedscsv outputParameters: - type: object mapping: $. - path: /v1/static/public/podcastindex-feeds-db-tgz name: static-public-podcastindex-feeds-db-tgz description: REST surface for static-public-podcastindex_feeds.db.tgz. operations: - method: GET name: podcastindexfeedsdbtgz description: Feeds Database call: podcastindex-static-data.podcastindexfeedsdbtgz outputParameters: - type: object mapping: $. - path: /v1/static/stats/chart-data-json name: static-stats-chart-data-json description: REST surface for static-stats-chart-data.json. operations: - method: GET name: chartdatajson description: v4v Sats call: podcastindex-static-data.chartdatajson outputParameters: - type: object mapping: $. - path: /v1/static/stats/daily-counts-json name: static-stats-daily-counts-json description: REST surface for static-stats-daily_counts.json. operations: - method: GET name: dailycountsjson description: Stats Daily Counts call: podcastindex-static-data.dailycountsjson outputParameters: - type: object mapping: $. - path: /v1/static/stats/hourly-counts-json name: static-stats-hourly-counts-json description: REST surface for static-stats-hourly_counts.json. operations: - method: GET name: hourlycountsjson description: Stats Hourly Counts call: podcastindex-static-data.hourlycountsjson outputParameters: - type: object mapping: $. - path: /v1/static/stats/v4vmusic-json name: static-stats-v4vmusic-json description: REST surface for static-stats-v4vmusic.json. operations: - method: GET name: v4vmusicjson description: v4v Music Chart JSON call: podcastindex-static-data.v4vmusicjson outputParameters: - type: object mapping: $. - path: /v1/static/stats/v4vmusic-opml name: static-stats-v4vmusic-opml description: REST surface for static-stats-v4vmusic.opml. operations: - method: GET name: v4vmusicopml description: v4v Music Chart OPML call: podcastindex-static-data.v4vmusicopml outputParameters: - type: object mapping: $. - path: /v1/static/stats/v4vmusic-rss name: static-stats-v4vmusic-rss description: REST surface for static-stats-v4vmusic.rss. operations: - method: GET name: v4vmusicrss description: v4v Music Chart RSS call: podcastindex-static-data.v4vmusicrss outputParameters: - type: object mapping: $. - path: /v1/static/tracking/current name: static-tracking-current description: REST surface for static-tracking-current. operations: - method: GET name: current description: Current call: podcastindex-static-data.current outputParameters: - type: object mapping: $. - path: /v1/static/tracking/episodevalueblocks name: static-tracking-episodevalueblocks description: REST surface for static-tracking-episodeValueBlocks. operations: - method: GET name: episodevalueblocksjson description: Episode Value Blocks call: podcastindex-static-data.episodevalueblocksjson outputParameters: - type: object mapping: $. - path: /v1/static/tracking/feedvalueblocks name: static-tracking-feedvalueblocks description: REST surface for static-tracking-feedValueBlocks. operations: - method: GET name: feedvalueblocksjson description: Feed Value Blocks call: podcastindex-static-data.feedvalueblocksjson outputParameters: - type: object mapping: $. - type: mcp namespace: podcastindex-static-data-mcp port: 9090 transport: http description: MCP adapter for PodcastIndex.org API — Static Data. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: dead-feeds description: Dead Feeds hints: readOnly: true destructive: false idempotent: true call: podcastindex-static-data.podcastindexdeadfeedscsv outputParameters: - type: object mapping: $. - name: feeds-database description: Feeds Database hints: readOnly: true destructive: false idempotent: true call: podcastindex-static-data.podcastindexfeedsdbtgz outputParameters: - type: object mapping: $. - name: v4v-sats description: v4v Sats hints: readOnly: true destructive: false idempotent: true call: podcastindex-static-data.chartdatajson outputParameters: - type: object mapping: $. - name: stats-daily-counts description: Stats Daily Counts hints: readOnly: true destructive: false idempotent: true call: podcastindex-static-data.dailycountsjson outputParameters: - type: object mapping: $. - name: stats-hourly-counts description: Stats Hourly Counts hints: readOnly: true destructive: false idempotent: true call: podcastindex-static-data.hourlycountsjson outputParameters: - type: object mapping: $. - name: v4v-music-chart-json description: v4v Music Chart JSON hints: readOnly: true destructive: false idempotent: true call: podcastindex-static-data.v4vmusicjson outputParameters: - type: object mapping: $. - name: v4v-music-chart-opml description: v4v Music Chart OPML hints: readOnly: true destructive: false idempotent: true call: podcastindex-static-data.v4vmusicopml outputParameters: - type: object mapping: $. - name: v4v-music-chart-rss description: v4v Music Chart RSS hints: readOnly: true destructive: false idempotent: true call: podcastindex-static-data.v4vmusicrss outputParameters: - type: object mapping: $. - name: current description: Current hints: readOnly: true destructive: false idempotent: true call: podcastindex-static-data.current outputParameters: - type: object mapping: $. - name: episode-value-blocks description: Episode Value Blocks hints: readOnly: true destructive: false idempotent: true call: podcastindex-static-data.episodevalueblocksjson outputParameters: - type: object mapping: $. - name: feed-value-blocks description: Feed Value Blocks hints: readOnly: true destructive: false idempotent: true call: podcastindex-static-data.feedvalueblocksjson outputParameters: - type: object mapping: $.