ItsThisForThat API
Free API that returns a random 'it is X for Y' startup pitch as JSON. No key needed. Includes the content-type gotcha and a real captured response.
Endpoint tested and returned HTTP 200 on 2026-08-21
What is the ItsThisForThat API?
ItsThisForThat generates random startup pitches in the classic 'it is X for Y' format. `GET https://itsthisforthat.com/api.php?json` returns `{"this": "...", "that": "..."}` with no API key required.
Every pitch deck ever written contains the phrase 'it is Uber for something'. This API automates the joke, pairing a random technology with a random industry and returning both halves separately so you can format the sentence however you like. Keeping `this` and `that` as separate fields rather than one pre-joined string is a small design decision that makes the API genuinely reusable.
There is one trap worth knowing. The response is valid JSON but is served as `text/javascript`, a leftover from the days when this endpoint was consumed via JSONP. Strict HTTP clients that switch parsers on the content type will hand you a string instead of an object, so parse the body explicitly rather than relying on automatic detection. The endpoint also sends no CORS header, so browser calls need a proxy.
Quick facts
- Base URL
https://itsthisforthat.com- Authentication
- No key required. The query string flag, not a header, selects the output format.
- Rate limit
- Not published. It is a tiny hobby endpoint, so cache anything you fetch.
- Pricing
- Free.
- CORS
- Not enabled — call it from your server
- Official docs
- Read the docs
How to use the ItsThisForThat API
Every request below was executed against the live API on 2026-08-21, and the response shown is the real body it returned — not an illustration.
1. Fetch a random pitch as JSON
GET https://itsthisforthat.com/api.php?json
curl 'https://itsthisforthat.com/api.php?json'const res = await fetch("https://itsthisforthat.com/api.php?json");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://itsthisforthat.com/api.php?json", timeout=20)
res.raise_for_status()
print(res.json()){
"this": "Tesseract OCR engine",
"that": "Fast Casual Restaurants"
}Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
json | flag | Optional | Valueless flag that switches the response to JSON. Without it you get plain text. json |
text | flag | Optional | Valueless flag that returns a plain-text sentence instead of the two fields. text |
Response fields
thisstring- The technology or product half of the pitch, for example `Tesseract OCR engine`.
thatstring- The market or industry half, for example `Fast Casual Restaurants`. Join the two yourself: the API never returns a formed sentence in JSON mode.
What you can build with the ItsThisForThat API
- Generate joke content for a slide, newsletter or conference talk
- Seed a brainstorming exercise with deliberately absurd product framings
- Fill a placeholder card component with varying text lengths during layout testing
- Build a Slack or Discord slash command that produces a pitch on demand
- Demonstrate parsing JSON that arrives with a misleading content type
Common errors and how to fix them
Parsed as a string, not an object
The response is served as `text/javascript`, so some clients skip JSON parsing.
Fix: Call your JSON parser explicitly on the response body instead of relying on content-type sniffing.
CORS error in the browser
No `Access-Control-Allow-Origin` header is sent.
Fix: Fetch it from your own server and forward the result.
Plain text when you expected JSON
The `json` flag was dropped, often by a URL builder that strips valueless query parameters.
Fix: Ensure the literal `?json` survives; some HTTP clients need it passed as `json=` instead.
ItsThisForThat API — frequently asked questions
Is the ItsThisForThat API free?
Yes, with no key or signup. It is a long-running hobby project, so treat its availability as best-effort.
Why does it return text/javascript?
The endpoint predates widespread CORS support and was designed for JSONP. The body is valid JSON; only the declared content type is legacy.
Can I get a full sentence instead of two fields?
Yes, use `?text` instead of `?json`. That returns a formed sentence as plain text, which is easier if you are piping it into a chat bot.
Is the output ever offensive?
The word lists are mild and product-focused, but they are randomly paired, so review the output before putting it in front of a client.
Tools that pair with this API
Random Text Generator
Generate random strings with custom length and character sets, or random words from a built-in list. Great for test data, IDs and placeholders.
Random Word Generator
Generate random English words filtered by part of speech, length and starting letter. Draw unique words or allow repeats, then copy or download the list.
JSON Formatter
Format, beautify and minify JSON online with 2-space, 4-space or tab indentation. Sort keys alphabetically and catch syntax errors instantly — free and private.
ItsThisForThat is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-21; always check the official documentation before relying on this API in production, as terms and limits can change.