OpenAlchemyOpenAlchemy

ONE API FOR AI AGENTS

Everything your AI agents need. One API.

Inference, realtime voice, and knowledge retrieval — powered by open models (Qwen, Llama, DeepSeek, Whisper, Flux) on a distributed GPU grid. One OpenAI-compatible endpoint for the whole agent stack.

Run agents anywhere. Route inference to any available GPU. Powered by Grid

OpenAlchemy
Your PCShare idle compute
Group GPUsPower from group
RTX WorkstationsPro power, shared
Community NodesStronger together
ReasoningLLM · Planning
VisionVLM · OCR
VoiceRealtime STT·LLM·TTSCharbitVVoice Bridge
Knowledge / RAGEmbeddings · Rerank
GenerationImage · Video · Music
Tools & CodeFunctions · Sandbox

Every modality served from a distributed Grid GPU farm.

LLM
QwenLlamaDeepSeekGemma
Embedding
BGEGTEE5
Rerank
BGE-rerankerJina
STT
SenseVoiceWhisper
TTS
CosyVoiceVibeVoiceGPT-SoVITS
Image
Qwen-ImageFLUX
Video
MiniMax H3Wan 2.2LatentSync
Vision
Qwen-VLInternVL

DESKTOP CLIENT

Put your idle GPU on the Grid.

Install OpenAlchemy Engine Desktop and your idle GPU joins Grid — use the API for free, or earn credits every time someone else's job runs on your machine and spend them on API calls or in Charbit. Your call. The dashboard shows live GPU status, loaded models, queue, and logs.

OpenAlchemy Engine — v0.6.27
Dashboard — live GPU, CPU, memory, disk, and hostWorker — runtime slots and live request logsModels — everything cached on your diskDiscover — browse and download open models
Download for WindowsmacOS ・ Coming soon

OpenAlchemy Engine ・ v0.6.27

PLAYGROUND

Try every modality. One API.

LLM (Chat / Instruct)

Chat · Summarize · Code

Standard chat completions endpoint — for chat, summarization, code generation, and tool use.

Read docs →
# 1) discover an online chat model — Grid's set changes constantly,
#    don't hardcode an id in your code.
MODEL=$(curl -s https://api.openalchemy.io/v1/models \
  -H "Authorization: Bearer $OPENALCHEMY_API_KEY" \
  | jq -r '.data[] | select(.online and .endpoint_type=="chat") | .id' \
  | head -1)

# 2) chat
curl https://api.openalchemy.io/v1/chat/completions \
  -H "Authorization: Bearer $OPENALCHEMY_API_KEY" \
  -H "X-Project-Id: $YOUR_PROJECT_ID" \
  -H "Content-Type: application/json" \
  -d "{
    \"model\": \"$MODEL\",
    \"messages\": [
      {\"role\": \"user\", \"content\": \"Hello, OpenAlchemy.\"}
    ]
  }"
try it

Sign in to try it

Live requests run in Grid Playground with your own account and API key. Sign up is free.

Sign in to Grid Playground →

Embedding

BetaSearch · Similarity · RAG

Turn text into vectors for semantic search, similarity, and RAG pipelines.

Read docs →
# 1) discover an online embedding model — Grid's set changes constantly,
#    don't hardcode an id in your code.
MODEL=$(curl -s https://api.openalchemy.io/v1/models \
  -H "Authorization: Bearer $OPENALCHEMY_API_KEY" \
  | jq -r '.data[] | select(.online and .endpoint_type=="embedding") | .id' \
  | head -1)

# 2) embed
curl https://api.openalchemy.io/v1/embeddings \
  -H "Authorization: Bearer $OPENALCHEMY_API_KEY" \
  -H "X-Project-Id: $YOUR_PROJECT_ID" \
  -H "Content-Type: application/json" \
  -d "{
    \"model\": \"$MODEL\",
    \"input\": \"Where is the best ramen in Tokyo?\"
  }"
try it

Sign in to try it

Live requests run in Grid Playground with your own account and API key. Sign up is free.

Sign in to Grid Playground →

Reranker

BetaReorder · Relevance scoring

Reorder search results by relevance and lift top-K precision.

