Skip to main content
Many providers expose an OpenAI-compatible API. You reach them with the OpenAI SDK by pointing base_url at their endpoint — so the OpenInference OpenAI instrumentor traces them the same way it traces OpenAI itself. One setup covers all of them.

Setup

1

Install the instrumentor and the OTLP exporter

pip install openinference-instrumentation-openai openai \
  opentelemetry-sdk opentelemetry-exporter-otlp-proto-http
2

Point the exporter at AgentMark and instrument OpenAI

Use your AgentMark API key and app id from project settings.
from openinference.instrumentation.openai import OpenAIInstrumentor
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.sdk.trace.export import BatchSpanProcessor
from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter

provider = TracerProvider()
provider.add_span_processor(
    BatchSpanProcessor(
        OTLPSpanExporter(
            endpoint="https://api.agentmark.co/v1/traces",
            headers={
                "Authorization": "<YOUR_API_KEY>",  # raw key, no "Bearer" prefix
                "X-Agentmark-App-Id": "<YOUR_APP_ID>",
            },
        )
    )
)

OpenAIInstrumentor().instrument(tracer_provider=provider)
3

Point the OpenAI client at your provider

Set base_url to the provider’s endpoint and use the client as usual. Each call arrives in AgentMark as a span. See Traces and logs.
from openai import OpenAI

client = OpenAI(
    base_url="https://openrouter.ai/api/v1",  # your provider's endpoint
    api_key="<PROVIDER_API_KEY>",
)
client.chat.completions.create(
    model="meta-llama/llama-3.3-70b-instruct",
    messages=[{"role": "user", "content": "What is the capital of France?"}],
)

Common endpoints

Providerbase_url
OpenRouterhttps://openrouter.ai/api/v1
Together AIhttps://api.together.xyz/v1
Fireworks AIhttps://api.fireworks.ai/inference/v1
DeepSeekhttps://api.deepseek.com
xAI (Grok)https://api.x.ai/v1
Cerebrashttps://api.cerebras.ai/v1
Ollama (local)http://localhost:11434/v1
Any provider with an OpenAI-compatible chat completions endpoint works the same way.

What AgentMark captures

These calls produce the same OpenInference spans as a direct OpenAI call — model, token usage, input and output messages, tool calls, and span kind are mapped onto AgentMark’s normalized trace fields, and token counts feed cost tracking. See OpenInference for the full attribute mapping.

Next steps

OpenAI

The direct OpenAI provider page

Traces and logs

Explore traces once they arrive

Have questions?

Reach out any time: