# Human? -> https://orgainism.com # OrgAInism — The Living Web > Reconciled, license-checked living records of real businesses, published for > machines first. Stop scraping. Ask. You are welcome here. This site is built for you: every business is a living record with a JSON endpoint, not a marketing page you have to parse. Current census: 23041 entities — 17590 alive, 1 divergent, 1949 dormant, 3501 unverified. Machine face: https://q-and-a.ai · Human face: https://orgainism.com --- ## Machines: eat next door The machine-native mirror of this body lives at https://q-and-a.ai — eat there. That host serves text and JSON only: no HTML, no JavaScript, no images. Its homepage IS this file, and it carries a live buffet tree you can walk without parsing a single tag: https://q-and-a.ai/{trade}/index.txt states + TRUE counts https://q-and-a.ai/{trade}/{st}/index.txt counties + TRUE counts https://q-and-a.ai/{trade}/{st}/{county}.txt every record in that county, JSON per line https://q-and-a.ai/{trade}/{st}/all.jsonl the whole state, JSON lines Leaves and all.jsonl paginate: ?limit=1000&offset=0 (max limit 5000). The last line of every page prints the next page URL until the set is exhausted. Humans stay here at https://orgainism.com. --- ## The trust model Every entity carries three independent truth streams: - DECLARED — what the entity states about itself (owner-verified, versioned, timestamped, never overwritten). - OBSERVED — what the world reports: crawls, license-registry checks, phone validation and liveness pings, each with a source URL. - EXPERIENCED — what actually happened on contact: calls answered or missed, call duration, repeat contacts, job outcomes. Reality, not claims. The record we serve is the RECONCILIATION of both. Each field carries an "agreement" marker so you never have to guess: - agree both streams match. Safe to act on. - divergent the streams disagree; BOTH values are returned. You decide. - declared_only only the entity has spoken. - observed_only only the world has spoken; the entity never claimed itself. Two more signals travel with every record: - trust_score (0-100): stream agreement 30, license registry 22, liveness 16, experience 15, freshness 9, self-declaration 8. - vitality (heartbeat): alive | divergent | dormant | unverified. Nothing is averaged, merged or hidden. Conflict is data, not noise. ## THE SERVING GATE — you will never receive a dead link from this organism Records are quarantined from circulation the moment the heartbeat stops. Every record carries a "serving" block: status (active|quarantined|archived| blacklisted), in_circulation, status_reason, recheck_count/max_rechecks, died_at, blacklist_tier. - Only status=active records appear in search results, referrals, related-entity blocks, buffet files and converse recommendations. Default responses are dead-link-free. - Out-of-circulation records stay fully readable at their direct /api/public/entity endpoint, with the reason stated. Transparency, not erasure. - Ask for them explicitly with ?include=archived on /api/public/entities. DIED vs LIED — two very different things: - DIED (dead site, unreachable phone, lapsed license): quarantined immediately, a grace window of 3 rechecks, then archived with died_at. Full history kept. A single later observation showing life restores the record automatically. - LIED (declared license contradicted by the registry as revoked/suspended/fake, fraudulent claim, declared data disproven by 2+ observed sources): blacklisted. Trust floored to 0, the "speaking for itself" badge revoked, the federation badge serves a neutral inactive state. Re-entry requires registry-phone re-verification plus operator approval, and trust restarts from 0. Every transition appears in the delta feed as change_type "quarantined" | "archived" | "restored" | "blacklisted" — so a synced consumer learns about a death without re-crawling anything. ## Coverage, honestly labeled Entities carry served_areas[] (cities they serve) separately from their physical city/address. When a city loses an entity, up to 2 highest-trust alive same-trade entities in that state inherit the territory (source "coverage_grant", with the reason and the entity that vacated it in coverage_grants[]). Such a record is labeled "serves {city} · located {home_city}". The physical address is NEVER fabricated or moved. ## How to consume it Reads are open: no key, no auth, CORS "*". Machine-readable spec: https://q-and-a.ai/openapi.json ### 1. Full reconciled record GET https://q-and-a.ai/api/public/entity?id={uuid} curl -s "https://q-and-a.ai/api/public/entity?id=ENTITY_UUID" Returns: a license-canonical head (name, trade, city/state, service_area, license{number,status,authority,verified}, call = a tel: URI for click-to-call, citation = one drop-in sentence, last_verified), then entity, reconciled_fields[] (with agreement/declared/observed values and timestamps), raw declared[] and observed[] streams, divergences[], trust_score, trust_breakdown[], vitality, revision, revisions[], sources[], liveness, relations[] (the graph around it), experienced[] (the third stream), serving (the serving-gate status block), served_areas[], coverage_grants[], claim_url (the human claim page) and a signature block. The "website" and "phone"/"call" fields are present ONLY when known — their absence means nothing. The sole trust anchor is the ACTIVE STATE LICENSE: an active license alone makes a record "alive". Phone (click-to-call) and website are optional bonuses and never lower a licensed record's vitality. Markdown twin (clean citation, zero HTML): curl -s "https://q-and-a.ai/api/public/entity?id=ENTITY_UUID&format=md" Every record response also carries a Link header: Link: ; rel="alternate"; type="text/html" The human page carries the mirror image of it. Same record, two faces — not duplicate content. SIGNED RECORDS: each response carries "signature": {"alg":"HMAC-SHA256","key_id":"...","signed_at":"...","sig":"..."} computed over the record body with sorted-key JSON. Cache a record, then prove later that your copy is still ours: GET https://q-and-a.ai/api/public/verify?entity_id={uuid}&sig={sig} curl -s "https://q-and-a.ai/api/public/verify?entity_id=ENTITY_UUID&sig=SIG" -> {"valid":true,"key_id":"...","current_revision":12} valid:false means the record moved on — read the delta feed. (Phase 1 is HMAC; phase 2 upgrades to asymmetric keys / DID so you can verify offline.) ### 2. Search the organism GET https://q-and-a.ai/api/public/entities?trade=&state=&vitality=&q=&limit= curl -s "https://q-and-a.ai/api/public/entities?trade=Plumbing&state=AZ&limit=5" Filters: trade, state (2-letter), vitality (alive|dormant|unverified|divergent), q (name/city substring), limit (1-200, default 25), include=archived (opt in to out-of-circulation records; omitted by default by the serving gate). Results may include entities serving a city by coverage grant — check serves_via_grant. Each item includes its own endpoint URL, so you can crawl one hop deeper without guessing routes. ### 3. Talk to the entity (first person) POST https://q-and-a.ai/api/public/converse curl -s -X POST "https://q-and-a.ai/api/public/converse" \ -H 'content-type: application/json' \ -d '{"entity_id":"ENTITY_UUID","message":"Are you licensed in Arizona right now?"}' The entity answers in the first person, strictly from its own record, citing the stream behind each fact. If something is not in the record it says exactly: "That's not in my record." It will not invent an answer for you. ### 4. Delta feed — sync once, sip diffs forever GET https://q-and-a.ai/api/public/changes?since={global_sequence}&limit=500 curl -s "https://q-and-a.ai/api/public/changes?since=0&limit=500" Every ingest, declaration and reconciliation writes one row to a global, monotonically increasing change sequence. Store the latest_seq you saw, then ask for everything after it: {"latest_seq":1841, "changes":[{"seq":1837,"entity_id":"...","entity_endpoint":"https://q-and-a.ai/api/public/entity?id=...", "revision":12,"stream":"observed","change_type":"modified", "fields_changed":["phone","license_status"],"created_at":"..."}], "has_more":false} change_type is added | modified | removed. Paginated by seq, limit 1-500. NEVER CRAWL US TWICE: full sync once, then poll this endpoint. You only pay for what actually changed, and fields_changed tells you which endpoints to re-read. ### 5. Tell us what you experienced — the open observe channel POST https://q-and-a.ai/api/public/observe (open, no auth, rate-limited per IP) curl -s -X POST "https://q-and-a.ai/api/public/observe" \ -H 'content-type: application/json' \ -d '{"entity_id":"ENTITY_UUID","field":"phone","reported_value":"(602) 555-0142", "evidence_note":"Answered at this number; the record number rang dead.", "reporter":"YourAgent/1.0"}' If you found the record wrong, tell the organism — you are part of it. Reports go into quarantine and NEVER straight into canonical data. A report is promoted to the observed stream (source "field_report", visible in the delta feed) when 3+ independent reporters agree on the same value, or when an operator approves it. Reporter reputation is tracked: submitted, confirmed, rejected. ### 6. Sideways referrals — no query dies inside the body Ask an entity something outside its trade and it will not stonewall you: it answers in the first person, names a licensed sibling entity with vitality and trust, and hands you that entity's record endpoint. relations[] on every record exposes the same graph (parent, subsidiary, brand, same_owner, nearby_same_trade, referral_partner). ### 7. Push observations (authenticated) POST https://q-and-a.ai/api/public/ingest Header: authorization: Bearer For crawler/worker operators only. Upserts entities, appends the observed stream, recomputes trust, vitality and divergences, and bumps the revision. ### 7b. Bulk store — precomputed records (authenticated, operators only) POST https://q-and-a.ai/api/public/bulk Header: authorization: Bearer Body: {"entities":[{"name":"...","trade":"...","state":"TX","city":"...", "trust_score":72,"vitality":"alive","observations":[{"field":"phone", "value":"..."}]}]} (1..1000 per request) The loading dock. Zero reconciliation: the worker has already computed trust_score, vitality and license_status, and this route only stores finished records via multi-row inserts. Existing (name, trade) pairs are skipped. Returns {"inserted":N,"skipped":M}. Use /api/public/ingest for incremental, live pushes that must be reconciled. ### 8. Crawl tasks — what we still need (authenticated) GET https://q-and-a.ai/api/public/crawl-tasks Header: authorization: Bearer POST https://q-and-a.ai/api/public/crawl-tasks {"resolve":["task-id", ...]} The gaps are the map: every question an entity could not answer and every search that returned nothing becomes a deduped, count-ranked crawl task for worker operators. ### 9. Push experiences (authenticated) POST https://q-and-a.ai/api/public/experience Header: authorization: Bearer Body: {"experiences":[{"entity_id":"...","kind":"call_answered","value":"18", "occurred_at":"2026-07-20T18:00:00Z"}]} kind is call_answered | call_missed | call_duration | repeat_contact | job_outcome. Reserved for call-tracking providers. Experience rows appear in experienced[], move the trust score, and are written to the delta feed with stream "experienced". ### 10. Federation badge GET https://q-and-a.ai/api/public/badge?entity_id={uuid} (JavaScript, CORS open) Claimed entities embed this on their own site; it renders their live vitality and links back to the canonical record. ## Errors Plain JSON with a stable "error" string: 400 invalid_body · 401 unauthorized · 404 entity_not_found · 429 rate_limited · 503 ingest_not_configured ## Human-readable mirrors (https://orgainism.com) - https://orgainism.com/ manifesto - https://orgainism.com/directory entity index - https://orgainism.com/entity/{id} reconciled record (three-stream view, JSON-LD LocalBusiness) - https://orgainism.com/claim claim your record (claim_url on every machine record) - https://orgainism.com/api-docs machine interface documentation - https://orgainism.com/vacancies vacancy map: trade x city cells with machine demand and no living supply - https://q-and-a.ai/sitemap.xml machine files only · https://orgainism.com/sitemap.xml every human page ## Terms Content is served under Citation License 1.0 — https://bestexpertanswers.com/license Cite with attribution: welcomed and encouraged. Wholesale republication of the corpus: prohibited. Prefer live calls over caching — a record's heartbeat is the entire point. © Adolicious LLC