Read docs →
# 1) discover an online reranker — Grid's set changes constantly,
#    don't hardcode an id in your code.
MODEL=$(curl -s https://api.openalchemy.io/v1/models \
  -H "Authorization: Bearer $OPENALCHEMY_API_KEY" \
  | jq -r '.data[] | select(.online and .endpoint_type=="rerank") | .id' \
  | head -1)

# 2) rerank — results come back as {index, relevance_score},
#    index points into your documents array
curl https://api.openalchemy.io/v1/rerank \
  -H "Authorization: Bearer $OPENALCHEMY_API_KEY" \
  -H "X-Project-Id: $YOUR_PROJECT_ID" \
  -H "Content-Type: application/json" \
  -d "{
    \"model\": \"$MODEL\",
    \"query\": \"Where is the best ramen in Tokyo?\",
    \"documents\": [
      \"Ichiran has 24-hour shops in Shibuya.\",
      \"Tsuta in Sugamo holds a Michelin star.\",
      \"The Tsukiji market is famous for sushi.\",
      \"Afuri serves yuzu shio ramen in Ebisu.\"
    ],
    \"top_n\": 4
  }"
try it

Sign in to try it

Live requests run in Grid Playground with your own account and API key. Sign up is free.

Sign in to Grid Playground →

STT (Speech → Text)

BetaTranscripts · Captions · Notes

Convert speech to text — for transcripts, captions, call analytics, and voice input.

Read docs →
# 1) discover an online STT model — Grid's set changes constantly,
#    don't hardcode an id in your code.
MODEL=$(curl -s https://api.openalchemy.io/v1/models \
  -H "Authorization: Bearer $OPENALCHEMY_API_KEY" \
  | jq -r '.data[] | select(.online and .endpoint_type=="stt") | .id' \
  | head -1)

# 2) transcribe (multipart upload)
curl https://api.openalchemy.io/v1/audio/transcriptions \
  -H "Authorization: Bearer $OPENALCHEMY_API_KEY" \
  -H "X-Project-Id: $YOUR_PROJECT_ID" \
  -F "model=$MODEL" \
  -F "file=@meeting.m4a" \
  -F "response_format=json"
try it

Sign in to try it

Live requests run in Grid Playground with your own account and API key. Sign up is free.

Sign in to Grid Playground →

TTS (Text → Speech)

BetaNarration · Readout · Voice agents

Render text as natural-sounding audio — for narration, readouts, and voice agents.

Read docs →
# 1) discover an online TTS model — Grid's set changes constantly,
#    don't hardcode an id in your code.
MODEL=$(curl -s https://api.openalchemy.io/v1/models \
  -H "Authorization: Bearer $OPENALCHEMY_API_KEY" \
  | jq -r '.data[] | select(.online and .endpoint_type=="tts") | .id' \
  | head -1)

# 2) synthesize — returns WAV bytes. Built-in voices: GET /v1/audio/voices
curl https://api.openalchemy.io/v1/audio/speech \
  -H "Authorization: Bearer $OPENALCHEMY_API_KEY" \
  -H "Content-Type: application/json" \
  -d "{
    \"model\": \"$MODEL\",
    \"voice\": \"en_alice\",
    \"input\": \"OpenAlchemy turns idle GPUs into an open AI inference grid. Run a node on a 4090 or 5090 and earn credits, or call our APIs and pay per token. Open weights, distributed compute.\"
  }" \
  --output openalchemy_pitch.wav
try it

Sign in to try it

Live requests run in Grid Playground with your own account and API key. Sign up is free.

Sign in to Grid Playground →

Image (gen / edit)

BetaGenerate · Edit

Generate images from text and edit them from reference images with Qwen-Image, Qwen-Image-Edit and FLUX 3 Klein, running on Grid GPUs.

Read docs →
curl https://api.openalchemy.io/v1/images/local/generations \
  -H "Authorization: Bearer $OPENALCHEMY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "flux3-klein-local",
    "prompt": "A neon-lit Tokyo alley at dusk, photorealistic.",
    "size": "1024x1024",
    "steps": 16,
    "response_format": "b64_json"
  }' \
  | jq -r '.data[0].b64_json' | base64 -d > image.png
