SDKs and AI tools

Almost every SDK and AI tool supports OpenAI- or Anthropic-compatible APIs. Fill in three things: base URL, API key, and model ID.

Three settings

SettingValue
Base URLhttps://api.markas.ai.id/v1 for the OpenAI format. https://api.markas.ai.id (without /v1) for the Anthropic format.
API keyAn mt-... key from the dashboard.
ModelAn id from the Models page or GET /v1/models.

Also set the output token limit and context window in the tool to match the model's max_output_tokens and context_length. Tools that send no max_tokens make the balance hold use the model limit, so a small balance can be rejected with 402.

SDKs and frameworks

SDKSetting
OpenAI PythonOpenAI(base_url="https://api.markas.ai.id/v1", api_key=...)
OpenAI Node.jsnew OpenAI({ baseURL: "https://api.markas.ai.id/v1", apiKey })
Anthropic Pythonanthropic.Anthropic(base_url="https://api.markas.ai.id", api_key=...)
Anthropic Node.jsnew Anthropic({ baseURL: "https://api.markas.ai.id", apiKey })
LangChain (Python)ChatOpenAI(model="MODEL_ID", base_url="https://api.markas.ai.id/v1", api_key=...)
LangChain.jsnew ChatOpenAI({ model: "MODEL_ID", apiKey, configuration: { baseURL: "https://api.markas.ai.id/v1" } })
LlamaIndexOpenAILike(model="MODEL_ID", api_base="https://api.markas.ai.id/v1", api_key=..., is_chat_model=True)
Vercel AI SDKcreateOpenAICompatible({ name: "markasai", baseURL: "https://api.markas.ai.id/v1", apiKey })

Many tools read the standard OpenAI SDK environment variables:

Terminal
export OPENAI_BASE_URL="https://api.markas.ai.id/v1"
export OPENAI_API_KEY="$MARKASAI_API_KEY"

AI tools for developers

ToolFormatNotes
CursorOpenAIOverride OpenAI Base URL in Settings, Models. Chat and Agent use MarkasAI models; Tab stays on Cursor's model.
Claude CodeAnthropicUnofficial: built for Claude models. See the environment variables below.
Codex CLIResponsesCustom provider in ~/.codex/config.toml with wire_api = "responses".
Cline, Roo Code, Kilo CodeOpenAIPick the OpenAI Compatible provider.
Continue, OpenCode, ZedOpenAIOpenAI provider with a custom base URL in the tool's config file.
AiderOpenAIOPENAI_API_BASE and OPENAI_API_KEY variables, model with the openai/ prefix.
Open WebUIOpenAIAdd an OpenAI connection in the Connections menu.
OpenClaw, Hermes AgentOpenAI or AnthropicCustom provider in the tool's config file.

Claude Code

Terminal
export ANTHROPIC_BASE_URL="https://api.markas.ai.id"
export ANTHROPIC_AUTH_TOKEN="$MARKASAI_API_KEY"
export ANTHROPIC_MODEL="MODEL_ID"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="SMALL_MODEL_ID"
export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1
claude

Codex CLI

~/.codex/config.toml
model = "MODEL_ID"
model_provider = "markasai"

[model_providers.markasai]
name = "MarkasAI"
base_url = "https://api.markas.ai.id/v1"
env_key = "MARKASAI_API_KEY"
wire_api = "responses"

If Codex does not know the model ID, add model_context_window and model_max_output_tokens from /v1/models to the provider block.

Common symptoms

SymptomCause and fix
404 on /v1/v1/...Anthropic tools append /v1 themselves. Use the base URL without /v1.
404 on /chat/completionsThe OpenAI base URL is missing /v1.
The tool rejects the key (expects sk-...)Use an OpenAI Compatible option or a custom provider that does not check the key prefix.
CORS or Failed to fetch in a web appBrowser calls are unsupported. Call from your server.
The stream stops midwayA proxy, VPN, or antivirus is buffering SSE. Turn buffering off, or try without streaming.