Tank Talks developer resources
Tank Talks by Ripple Ventures provides a read-only public interface for its show identity and 41 published podcast episodes. The catalogue includes long-form founder, investor, and operator interviews plus The Rundown, a recurring current-events series with Matt Cohen and John Ruffolo.
Quick start
No authentication is required. Request the show profile for canonical identity and listening destinations, or request the episode collection for newest-first public metadata.
curl 'https://tanktalks.fm/api/v1/episodes?series=tank-talks&limit=10'
Machine-readable resources
- OpenAPI 3.1 specification
- Agent instructions and when-to-use guidance
- Compact LLM index
- Full LLM context
- XML sitemap
Typed API contract
The API is unauthenticated, GET-only, and versioned under /api/v1. Every OpenAPI operation has a unique operation ID, a description, typed parameters, typed response schemas, and documented errors. Episode pagination accepts a zero-based integer cursor, a limit from 1 to 100, and an optional series filter of tank-talks or the-rundown.
Tank Talks does not expose a GraphQL endpoint. Agents and developers should use the REST operations documented in the OpenAPI specification.
Content boundary
The interface returns published public show and episode metadata only. It intentionally excludes transcripts, unpublished drafts, private provenance, credentials, audience data, and administrative operations. Agents should cite the canonical episode URL returned by the API and must not invent quotations or timestamps.
Rate limits
Tank Talks enforces 60 requests per 60 seconds per client on /api/v1, on negotiated Markdown under /api/markdown, and on this page. Those three surfaces share one counter rather than a budget each: they are a single limiter namespace, so a request to any of them draws down the same per-client allowance. Each active server instance counts its own window, so concurrent instances can together admit more than that figure before any one of them refuses a request. A request whose client IP cannot be derived from the platform forwarding headers is refused with HTTP 429 in production. Prerendered files, including /sitemap.xml, /llms.txt, /llms-full.txt, /agent-instructions.md, /openapi.json, and /robots.txt, are served as static output and are not counted. Inspect the RateLimit-Policy and RateLimit headers on every API response and on every 429. HTTP 429 responses include Retry-After; wait for that delay before retrying. Compatibility headers are documented in OpenAPI. Provider abuse controls can refuse a request before the application runs. Their error body and headers can differ from this application contract; clients should handle HTTP 429 even when application rate-limit headers are absent.
Markdown representation
This URL supports HTTP content negotiation. Send Accept: text/markdown for a clean Markdown representation. Negotiated Markdown responses carry Vary: Accept, Accept-Encoding, and so does this page. The framework drops Accept from prerendered HTML page responses, so those HTML responses use Cache-Control: private, no-store to prevent shared caches from reusing HTML for a Markdown request. Pages remain generated at build time; Markdown and immutable assets keep their own cache policies. Explicit .md paths, such as /privacy.md, and the /api/markdown/ prefix return Markdown regardless of the Accept header. The site does not claim strict HTML Vary: Accept compliance.
Source Markdown
# Tank Talks developer resources
> A read-only public interface for Tank Talks show identity and 41 published podcast episodes. Tank Talks is published by Ripple Ventures and includes long-form guest interviews plus The Rundown current-events series.
## Quick start
No authentication is required. Fetch the canonical show profile:
```sh
curl --header 'Accept: application/json' https://tanktalks.fm/api/v1/show
```
List the latest Tank Talks guest interviews:
```sh
curl 'https://tanktalks.fm/api/v1/episodes?series=tank-talks&limit=10'
```
List The Rundown:
```sh
curl 'https://tanktalks.fm/api/v1/episodes?series=the-rundown&limit=10'
```
List the available series:
```sh
curl 'https://tanktalks.fm/api/v1/series'
```
## Resources
- [OpenAPI 3.1 specification](https://tanktalks.fm/openapi.json)
- [Agent instructions](https://tanktalks.fm/agent-instructions.md)
- [Compact LLM index](https://tanktalks.fm/llms.txt)
- [Full LLM context](https://tanktalks.fm/llms-full.txt)
- [XML sitemap](https://tanktalks.fm/sitemap.xml)
## API contract
The API is unauthenticated, GET-only, and versioned under `/api/v1`. Every operation has a unique `operationId`, typed parameters, typed response schemas, and documented errors in the OpenAPI file. Episode collection pagination uses a zero-based integer `cursor`, a `limit` from 1 to 100, and an optional `series` value of `tank-talks` or `the-rundown`.
The public metadata intentionally excludes transcripts, unpublished drafts, private source provenance, credentials, audience data, and administrative operations. Media links point only to already-published public episode assets and official platforms.
Tank Talks does not expose a GraphQL endpoint. Use the REST operations documented in the OpenAPI specification.
## Rate limits and errors
Tank Talks enforces 60 requests per 60 seconds per client on `/api/v1`, on negotiated Markdown under `/api/markdown`, and on `/developers`. Those three surfaces share one counter rather than a budget each: they are a single limiter namespace, so a request to any of them draws down the same per-client allowance. Each active server instance counts its own window, so concurrent instances can together admit more than that figure before any one of them refuses a request. A request whose client IP cannot be derived from the platform forwarding headers is refused with HTTP 429 in production. Prerendered files, including `/sitemap.xml`, `/llms.txt`, `/llms-full.txt`, `/agent-instructions.md`, `/openapi.json`, and `/robots.txt`, are served as static output and are not counted. Read `RateLimit-Policy` and `RateLimit` on every API response and on every 429. Compatibility headers `RateLimit-Limit`, `RateLimit-Remaining`, and `RateLimit-Reset` are also returned. A throttled API request returns HTTP 429, an `application/problem+json` body, and `Retry-After`; clients must wait that many seconds before retrying. Invalid collection parameters return HTTP 400 with the invalid field named in the problem response. Provider abuse controls can refuse a request before the application runs. Their error body and headers can differ from this application contract; clients should handle HTTP 429 even when application rate-limit headers are absent.
## Markdown representation
Every content route answers on one URL in two representations. Send `Accept: text/markdown` for the Markdown form and `Accept: text/html` for the page; this document is the Markdown form of `/developers`.
Negotiated Markdown responses carry `Vary: Accept, Accept-Encoding`, and so does this page. The framework drops the `Accept` dimension from prerendered HTML page responses, so those HTML responses use `Cache-Control: private, no-store` to prevent shared caches from reusing HTML for a Markdown request. The pages remain prerendered at build time; Markdown and immutable assets keep their own cache policies.
For an explicit Markdown URL, request the `.md` path, such as `/privacy.md`, or the `/api/markdown/` prefix. Both return Markdown unconditionally, whatever the `Accept` header says. HTML still lacks `Vary: Accept`, so the site does not claim strict negotiation-header compliance.
## Function calling
Use `getShow` when an agent needs the canonical show identity or listening destinations. Use `listEpisodes` to enumerate the catalogue, `getEpisodeBySlug` for one exact episode, and `listSeries` to distinguish Tank Talks interviews from The Rundown. Cite the canonical episode `url` returned by the API, and never fabricate quotations or timestamps when no transcript is available.