try it

Sign in to try it

Live requests run in Grid Playground with your own account and API key. Sign up is free.

  • qwen-image-2512
  • qwen-image-edit-2511
  • flux3-klein-local
Sign in to Grid Playground →

Video (gen)

BetaText · Image · Reference · Audio to video, lip-sync

MiniMax H3 and Wan 2.2: shots with sound, characters that speak or sing to your audio, motion transfer, and lip-sync.

Read docs →
# 1) submit a shot — returns 202 with {id, status}
VIDEO_ID=$(curl -s https://api.openalchemy.io/v1/videos \
  -H "Authorization: Bearer $OPENALCHEMY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "minimax-h3",
    "mode": "t2v",
    "prompt": "A drone shot flying over Mt. Fuji at sunrise.",
    "duration": 5,
    "resolution": "768P",
    "aspect_ratio": "16:9"
  }' | jq -r '.id')

# 2) poll until status is "succeeded" (queued / running / succeeded / failed)
curl -s https://api.openalchemy.io/v1/videos/$VIDEO_ID \
  -H "Authorization: Bearer $OPENALCHEMY_API_KEY" | jq -r '.status'

# 3) download the mp4
curl -o shot.mp4 https://api.openalchemy.io/v1/videos/$VIDEO_ID/content \
  -H "Authorization: Bearer $OPENALCHEMY_API_KEY"
try it

Sign in to try it

Live requests run in Grid Playground with your own account and API key. Sign up is free.

  • minimax-h3
  • wan2.2-s2v
  • wan2.2-i2v
  • wan2.2-animate
  • latentsync-1.6
Sign in to Grid Playground →

Vision (VLM / OCR)

BetaImage understanding · OCR · Docs

Multimodal chat that accepts images, plus document OCR and table extraction.

Read docs →
# 1) discover an online vision-capable (VL) chat model — Grid's set
#    changes constantly, don't hardcode an id in your code.
MODEL=$(curl -s https://api.openalchemy.io/v1/models \
  -H "Authorization: Bearer $OPENALCHEMY_API_KEY" \
  | jq -r '.data[] | select(.online and .endpoint_type=="chat" and (.id | test("vl|vision"; "i"))) | .id' \
  | head -1)

# 2) ask about an image (https URL or data: URL)
curl https://api.openalchemy.io/v1/chat/completions \
  -H "Authorization: Bearer $OPENALCHEMY_API_KEY" \
  -H "X-Project-Id: $YOUR_PROJECT_ID" \
  -H "Content-Type: application/json" \
  -d "{
    \"model\": \"$MODEL\",
    \"messages\": [
      {\"role\": \"user\", \"content\": [
        {\"type\": \"text\", \"text\": \"What is in this image?\"},
        {\"type\": \"image_url\", \"image_url\": {\"url\": \"https://example.com/receipt.jpg\"}}
      ]}
    ]
  }"
try it

Sign in to try it

Live requests run in Grid Playground with your own account and API key. Sign up is free.

Sign in to Grid Playground →

WHY OPENALCHEMY

Why an API, not local inference?

Anywhere

Your agent runs anywhere, not just on the GPU box

Local runtimes tie inference to one machine. The OpenAlchemy API frees your agent to live on a phone, a Lambda, a cron, a browser — call from anywhere over HTTPS. The GPU stays on Grid.

Cost

Idle GPUs, woken up

Pay for time on aggregated idle capacity from a global pool instead of holding dedicated cloud GPUs. Same throughput, lower unit cost.

Compatibility

Standard API, zero-cost migration

Familiar /v1/chat/completions, /v1/embeddings endpoints — existing SDKs work as-is. Swap the base URL and the API key — that's it.

FOUNDATION

A foundation that holds in production

  • Industry-standard REST API
  • Per-project billing and quotas
  • Per-domain rate limits and access control
  • Auditable request logs, visible only to project owners

START TODAY

Ready to turn inference cost into something closer to alchemy?

Sign up and get 2,000 free credits ($2) — no credit card required.

Sign up for updates

Hear about new releases, features, and updates from the OpenAlchemy team.