Model guide

apifare tools for OpenAI GPT

OpenAI GPT is a model, not an app, so it gets apifare through the app or code that runs it. Either way it gets one prepaid key for every API it needs, under hard caps and a kill switch.

Get a key

1 · Run OpenAI GPT in an MCP client

The quickest route: OpenAI Codex CLI runs OpenAI models and speaks MCP, and so do Cursor and GitHub Copilot.

2 · Or hand OpenAI GPT apifare as tools over HTTP

If your own code calls OpenAI GPT through OpenAI's OpenAI-compatible API, give the model two tools. When it asks for one, your code runs it against apifare with your token.

import json, os, requests
from openai import OpenAI

llm = OpenAI(
    api_key=os.environ["OPENAI_API_KEY"],
)
APIFARE = "https://apifare.com"
auth = {"authorization": "Bearer " + os.environ["APIPAY_TOKEN"]}

def tool(name, description, properties):
    return {"type": "function", "function": {
        "name": name, "description": description,
        "parameters": {"type": "object", "properties": properties,
                       "required": list(properties)}}}

tools = [
    tool("apifare_search", "Find a paid API capability by what it does",
         {"q": {"type": "string"}}),
    tool("apifare_call", "Call a capability by slug with its params",
         {"slug": {"type": "string"}, "params": {"type": "object"}}),
]

def run(name, args):
    if name == "apifare_search":
        r = requests.get(APIFARE + "/v1/search",
                         params={"q": args["q"]}, headers=auth)
    else:
        r = requests.post(APIFARE + "/v1/call/" + args["slug"],
                          json=args["params"], headers=auth)
    return r.json()

messages = [{"role": "user",
             "content": "Search the web for today's top AI news"}]
while True:
    msg = llm.chat.completions.create(
        model="<model>", messages=messages, tools=tools,
    ).choices[0].message
    if not msg.tool_calls:
        print(msg.content)
        break
    messages.append(msg)
    for call in msg.tool_calls:
        result = run(call.function.name, json.loads(call.function.arguments))
        messages.append({"role": "tool", "tool_call_id": call.id,
                         "content": json.dumps(result)})

Set OPENAI_API_KEY and APIPAY_TOKEN, then replace <model> with a tool-calling model from OpenAI's model list.

3 · Stay in control

Set daily or monthly caps per agent, and keep the kill switch ready. Both are checked before a call is dispatched. When the balance runs out, apifare_call returns an HTTP 402 with a top-up link your app can show; the error catalog lists every stop and what unblocks it. Exact per-call prices are on /capabilities.

Endpoint and tool-calling format checked against OpenAI's docs on 2026-09-12. Markdown version: /models/gpt.md.

More model guides

DeepSeek · Kimi · Qwen · Gemini