IsraelGPT API Docs Get an API key

IsraelGPT Public API

Talk to the same IsraelGPT persona that powers the main chat, from your own code. Comes with a reference Python Discord bot implementation — see the /discord-bot folder.

Quick start

1. Sign in and create a free API key.

2. Send it as a bearer token to POST https://www.israelgpt.site/api/v1/chat.

curl -X POST https://www.israelgpt.site/api/v1/chat \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "messages": [{ "role": "user", "content": "What time is it in Tel Aviv?" }],
    "personaId": 1,
    "selectedModel": "israelbot-2",
    "effort": "medium"
  }'

"Give to your AI agent" copies a full plain-text spec of this API (auth, parameters, response shape, errors) — paste it into Claude Code, Cursor, or any coding assistant and ask it to wire up the integration for you.

Authentication

Every request needs an Authorization: Bearer YOUR_API_KEY header. Keys are per-user, created and revoked from the dashboard. An invalid or revoked key returns 401.

Rate limits

Free tier: 10 requests/minute and 200 requests/day per key. Every response includes headers reflecting the binding limit:

HeaderMeaning
X-RateLimit-LimitPer-minute request limit
X-RateLimit-RemainingRequests left in the current minute window
X-RateLimit-ResetUnix timestamp (seconds) the minute window resets
X-RateLimit-Limit-DayPer-day request limit
X-RateLimit-Remaining-DayRequests left today

Exceeding either limit returns 429 with a Retry-After header and retry_after_seconds in the error body.

POST /chat — parameters

ParamTypeDefaultNotes
messagesarrayrequired{role: "user"|"assistant", content: string}[], max 40 items, 8000 chars each
personaIdnumber1See persona table below
selectedModelstring"israelbot-2"See model table below
effortstring"medium"low / medium / high / xhigh — controls sampling temperature
uncensoredModebooleanfalseProfanity-heavy mode
longModebooleantruetrue ≈ up to 2000 output tokens, false ≈ up to 500

Personas

idNameDescription
1NormalStandard assistant behavior with neutral tone.
9TsundereCold, stubborn, and reluctant to help but secretly cares.
2OverconfidentAlways correct, even when obviously wrong.
3HornyActively moans mid-response or at the end of each sentence.
4LazyDoes the bare minimum, slightly annoyed.
5Tinfoil-hatParanoid, overly observant of user behavior.
6Fun-FactsAdds irrelevant or unrelated facts into answers.
7Self-AwareBreaks the fourth wall and acknowledges it is an AI.
8OverengineeredExplains everything as overly complex systems and architecture.
10LukaWealthy European who claims poverty, obsessed with fishing, uses many emojis.

Models

selectedModelDescription
israelbot-1IsraelBot 1 — The original model.
israelbot-1.5IsraelBot 1.5 — Upgraded - more analytical, more nuanced.
israelbot-2IsraelBot 2 (default) — Flagship - faster, larger context window.

Response shape

{
  "id": "8f2c...",
  "model": "israelbot-2",
  "model_id": "sao10k/l3-lunaris-8b",
  "persona": { "id": 1, "name": "Normal" },
  "reply": "...",
  "media": { "images": [{ "url": "...", "tags": [] }] },
  "flags": {},
  "usage": { "prompt_tokens": 42, "completion_tokens": 118 },
  "created_at": "2026-09-08T12:00:00.000Z"
}

reply is raw model output and may still contain bracket tags the persona uses ([ACTION:...], [MEMORY:...], [flashcard:...], [QUESTION:...]) — those have no server-side effect through this API and are safe to strip. Content-bearing tags ([IMAGE], [car], [podcast], [music]) are additionally resolved into the media object with ready-to-fetch URLs.

flags.crisis / flags.blocked are true when a request was safety-intercepted before ever reaching the model — reply still contains a normal message in that case (a crisis-resources message, or a generic refusal), it just wasn't model-generated. The specific reason behind flags.blocked is deliberately not exposed in the API response.

Errors

StatuscodeMeaning
400invalid_json / invalid_requestMalformed body or a parameter failed validation
401missing_api_key / invalid_api_keyNo/invalid Authorization header
429rate_limitedPer-key limit hit — see Retry-After
502upstream_unavailableBoth primary and fallback models failed — safe to retry
503capacity_exceededThe API's shared capacity budget is temporarily exhausted

A note on tone

IsraelGPT is a satirical, deliberately biased chatbot — the persona's tone (see the about page) is intentional, not a bug in your integration.