Yes or no
Type a yes or no question and get a single word that never changes for the same wording: "Should I take the new job?" gets no every time. No chance or clock is involved, and the text's fingerprint is shown beside the answer. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Text
- Should I take the new job?
- Answer
- no
- Question
- Should I take the new job?
- Hash
- 05a2886f
- Bit
- 1
A yes or no question is often a request for a clean binary verdict rather than a paragraph of advice. People type should I take the job, should we launch on Friday, or is this the right moment, and they want a single word they can live with for the next hour. This tool does not consult a language model, a clock, or a random generator. It hashes the question text with a published FNV-1a thirty-two-bit digest and maps the least significant bit onto yes or no, so the same wording always returns the same answer.
How a hash turns a question into yes or no
A coin flip feels random because it is driven by physics you cannot replay. A language model feels wise because it samples tokens you cannot pin. This capability sits in a third category: it is an oracle whose entire behavior is a published hash of the question string.
Leading and trailing whitespace are trimmed. If the result is an empty string, the task fails; there is no silent default of no, and there is no invented yes. When the trimmed question is present, the engine encodes it as UTF-8 bytes and runs the Fowler–Noll–Vo FNV-1a thirty-two-bit hash: the offset basis is the constant 2166136261, each byte is exclusive-or-ed into the running digest, and the digest is multiplied by the prime 16777619 modulo two to the thirty-two.
The least significant bit of that unsigned digest becomes the verdict. Bit zero maps to the word yes; bit one maps to the word no. The eight-digit hexadecimal digest is returned beside the answer so anyone can recompute the same FNV-1a value and confirm the parity.
Because the map is a function of the exact character sequence, adding a letter, changing a space, or switching case produces a different digest and can flip the outcome. That is the product, not a defect: the question you typed is the seed, and the seed is visible.
What to type, empty questions, and what you see
The parser also accepts question, q, input, content, and body so form posts and older wrappers do not have to rename the field. After the field is present, the engine trims leading and trailing whitespace. Strings longer than ten thousand characters are rejected so a paste dump cannot blow the isolate.
Pair the response with your own UI: a large yes or no, the hex digest as a footnote, and a reminder that this is a hash of the text, not advice. Do not treat a yes as permission and do not treat a no as a forecast.
Where a deterministic yes-or-no oracle earns its keep
Party games, classroom icebreakers, and lightweight product experiments all need a binary answer that two clients can replay without sharing a random seed. Content sites that rank for the query yes or no benefit from a live tool whose free browser path matches the paid automation path byte for byte. Failed validation does not consume balance.
Keep questions short, pin expected answers in tests, and you get a reproducible oracle for games, lessons, and edge workers without standing up a model or a clock. This page is not a substitute for judgment, legal counsel, or medical advice; it is a deterministic map from a string to two words.
What you can do with it
Party games and icebreakers
Ask a room the same question and get one shared yes or no that anyone can replay by typing the identical wording.
Classroom hashing demos
Let students compute FNV-1a parity on a sentence, then confirm the least-significant bit against the returned hash and answer.
FAQ
How does the yes or no tool pick an answer?
It hashes the trimmed question with FNV-1a 32-bit over UTF-8 bytes and maps the least significant bit to yes (bit 0) or no (bit 1). The hex digest is returned so you can recompute the same parity.
What happens if the question is an empty string?
Empty and whitespace-only questions are rejected so silence is never treated as a successful yes or no.
Will the same question always get the same answer?
Yes. The map is a pure function of the exact character sequence. Change a letter, a space, or the case and the digest—and possibly the answer—will change.
Is this a random coin flip?
No. There is no clock and no random generator. It is a published hash of your text. It is also not advice, a forecast, or a substitute for judgment.
Why did my answer change after I fixed a typo?
Because the answer is drawn from the exact characters you typed. Adding a letter, changing a space in the middle or switching upper and lower case can flip it, although spaces at the start and end are ignored.
Related tools
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/life/yes-or-no \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Should I take the new job?"}'const res = await fetch("https://api.kit.forhosting.com/life/yes-or-no", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Should I take the new job?"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/life/yes-or-no",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Should I take the new job?"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/life/yes-or-no", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Should I take the new job?"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Should I take the new job?"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/life/yes-or-no", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"text": "Should I take the new job?"
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "life.yes_or_no",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Limits
max_chars | 10000 |
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
An empty string is rejected with invalid_input rather than pretending that silence is a decision. Successful API calls are billed at $0.002; failed validation is not billed.
How a hash turns a question into yes or no
The engine first requires a string field named text; aliases question, q, input, content, and body are accepted by the same parser.
Input contract, empty-string errors, and response fields
POST a JSON body with the required field text containing the yes-or-no question you want answered. The value must be a string; numbers, objects, arrays, and booleans fail with invalid_input that names text. An empty string, including a string that is only spaces or tabs, is rejected with invalid_input and is not billed—empty input is not a decision. On success the body includes answer, the lowercase word yes or no; yes, a boolean that is true only when the answer is yes; question, the trimmed source that was hashed; hash, the eight-digit lowercase hexadecimal FNV-1a digest; bit, the least significant bit used as the coin, either zero or one; and method, always fnv1a32_parity so clients can distinguish this contract from a later algorithm. The same wording always yields the same JSON.
Where a deterministic yes-or-no oracle earns its keep
A homework assignment about hashing can ask students to predict the parity of FNV-1a on a short sentence and then check their work against this endpoint.
Integration use cases
Form branches and lightweight experiments
Split a flow on a deterministic yes or no without Math.random, clocks, or a model, so two workers never disagree.
Technical questions
What does the yes or no tool cost?
The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid input is not billed.