Skip to main content
Sail is a drop-in replacement for OpenAI-compatible inference providers, supporting the OpenAI Responses (/v1/responses) and Chat Completions (/v1/chat/completions) APIs. Switching from OpenAI, or any OpenAI-compatible provider, is just a configuration change.
Want an agent to do it?Copy a migration prompt, paste it into your coding agent, and then use the guide below to review the changes.

1. Get your API key

Sign up at the Sail dashboard and create an API key. Export it where your agent and app can read it:
export SAIL_API_KEY="YOUR_SAIL_API_KEY"

2. See what changes

Already calling the OpenAI Responses API? The request and response are identical:
Sail Responses API
import os

from openai import OpenAI

client = OpenAI(
    base_url="https://api.your-provider.com/v1",  
    base_url="https://api.sailresearch.com/v1",  
    api_key=os.environ["PROVIDER_API_KEY"],  
    api_key=os.environ["SAIL_API_KEY"],  
)

response = client.responses.create(
    model="<your-current-model>",  
    model="<sail-model>",  
    input="Explain the key ideas behind transformers.",
)
print(response.output_text)

Notes

  • Synchronous by default. responses.create blocks and returns the completed response, exactly like OpenAI. Sail is throughput-optimized, so requests can run longer than a typical low-latency API — for very long jobs you can optionally pass background=True to get an ID back immediately and poll, avoiding HTTP timeouts. See the Quickstart.
  • Pick a completion window to trade off cost against turnaround. The default standard window suits most workloads; reach for priority when latency matters or flex for cheap background batches. See Completion windows.

Next steps

Quickstart

Make your first request against Sail.

Models

Browse supported models and pick a replacement.

Completion windows

How the latency-for-price tradeoff works.

Pricing

Per-token rates by model and completion window.

Cost calculator

Estimate the cost of running your agent on Sail vs other providers.

Support

Email us if you hit anything unexpected.