
- Field notes
- Agent payments
200 OK, nothing inside
TL;DR
- We asked for 40 facts about 10 people, paying a few cents per answer. 37 came back. 3 are blank, on purpose
- Three requests went wrong in three different ways. Only one of them looked like an error
- The lessons are simple. "OK" doesn't mean you got what you asked for. Paying and receiving are two different things. An honest blank beats a confident guess
Of the three requests that went wrong, one said "OK".
The question
Gecko sits between an AI agent and the services that sell data. Normally your agent asks Gecko a question in plain words, and Gecko works out which services can answer it, pays them a few cents per request, and hands the answers back with a note on where each one came from.
Last week we skipped the agent and asked Gecko ourselves, so we could watch every step. The question was about 10 people: where they work now, their job title, the one-line description on their profile, and where they worked before. That's 4 facts each, 40 in total.
Gecko got 37 of the 40. Three times something went wrong along the way, and each time it went wrong differently.
First, one thing you need to know to follow along. When a program asks a data service for something, the reply starts with a short code before the actual answer. 200 means "OK, here you go". 402 means "payment required". Most software reads that code and trusts it.
"OK", and the box was empty
What should have happened. Gecko asks the first service, which is good at people's profiles, for one person's company and job title, pays 4 cents, and gets both back.
What actually happened. The service answered "OK" and took the 4 cents. Its answer was a full profile, except the two things we asked for were blank.
code: 200 (OK)
paid: 4 cents
answer: a full profile, with the two things we asked for left blankWhy it went wrong. We don't know exactly why the service had this person's profile but not those two details. What matters is that it still said "OK". The code only tells you that a reply arrived. It says nothing about whether the reply contains what you asked for.
Think of a courier who marks the parcel as delivered, and you open the box to find it empty. Most software stops at the code, sees "OK" and moves on. An AI agent would do the same, then carry on with a blank or, worse, fill the gap with a guess.
Gecko opened the box. It checked whether the two facts were actually there, saw they weren't, and asked a second service, which had them. Its note on the answer reads like this:
current company: the first service had nothing readable,
so this came from the second serviceThe payment didn't go through
What should have happened. For another person, Gecko pays the first service 4 cents and gets the profile.
What actually happened. The payment was turned down before any data came back. Nothing was charged, and nothing was delivered.
code: 402 (payment required)
reason: "No matching payment requirements"
paid: 0 centsWhy it went wrong. These services charge per request, so the program pays as it asks. The service didn't accept the payment we offered, most likely because its price or terms had changed between the moment Gecko got a quote and the moment it asked. It's the card being declined at checkout.
At that moment Gecko couldn't be sure whether money had left the wallet, and its note said exactly that: "It may have been charged." Checking the payment record afterwards settled it. Nothing was taken.
So Gecko asked the second service for that person, and got three of the four facts. For the fourth, where they worked before, it tried a third service. That one replied, but the information wasn't in its answer. Gecko left the fact blank and wrote down why, instead of grabbing something nearby that looked close enough.

Paid, and nothing arrived
What should have happened. For a third person, Gecko pays 4 cents and the profile comes back.
What actually happened. The payment went through. The answer never came.
code: none (the line went quiet)
paid: 4 cents
answer: nothingWhy it went wrong. On these services you pay first and the answer follows. This time the service took too long to reply, and the connection gave up waiting. That's called a timeout, and it means there wasn't even a code to read. It's paying for a taxi that never shows up. Four cents, and as far as we know, no way to get them back.
The amount doesn't matter. What it shows does. Paying and receiving are two separate events, and one can happen without the other. If a program only remembers "I asked", it can't tell you which of the two happened.
How the run ended
40 facts asked for
30 came from the first service, first try
7 came from a backup, after the first service failed
3 left blank, each with a note saying why
67 cents paid to the data servicesTwo honest limits sit next to those numbers. This was the first time Gecko asked about these people, so there was no earlier answer to compare the new ones against. And each of the 37 facts comes from one service. Nobody double-checked it against a second source yet.
The price was agreed up front: at most $1.60, which assumes every service gets asked for every fact, including Gecko's ten-cent fee. The services took 67 cents of it. The rest comes back as credit for the next run.
What we took from it
"OK" means a reply arrived. It doesn't mean the thing you asked for is inside it. Look inside before you count it as done.
Keep track of paying and of receiving as two separate things. A request you paid for that returned nothing and one you never paid for need very different follow-ups.
When nobody has the answer, leave it blank and say why. Three honest blanks out of 40 are worth more than three confident guesses with nothing behind them.
None of this is clever. It's careful bookkeeping, done for every fact, every time. That's what Gecko hands back to your agent: each fact with the service it came from and a note on what happened along the way.
Sources
- Gecko live run, 16 Oct 2026. Service names and personal data removed
- x402, the protocol that lets software pay per request