agentsclimarketplace

Apertis api

Skill apertis-ai/apertis-skills/skills/apertis-api

Use Apertis API to access 500+ AI models with OpenAI-compatible SDK. Covers authentication, endpoints, popular model families, web search (:web suffix), the Vercel AI SDK provider, and MCP server setup.From its SKILL.md

Install
npx -y skills add apertis-ai/apertis-skills --skill apertis-api

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

5.8 KB, ~1.6k tokens by cl100k_base, as published. Nobody here has run it

Apertis API

Apertis is an OpenAI-compatible API gateway providing access to 500+ AI models from 30+ providers (Anthropic, OpenAI, Google, DeepSeek, Mistral, MiniMax, GLM, and more).

Model IDs change frequently. Always check https://apertis.ai/pricing?utm_source=apertis-skills&utm_medium=skill-doc&utm_campaign=ecosystem for the current model list and pricing.

Quick Start — One Line to Switch

from openai import OpenAI

client = OpenAI(
    base_url="https://api.apertis.ai/v1",
    api_key="YOUR_APERTIS_KEY"
)
import OpenAI from "openai";

const openai = new OpenAI({
  baseURL: "https://api.apertis.ai/v1",
  apiKey: process.env.APERTIS_API_KEY,
});

Authentication

API Endpoints

All OpenAI-compatible endpoints are supported:

EndpointDescription
POST /v1/chat/completionsChat completions (main endpoint)
POST /v1/messagesNative Anthropic Messages API format
POST /v1/embeddingsText embeddings
POST /v1/images/generationsImage generation
POST /v1/audio/speechText-to-speech
POST /v1/audio/transcriptionsSpeech-to-text
GET /v1/modelsList all available models

Model Families

Apertis carries the latest models from every major provider. Use GET /v1/models or visit https://apertis.ai/pricing?utm_source=apertis-skills&utm_medium=skill-doc&utm_campaign=ecosystem for the full current list.

ProviderFamilyNotes
Anthropicclaude-sonnet-4-*, claude-opus-4-*, claude-haiku-4-*Best for coding
OpenAIgpt-5-*, gpt-4o, o4-miniGPT and reasoning series
Googlegemini-3-*, gemini-2.5-*Long context, multimodal
DeepSeekdeepseek-v3, deepseek-r1Cost-efficient, strong reasoning
MiniMaxminimax-m1Long context alternative
GLMglm-4.5-*Multilingual, cost-efficient
Metallama-4-*, llama-3.3-*Open-weight models
Mistralmistral-medium-*, mistral-small-*European, privacy-focused

Web Search — :web Suffix

Add :web to any model ID to enable real-time web search:

response = client.chat.completions.create(
    model="gpt-4o:web",
    messages=[{"role": "user", "content": "What happened in AI news today?"}]
)

# Response includes a top-level web_sources array (on the response, not inside choices[].message)
sources = response.web_sources
# [{"title": "...", "url": "...", "snippet": "..."}]

Note: :free models cannot use :web suffix.

Example: Chat Completion

response = client.chat.completions.create(
    model="claude-sonnet-4-6",   # check apertis.ai/pricing for latest Claude Sonnet ID
    messages=[
        {"role": "system", "content": "You are a helpful coding assistant."},
        {"role": "user", "content": "Write a Python function to reverse a linked list."}
    ]
)
print(response.choices[0].message.content)

Example: Streaming

stream = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "Explain async/await in JavaScript"}],
    stream=True
)
for chunk in stream:
    if chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="")

Example: Embeddings

response = client.embeddings.create(
    model="text-embedding-3-small",
    input="Your text to embed"
)
vector = response.data[0].embedding

Vercel AI SDK — Native Provider

For TypeScript apps and agents built on the Vercel AI SDK (v5+), use the native Apertis provider instead of the raw OpenAI SDK. Works with OpenCode, Kilo Code, Cursor, and any AI-SDK-based tool.

npm install @apertis/ai-sdk-provider ai
import { apertis } from "@apertis/ai-sdk-provider";
import { generateText } from "ai";

const { text } = await generateText({
  model: apertis("claude-sonnet-4-6"),   // any of 500+ models
  prompt: "Explain quantum computing in simple terms.",
});

Streaming, tool calling, and embeddings all work through the standard AI SDK functions (streamText, tool, embed). Set APERTIS_API_KEY in the environment, or pass it explicitly:

import { createApertis } from "@apertis/ai-sdk-provider";

const apertis = createApertis({ apiKey: process.env.APERTIS_API_KEY });

MCP Server Setup

Use Apertis directly from Claude Code, Cursor, or any MCP-compatible client:

{
  "mcpServers": {
    "apertis": {
      "command": "npx",
      "args": ["-y", "@apertis/mcp-server"],
      "env": {
        "APERTIS_API_KEY": "YOUR_APERTIS_KEY"
      }
    }
  }
}

Place in Claude Code (~/.claude.json), Cursor (.cursor/mcp.json), or Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json).

Subscription Plans

PlanPriceBest For
Lite$12/moBasic coding, hobby projects
Pro$25/moDaily development
Plus$60/moHeavy usage
Max$200/moUnlimited / teams

PAYG (pay-as-you-go) is also available with no monthly commitment.

Resources

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Gives 0 of the 12 instructions most mcp tooling skills give in ~1.6k tokens

Counted across 780 of the 1,136 authors here whose files we hold, read 2026-09-06

  • Use Zod for input validationin 34 of 780, across 21 files
  • Use stdio for local clientsin 27 of 780, across 10 files
  • Restart Claude Code after configurationin 26 of 780, across 23 files
  • Verify MCP server connection before using toolsin 23 of 780, across 17 files
  • Define input schemas for every toolin 20 of 780, across 11 files
  • Use Streamable HTTP for remote clientsin 18 of 780, across 8 files
  • Pin SDK version in package.jsonin 17 of 780, across 6 files
  • Keep server logic independent of transportin 16 of 780, across 6 files
  • Verify SDK methods against official documentationin 15 of 780, across 5 files
  • Format evaluation results as an XML filein 15 of 780, across 12 files
  • Test servers using the MCP Inspectorin 15 of 780, across 14 files
  • Create ten complex and independent evaluation questionsin 14 of 780, across 11 files

Said here and by no other author read

  • Use OpenAI-compatible SDK for API access
  • Set base URL to the Apertis API endpoint
  • Check pricing page for current model IDs
  • Add :web suffix to model IDs for search
  • Use native provider for Vercel AI SDK

Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.