Launch AI support in minutes.
Your docs become the API.

Upload a PDF or URL, get a pk_xxx key, and your chatbot is live on your site in under 5 minutes.

See how it works →
sdk · 1keyai.orgprivate beta
// playground

A live tour of the dashboard. Switch tabs to walk through the pages.

1KeyAI
dashboard.1keyai.orgB

Playground

acme-docs test console

Test every public capability from one place before shipping it into an app.

Project key loaded
Chat on
Image on
Voice on
Video off

Chat test

Configured modelProvider/model from saved config.
anthropic / claude-3-5-sonnet
LatencyLast streamed response.
184 ms
Is shipping free for orders over 50 EUR?
Yes — shipping is free for orders over 50 EUR within Kosovo and 80 EUR across the EU. Standard delivery takes 2-4 business days; express is available at checkout.
policy.pdf · p.4faq.pdf · p.2
What about returns?
Send

Built on the best

OpenAI
Anthropic
Supabase
Firecrawl
ElevenLabs
Vercel
FastAPI
Scalar
OpenAI
Anthropic
Supabase
Firecrawl
ElevenLabs
Vercel
FastAPI
Scalar
What is 1KeyAI

The full RAG stack,
hidden behind one key.

RAG from PDF + URLText + voice chatClaude · GPT · GeminiRow Level SecuritySelf-hostableOpen API (OpenAPI)

If you wanted to build an AI chatbot today that answers from your documents, you'd wire up OpenAI for the LLM, Pinecone for vectors, ElevenLabs for voice, and Firecrawl for websites. Weeks of work. Five keys to babysit.

1KeyAI collapses that into one endpoint. Create a project, upload a PDF or URL, get a pk_xxx key, and POST to /v1/chat from your site. Behind the key: embeddings (text-embedding-3-small), pgvector isolated with Row Level Security, and an LLM router across Claude, GPT, and Gemini.

Goal: from signup to a working chatbot in under 5 minutes. API-first — we don't impose a UI or ship a widget. You decide what the visitor sees; we keep the brain.

What you get behind one key

One endpoint loads your docs. Another returns answers with sources. Five AI services run on our side, not yours.

5 services · 1 key
LLM
Claude · GPT · Gemini
Vectors
Supabase pgvector
Embeddings
OpenAI 1536
Voice
ElevenLabs STT+TTS
Ingest
PDF · Firecrawl URL
How it works

From signup to a working chatbot — in under 5 minutes.

  1. 01

    Create a project

    Sign up and create a project — get your pk_xxx key instantly, with a one-click copy.

  2. 02

    Load knowledge

    Upload a PDF or paste a URL. We extract text, chunk it, generate embeddings (1536) and store in Supabase.

  3. 03

    Test in playground

    Chat with your bot right inside the dashboard. See the sources behind every answer.

  4. 04

    Copy the snippet

    Paste the code into your site. One POST /v1/chat. The bot works — text or voice.

What's inside

Everything behind one API key.

You don't touch embeddings, vector DBs, STT/TTS, or LLM routing. We hide them all behind a single endpoint.

Core

Text chat (RAG)

Question → embedding → vector search filtered by project_id → top-k chunks → LLM → answer with sources. One endpoint: POST /v1/chat.

pyetjaembeddingmatch_chunksllmanswer + sources
Voice

Real-time voice chat

ElevenLabs hears and speaks. Our backend keeps the brain — RAG + LLM. Same docs, no double setup.

02
Image

Image generation

POST /v1/image with a prompt. Router across OpenAI, Flux, and Stability — the keys live on our side.

03
Ingest

PDF & URL, same shape

Upload a PDF (pypdf) or paste a URL (Firecrawl). Same embeddings, same hierarchy: documents → chunks.

04
LLM Router

Claude, GPT, or Gemini

One dropdown. Same docs. Default: claude-sonnet. Switch with one request parameter.

05
VideoRoadmap

Async video

Google Veo / Runway / Sora after the hackathon — async with job_id + polling/webhook. Same pattern as image.

06
Integration

One endpoint. Nothing else.

FastAPI generates OpenAPI automatically. Scalar turns it into beautiful docs with copy-ready code samples — your key pre-filled. Coming: Fern-generated SDKs for JS, Python, and PHP.

Read docs
const r = await fetch("https://api.1keyai.org/v1/chat", {
  method: "POST",
  headers: {
    Authorization: "Bearer pk_live_••••",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ message, llm: "claude" }),
});
const { answer, sources } = await r.json();
Security

Your data, isolated from the ground up.

One database, two layers of defense. No developer can ever see another's data — not even by mistake.

Site / Chat widget
POST /v1/chatAuthorization: pk_xxx
Backend
layer 01
Verify pk_xxx→ resolve project_id
layer 02
match_chunks(project_id, q)— filter inside query
pgvector + RLS
policy own chunks
policy own documents
policy own projects
DB-level enforcement
01

Filter by project_id

Vector search always filters inside the query — not after. No chunk from another project ever reaches the LLM.

02

Row Level Security

Supabase RLS enforces isolation at the database layer. Even if the code slips, the DB itself blocks cross-project leaks.

03

Server-side keys

OpenAI, Anthropic, Firecrawl, ElevenLabs — all live on the backend. The frontend never touches them.

match_chunks · inside the query
select c.id, c.content, d.source
from chunks c
join documents d on d.id = c.document_id
where c.project_id = p_project_id   -- isolation happens here
order by c.embedding <=> query_embedding
limit match_count;
FAQ

Questions you'll probably ask.

Didn't find your answer? Email hi@1keyai.org.

Do you ship a ready-made chatbot UI?+

No, by design. We're API-first — we give you the power, not the look. Every site has its own style; developers build the UI to match. A lightweight SDK is coming, not a styled widget.

How is data isolated between projects?+

Two layers: vector search filters by project_id inside the query (not after), and Supabase RLS enforces isolation at the database layer. Even if the code slips, the DB blocks cross-project leaks.

Which LLMs are supported?+

Default: Claude (claude-sonnet). Dropdown also covers GPT, with Gemini optional. Switch with one request parameter — same docs, no reconfig.

How fast can I get started?+

Under 5 minutes from signup to a working chatbot. No mandatory config — defaults just work. The code snippet ships with your key pre-filled.

Can I use my own OpenAI/Anthropic key?+

Not in the MVP. After the hackathon: BYOK for enterprise, plus per-user API keys (every user gets their own key with the provider — no rate-limit bottleneck).

What about video?+

Roadmap after the hackathon. Providers slot into the router (Google Veo / Runway / Sora) with the same pattern as image. Async (job_id + polling/webhook) because it takes 30s–several minutes.

Private beta

Grab the key. Build the bot.

Free to start. No card. No setup. Just a key and your documents.

Read docs
· Open source· Self-hostable· API-first