# The prompts — exactly what was typed, and a version you can reuse

**What this is.** On 2026-10-01 two APIs were built, deployed and listed on RapidAPI in one
Claude Code session. The human typed 22 messages, 296 words, no code (the record:
`prompts_20261001.json`, extracted from the session transcript by `session_prompts.py`). The
first list below is those messages, trimmed only where a message was a pasted screen. The second
is the same steps written as prompts for any coding agent — Claude Code, Codex, Gemini CLI,
Cursor — with the things the agent cannot do for you marked **YOU**.

## Part 1 — the prompts as typed (Thailand time)

| # | Time | The message | What came back |
|---|---|---|---|
| 1 | 09:50 | `<YouTube link> Build an API for rapidapi.com Research what would be the best bet.` | a research report: what the hub rewards, the 25% fee, payout timing, what we already had measured; the bet: Thai speech-to-text |
| 2 | 10:24 | `I've signed into both. Go ahead.` *(RapidAPI and Modal)* | code, a local test, a CPU deploy for a smoke test |
| 3 | 12:10 | `I added a payment method` *(Modal needs one for a GPU)* | the GPU deploy, the measurements, the listing text |
| 4 | 12:41 | `<the Modal URL>` + the pasted confirmation `Created a new secret 'rapidapi-proxy'…` + `How can I get to the md you mention for me to read?` | the listing text rendered as a page. (The secret's value was the placeholder `<value>`, typed as the instruction showed it.) |
| 5–6 | 12:44 | `What do I select in rapidapi: Import data from / Do not import / OpenAPI / Postman Collection / GraphQL Schema / Kafka` · `Should I upload a file? or drop a file to upload. (JSON, X-YAML, YAML)` | "OpenAPI"; upload `openapi.json` |
| 7–8 | 12:48 | `<the Modal URL>` · `Document it and check the code and documentation into the watdonchan repo.` | README, commit, push, a branch to merge |
| 9–10 | 12:58 | `I don't understand how to get the host you want.` · *(pasted the hub's curl snippet)* | where the hub shows the host; the first call through RapidAPI, refused because of the placeholder |
| 11 | 13:11 | *(pasted Modal's confirmation again, after copying the real secret)* | redeploy; a clip and a 15-minute talk through the hub; verified |
| 12 | 13:46 | `<krueng.ai/disaster_lab.html> Can you make this into a disaster warning API for Thailand?` | a source survey (what is live, what may be sold), then the second API |
| 13–14 | 13:57 | `(…\live_data.py)` · `That may help` | the file's useful parts adopted, its non-commercial source replaced |
| 15–16 | 14:19 | `There is no import json option in the Add New API form.` · `If you're looking at the actual form... just fill it out for me.` | the listing filled in the browser: name, description, category, spec, plans, health check |
| 17–18 | 17:24 | `What kind of key type should the modal secret be?` · `done` | "Custom"; redeploy, verified through the hub |
| 19 | 17:29 | `Can you turn this into a flask app and run it on the spark with tailscale funnel?` | a Flask face, a container on the home GPU box, a public path |
| 20 | 17:39 | `<a URL with a typo> No such url. {"detail":"could not convert string to float: '99.004/'"}` | friendlier errors on both instances |
| 21 | 17:47 | `Make an html page that uses the api. Make a button for each endpoint and add lat,lon fields and a drop down of locations of major cities in Thailand to prepopulate the lat/lon fields.` | the page |
| 22 | 17:53 | `Can you add a map endpoint with points of interest and areas indicated on the map?` | `/map` (GeoJSON) and a map on the page |

The numbers are the ones `api_day_report.py` prints. Messages 2, 3, 4, 11 and 17–18 are the
human's own actions: two accounts, a card, and the secrets.

## Part 2 — the same steps, as prompts for any coding agent

Copy one at a time. Replace the parts in `<angle brackets>`. Where it says **YOU**, the agent
cannot do it: an account, a card, a secret, a payout account, the switch that publishes.

**1. Research before building.**
```
Research what API I should build to sell on rapidapi.com. Use the hub's own listings as the
evidence: for each candidate, what comparable listings exist, how many subscribers they show,
and what they charge. Include the marketplace fee, how and when providers are paid, and
hosting options with their costs. I already have: <what you have measured, built, or know>.
Rank the candidates, say what each would earn realistically (not what videos claim), and
recommend one. Write it up as a single HTML page with the numbers and their sources.
```

**2. YOU: sign in to RapidAPI (as a provider) and to a host (Modal, or any server you control).**
Tell the agent when it is done: `I've signed in to both. Go ahead.`

**3. Build and test locally.**
```
Build the <chosen> API as a small Python service with a /health endpoint and a test client.
Use only sources and models whose licences allow commercial use, and name the licence of each
in the README. Run it locally and show me the test client's output before deploying.
```

**4. Deploy, then measure.**
```
Deploy it to Modal (CPU unless it really needs a GPU; scale to zero). Then measure, with the
test client, what one real request costs in seconds and dollars, and put the measured numbers
in the README with the command that produced them.
```
If the deploy says a payment method is needed: **YOU** add one, then say `I added a payment method.`

**5. The listing.**
```
Write the RapidAPI listing: short and long description, plans priced from the measured cost
(a free plan, two paid), tags, and an openapi.json I can upload. Then give me the dashboard
steps one at a time; when a step needs the browser, do it, and stop before anything that
publishes, pays, or copies a secret.
```

**6. YOU: the proxy secret.** In the RapidAPI dashboard, Gateway tab → Firewall Settings →
Copy the X-RapidAPI-Proxy-Secret. Paste it into a secret on the host (Modal: Secrets → Custom,
key `RAPIDAPI_PROXY_SECRET`). Paste the copied string itself: on the day, the instruction
showed `<value>` as a stand-in and that is what got typed. Then: `done`. The agent redeploys
and tests through the hub.

**7. Verify as a subscriber.**
```
Call the API through RapidAPI with my key, the way a subscriber would, and show me the
answer. Then record in the README what was verified and when.
```

**8. YOU: publish, and link a payout account.** The visibility switch is yours. So is the PayPal
account: RapidAPI's docs say "If you do not add a PayPal address to your account, there is
unfortunately no way for us to send you money!" After that, do nothing for 30 days except read
the hub's numbers.

**9. Document it.**
```
Put the code, the README, the listing text and the research in the repository, on a branch,
and push. Write the README so that someone else could repeat every step, including the ones I
had to do myself.
```

## What one day cost, and what it did not do
Modal's own billing report for the day says 63 cents, for building, testing and measuring both
APIs. The day did not earn anything. On the evening of listing, each API had one subscriber: the
owner's own test subscription. The research's estimate for a language-specific tool is 100–200
mostly free subscribers in a year and $50–150 a month: an estimate, not a result. The videos that
promise thousands show no listing's numbers. The hub does, on every listing's page.
