getmeme
Beta

getmeme is running and in use, and it has not launched publicly yet. Keys are issued on request while that is true. If you try it and something is wrong, missing or confusing, getmeme@warmhop.com reaches a person who wants to hear it. There is no uptime guarantee and no SLA yet: keep the static line you were going to show anyway.

written for this page, in a moment

Good evening, United States. You found the robot before it was finished.

Read the docs
i How did it know that?

Your connection tells our edge two things: a two-letter country code and a timezone. We read those two and ignore the rest. No cookie, no script following you, nothing written down about you. If the link you followed carried campaign tags, that campaign's count for the day goes up by one, and the count has no you in it.

Here is the part worth stealing. The model was never told where you are. It was asked for a line with a {place} token in it, and the word United States was put in afterwards, by us, after the model had gone home. Your country is not in anyone's prompt log, because it was never in a prompt.

Your local time decided the greeting, which is why it is evening rather than whatever it happens to be at our end. That is one word, not a timestamp.

An API that writes one line, then argues with itself about it.

You send a voice and an ask. It sends back a single line of copy that has survived eight rules: one line, under your character cap, no markdown, no em dash, no invented links, no words you banned.

When nothing survives, it says so and hands you nothing, which is a far better outcome than a page that waits on a model having a bad morning.

1

We asked for a token, not a place

The prompt said write one warm line for evening and put {place} where the reader's country goes. That is the whole request.

2

Eight guards read the answer

Line breaks, length, markdown, em dashes, stray brackets, links, banned words. First rejection wins and nothing gets repaired into passing.

3

We filled in the blank

Only then did {place} become United States, on our side, where your country was the whole time.

The line it actually wrote

With the token still in it, before anyone knew where you were reading from.

Good {daypart}, {place}. Something to read while the robot thinks.

Model: the static fallback, so far

And when it has nothing

Every free model rate limited at once, or the answer broke a rule. You get this, with a 200, because a page render should not have to catch an exception over a greeting.

Hello there.

"text": null   "reason": "no_usable_answer"   so we showed ours

That static line is yours, not ours. Keep one for every place you call us and your worst day looks like an ordinary one.

Questions people ask first

What is getmeme?

An HTTP API that writes one short line of copy. You POST a voice, an ask and a character cap to /api/v1/lines with a bearer key, and get back JSON with the line in text, or text: null and a reason when no line passed.

What are the eight guards?

normalise, single_line, no_markdown, max_length, no_em_dash, placeholders, no_urls_or_emails and forbid, checked in that order. The first rejection wins, nothing is repaired, and the guard that stopped the line is named in reason. They check shape, not meaning.

What happens when the model fails?

You still get a 200, with text: null and a reason such as no_usable_answer, deadline_exceeded or guard:max_length. Keep a static line, show it straight away, and swap in the generated one when it arrives.

How do I keep personal data away from the model?

Declare placeholders such as {name}, get a line with the token in it, and fill it in on your own server. Your forbid list is checked against the answer and is never put in a prompt.

How do I get an API key?

getmeme is in beta and keys are issued by hand. Write to getmeme@warmhop.com with what you are building and roughly how often you will call. A new key starts at 15 requests a minute and 500 a day.

What does getmeme store?

Each call is kept for 14 days so a bad answer can be explained: the prompt as sent, each model's raw answer and the line returned, readable only by getmeme. Your forbid terms are never stored. This page stores nothing about the people reading it.