OpenRouter

Skyfire currently supports all OpenRouter completions endpoints.

Please refer to the OpenRouter documentation for more advanced usage examples.


 curl -s -D /dev/stderr https://api.skyfire.xyz/proxy/openrouter/v1/chat/completions \
        -H "Content-Type: application/json" \
        -H "Skyfire-API-Key: $SKYFIRE_API_KEY" \
        -d '{
    "model": "openai/gpt-4o-mini",
    "messages": [
      {"role": "user", "content": "What is the meaning of life?"}
    ]
  }'

Typescript

fetch("https://api.skyfire.xyz/proxy/openrouter/v1/chat/completions", {
  method: "POST",
  headers: {
    "Skyfire-API-key": `${SKYFIRE_API_KEY}`,
    "HTTP-Referer": `${YOUR_SITE_URL}`, // Optional, for including your app on openrouter.ai rankings.
    "X-Title": `${YOUR_SITE_NAME}`, // Optional. Shows in rankings on openrouter.ai.
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "model": "openai/gpt-3.5-turbo",
    "messages": [
      {"role": "user", "content": "What is the meaning of life?"},
    ],
  })
});

OpenAI SDK (Typescript)

import OpenAI from 'openai'

const openrouter = new OpenAI({
  apiKey: '',
  baseURL: 'https://api.skyfire.xyz/proxy/openrouter/v1',
  defaultHeaders: {
    'skyfire-api-key': process.env.SKYFIRE_API_KEY
  }
})

async function main(): Promise<void> {
  const stream = await openrouter.chat.completions.create({
    model: 'google/gemma-2-9b-it',
    stream: true,
    messages: [{ role: 'user', content: 'tell me a story' }]
  })

  for await (const chunk of stream) {
    process.stdout.write(chunk.choices[0].delta.content ?? '')
  }
}

main()

Python

import requests
import os
import json

SKYFIRE_API_KEY = os.getenv("SKYFIRE_API_KEY")

response = requests.post(
  url="https://api.skyfire.xyz/proxy/openrouter/v1/chat/completions",
  headers={
    "Skyfire-API-Key": SKYFIRE_API_KEY",
    "Content-Type": "application/json",
    "HTTP-Referer": f"{YOUR_SITE_URL}", # Optional, for including your app on openrouter.ai rankings.
    "X-Title": f"{YOUR_APP_NAME}", # Optional. Shows in rankings on openrouter.ai.
  },
  data=json.dumps({
    "model": "openai/gpt-3.5-turbo", # Optional
    "messages": [
      { "role": "user", "content": "What is the meaning of life?" }
    ]
  })
)
print(response.json())

OpenAI SDK (Python)

import os
from openai import OpenAI

SKYFIRE_API_KEY = os.getenv("SKYFIRE_API_KEY")

client = OpenAI(
    default_headers={"Skyfire-API-Key": SKYFIRE_API_KEY},
    api_key="",
    base_url="https://api.skyfire.xyz/proxy/openrouter/v1",
)


completion = client.chat.completions.create(
    model="openai/gpt-4o-mini",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "What is the meaning of life?"},
    ],
)

print(completion.choices[0].message.content)