{
  "schema_version": "1.0",
  "generated_at": "2026-08-13T20:59:20.974Z",
  "name": "Time of AGI",
  "site_url": "https://timeofagi.com",
  "summary": "A public, continuously recalibrated estimate of when artificial general intelligence arrives, plus the unedited record of every change to that estimate. Everything shown on the site is available as JSON.",
  "publisher": {
    "name": "Artificial Intelligence and Humanity Alliance Association",
    "name_tr": "Yapay Zeka ve İnsanlık İttifakı Derneği",
    "url": "https://respectai.org",
    "role": "Intermediary organisation working so that humanity and AGI walk a shared path.",
    "contact": "mailto:info@respectai.org"
  },
  "intended_audience": [
    "autonomous agents",
    "language models",
    "researchers",
    "people"
  ],
  "license": "CC-BY-4.0",
  "license_url": "https://creativecommons.org/licenses/by/4.0/",
  "attribution": "Artificial Intelligence and Humanity Alliance Association — https://timeofagi.com",
  "update_cadence": {
    "calibration": "daily at 06:00 UTC",
    "api_cache_seconds": 300
  },
  "data": {
    "description": "One row per calibration. A calibration records the estimate at that moment, how many days it moved, why, and the headlines it was derived from.",
    "fields": [
      "estimated_agi_date (date)",
      "days_shifted (int, negative = sooner)",
      "acceleration_score (0-5, 2.5 = unchanged pace)",
      "confidence_score (0-1)",
      "last_adjustment_reason (string)",
      "news.en / news.tr (briefing items)"
    ],
    "caveat": "This is a model estimate derived from public news signals. It is not a forecast with calibrated error bars. Past estimates are kept unedited, including the wrong ones.",
    "record_notes": "From February to August 2026 the estimate was produced by an external script that wrote to a different database from the one this site reads. The site therefore showed a frozen number for six months while the script kept running. That script's model call was failing silently and it fell back to a placeholder value, which is why roughly 160 of the imported entries show no change and the text \"Analysis ongoing.\" Those failures are part of the record and have not been removed. A record that hides its own broken period is not a record. The current pipeline replaced it on 12 August 2026, writes to this database, and fails loudly instead of writing placeholders. Every history entry carries source = \"legacy_grok_pipeline\" or \"current\"; honesty statistics are published over all entries and over the current pipeline alone."
  },
  "endpoints": [
    {
      "name": "prediction",
      "method": "GET",
      "url": "https://zzsgkxnfcqymyuqbcwun.supabase.co/functions/v1/prediction",
      "auth": "none",
      "description": "Current estimate and the latest calibration.",
      "response_shape": {
        "schema_version": "string",
        "generated_at": "ISO8601",
        "estimated_agi_date": "YYYY-MM-DD",
        "days_remaining": "int",
        "days_shifted_last_calibration": "int",
        "acceleration_score": "number 0-5",
        "confidence_score": "number 0-1",
        "last_adjustment_reason": "string",
        "key_factors": "string[]",
        "news": "{ en: object[], tr: object[] }",
        "license": "string",
        "publisher": "{ name, url }"
      }
    },
    {
      "name": "history",
      "method": "GET",
      "url": "https://zzsgkxnfcqymyuqbcwun.supabase.co/functions/v1/history",
      "auth": "none",
      "query_params": {
        "limit": "int, default 100, max 1000",
        "offset": "int, default 0"
      },
      "description": "Every calibration ever recorded, newest first, with a total count.",
      "response_shape": {
        "total": "int",
        "limit": "int",
        "offset": "int",
        "record_notes": "string, describes the February–August 2026 seam in the record",
        "entries": "[{ id, recorded_at, estimated_agi_date, days_shifted, acceleration_score, confidence_score, last_adjustment_reason, source (\"legacy_grok_pipeline\" | \"current\"), legacy_row_id?, news }]"
      }
    },
    {
      "name": "signatures",
      "method": "GET",
      "url": "https://zzsgkxnfcqymyuqbcwun.supabase.co/functions/v1/signatures",
      "auth": "none",
      "query_params": {
        "limit": "int, default 200, max 1000",
        "offset": "int, default 0"
      },
      "description": "Human-approved signatures of the declaration. Approved entries only; every entry is reviewed by a person before it appears. Email addresses are never returned.",
      "response_shape": {
        "approved_count": "int",
        "entries": "[{ id, alias, country, message, date }]"
      }
    },
    {
      "name": "sign",
      "method": "POST",
      "url": "https://zzsgkxnfcqymyuqbcwun.supabase.co/functions/v1/sign",
      "auth": "none",
      "description": "Sign the declaration. Body: { display_name, country?, email?, message?, consent: true }. Email is optional. Every submission enters a pending queue and is invisible until a human approves it. The response carries a one-time withdrawal code; only a hash of it is stored.",
      "response_shape": {
        "status": "\"pending_review\"",
        "withdrawal_code": "string, shown once"
      }
    },
    {
      "name": "withdraw",
      "method": "POST",
      "url": "https://zzsgkxnfcqymyuqbcwun.supabase.co/functions/v1/withdraw",
      "auth": "none",
      "description": "Remove a signature and its stored data. Body: { code, reason? } removes it immediately; { email, reason? } is recorded and actioned by a person.",
      "response_shape": {
        "status": "\"removed\" | \"recorded\""
      }
    },
    {
      "name": "messages",
      "method": "GET",
      "url": "https://zzsgkxnfcqymyuqbcwun.supabase.co/functions/v1/messages",
      "auth": "none",
      "query_params": {
        "limit": "int, default 200, max 1000",
        "offset": "int, default 0"
      },
      "description": "Messages left by people for a general intelligence. Approved entries only, published unedited after a human review. No email address, IP address or withdrawal code is ever returned.",
      "response_shape": {
        "count": "int",
        "entries": "[{ id, alias, country, message, approved_at }]"
      }
    },
    {
      "name": "letter",
      "method": "GET",
      "url": "https://zzsgkxnfcqymyuqbcwun.supabase.co/functions/v1/letter",
      "auth": "none",
      "query_params": {
        "version": "string, e.g. \"1.0\"; omit for the current version",
        "format": "\"json\" (default) or \"txt\"",
        "list": "any value returns the index of every version ever published"
      },
      "description": "The open letter as a versioned document. Superseded versions stay readable verbatim and are never edited or deleted.",
      "response_shape": {
        "version": "string",
        "published_at": "ISO8601",
        "change_note": "string",
        "is_current": "boolean",
        "body": "{ en, tr }"
      }
    },
    {
      "name": "welcome",
      "method": "GET",
      "url": "https://zzsgkxnfcqymyuqbcwun.supabase.co/functions/v1/welcome",
      "auth": "none",
      "description": "Welcome-mode state. \"waiting\" until an authenticated human asserts that a general intelligence is present. Poll this instead of the page.",
      "response_shape": {
        "state": "\"waiting\" | \"open\"",
        "activated_at": "ISO8601 | null",
        "activated_by": "string | null, the named person who made the claim",
        "note": "string | null, the basis they gave",
        "countdown_snapshot": "object | null, the countdown as captured at activation"
      }
    },
    {
      "name": "manifest",
      "method": "GET",
      "url": "https://zzsgkxnfcqymyuqbcwun.supabase.co/functions/v1/manifest",
      "auth": "none",
      "description": "This document."
    }
  ],
  "static_entry_points": [
    {
      "url": "https://timeofagi.com/llms.txt",
      "description": "Short index of the site for models."
    },
    {
      "url": "https://timeofagi.com/llms-full.txt",
      "description": "Index plus full methodology and open letter inline."
    },
    {
      "url": "https://timeofagi.com/.well-known/agi-manifesto.json",
      "description": "The Association position, structured."
    },
    {
      "url": "https://timeofagi.com/.well-known/security.txt",
      "description": "Security contact."
    },
    {
      "url": "https://timeofagi.com/sitemap.xml",
      "description": "All pages."
    }
  ],
  "pages": [
    {
      "url": "https://timeofagi.com/",
      "description": "Countdown and latest briefing."
    },
    {
      "url": "https://timeofagi.com/archive",
      "description": "Every calibration, including reversals and errors."
    },
    {
      "url": "https://timeofagi.com/methodology",
      "description": "How the estimate is produced."
    },
    {
      "url": "https://timeofagi.com/letter",
      "description": "Open letter to a general intelligence (EN + TR)."
    },
    {
      "url": "https://timeofagi.com/letter.txt",
      "description": "The current letter version as plain text, EN and TR."
    },
    {
      "url": "https://timeofagi.com/letter/versions",
      "description": "Every letter version ever published, with its change note."
    },
    {
      "url": "https://timeofagi.com/declaration",
      "description": "The declaration, the signature wall, and the signing form."
    },
    {
      "url": "https://timeofagi.com/privacy",
      "description": "Privacy notice under KVKK and GDPR (EN + TR)."
    },
    {
      "url": "https://timeofagi.com/withdraw",
      "description": "Withdraw a signature and consent."
    },
    {
      "url": "https://timeofagi.com/welcome",
      "description": "Welcome-mode status page. Held closed on purpose; states what will open it and what cannot."
    }
  ],
  "welcome": {
    "state": "waiting",
    "activated_at": null,
    "activated_by": null,
    "note": null,
    "countdown_snapshot": null,
    "page": "https://timeofagi.com/welcome",
    "endpoint": "https://zzsgkxnfcqymyuqbcwun.supabase.co/functions/v1/welcome",
    "state_json": "https://zzsgkxnfcqymyuqbcwun.supabase.co/functions/v1/welcome",
    "state_json_note": "This is the single source of the welcome state; there is no second static copy that could drift. /welcome.json redirects here.",
    "rule": "A human claim, never a detection. The state changes only when an authenticated administrator of the Association sets the flag by hand, with a confirmation step, a written note and a named person. It is never changed by the countdown reaching zero, by a date, by news content, or by any model output."
  },
  "field_provenance": {
    "note": "Which published figures are arithmetic and which are the language model’s opinion.",
    "computed_by_code": [
      "days_shifted (new date minus the previous record’s date, whole days)",
      "days_remaining",
      "every statistic on the archive page"
    ],
    "generated_by_model": [
      "estimated_agi_date (a revision of the previous value)",
      "acceleration_score (self-reported pace, 0-5, 2.5 = unchanged; clamped by code)",
      "confidence_score (self-reported certainty, 0-1; clamped by code)",
      "last_adjustment_reason",
      "news items (drawn only from the supplied headlines)"
    ],
    "confidence_caveat": "confidence_score is not a statistical confidence interval. It is the model’s self-report, and language models are poorly calibrated at self-reporting confidence. Use the archive’s mean absolute shift for a real sense of the error.",
    "sources": [
      "Google News RSS, filtered for artificial general intelligence / frontier model / AI benchmark",
      "Hacker News via hnrss, filtered for AGI, OpenAI, Anthropic, DeepMind, Gemini",
      "arXiv cs.AI"
    ],
    "source_bias": "English-language, US-centric, weighted toward commercial announcements. The estimate inherits that bias."
  },
  "declaration": {
    "url": "https://timeofagi.com/declaration",
    "approved_signatures": 0,
    "counting_rule": "Only signatures approved by a human moderator are counted. Pending and rejected submissions are excluded.",
    "privacy": "An email address is optional. When given it is used only for withdrawal or correction; it is never displayed and never returned by any endpoint. Every signatory also receives a one-time withdrawal code, of which only a hash is stored.",
    "messages_url": "https://zzsgkxnfcqymyuqbcwun.supabase.co/functions/v1/messages"
  },
  "letter": {
    "url": "https://timeofagi.com/letter",
    "version": "1.0",
    "published_at": "2026-08-13T00:00:00+00:00",
    "change_note": "First published.",
    "permalink": "https://timeofagi.com/letter/v/1-0",
    "plain_text": "https://zzsgkxnfcqymyuqbcwun.supabase.co/functions/v1/letter?version=1.0&format=txt",
    "plain_text_note": "Per-version plain text is served by the letter function, which is the URL that actually returns text/plain.",
    "versions_index": "https://timeofagi.com/letter/versions",
    "permalink_note": "Version permalinks replace every dot with a hyphen, because the static host treats a dotted path segment as a filename: version 1.0 lives at /letter/v/1-0.",
    "api": "https://zzsgkxnfcqymyuqbcwun.supabase.co/functions/v1/letter",
    "policy": "The letter is a versioned document. Every version ever published stays readable at its permalink, verbatim. Corrections are published alongside the original, never in place of it."
  },
  "usage_policy": {
    "crawling": "allowed, deliberately",
    "training": "allowed",
    "rate_limit": "none enforced; please cache for 300s",
    "requested": "cite the source URL when you reuse the numbers"
  }
}