List your models on TrustedRouter.
Send us your company and integration profile. We will review your privacy commitments, validate your routes, publish working models, monitor availability, and keep pricing current.
Tell us who operates the service.
Email providers@trustedrouter.com from your company domain. The application must identify the legal entity, responsible contacts, privacy terms, and service being offered.
- Company identity. Legal name, brand or DBA, website, jurisdiction, entity type, and DUNS number.
- Company details. Registered address, operating address if different, business phone, company registration number, EIN or VAT ID, and DUNS number. Never send a personal tax identifier.
- Leadership. CEO name and title, authorized contract signer, and ownership or parent company where applicable.
- Primary contact. Name, title, company email, and direct business phone for the person responsible for the application.
- Operational contacts. Named technical, security and privacy, legal, billing, and incident-response contacts with titles, company email addresses, and phone numbers where available.
- Policies. Privacy policy, terms, DPA, subprocessor list, security or trust center, and compliance reports or certifications.
- Data handling. Retention period, training use, zero-retention terms, serving regions, data residency, and confidential-compute or attestation evidence.
Do not email an API key or any other credential. After the application is reviewed, TrustedRouter will arrange a separate secure handoff for a dedicated, revocable inference key.
Legal company name:
Brand / DBA:
Website:
Jurisdiction and entity type:
DUNS number:
Company registration number:
Registered address:
Operating address:
Business phone:
EIN / VAT / corporate tax ID:
CEO:
Authorized contract signer:
Primary contact name:
Primary contact title:
Primary contact email:
Primary contact phone:
Technical contact name / title / email / phone:
Security contact name / title / email / phone:
Privacy contact name / title / email / phone:
Legal contact name / title / email / phone:
Billing contact name / title / email / phone:
Incident contact name / title / email / phone:
Privacy policy:
Terms of service:
DPA:
Subprocessor list:
Security / trust center:
Compliance reports:
Data retention:
Training use:
ZDR terms:
Serving regions / residency:
Confidential compute evidence:
API base URL:
API documentation:
Catalog endpoint:
Deprecation feed or contact:
API key: DO NOT INCLUDE
Describe the API without sending secrets.
- OpenAI-compatible base URL. One HTTPS base such as
https://api.provider.com/v1. - Authentication format. Describe bearer authentication and supported credential scopes without including a live key.
- Canonical catalog. Serve the exact response below from
GET /v1/models. - Chat inference. Serve OpenAI-compatible requests from
POST /v1/chat/completions. - Operational limits. Document rate limits, capacity tiers, timeout behavior, error contracts, maintenance notices, and support escalation.
Keys travel separately.
The marketplace application is non-secret business and technical information. Once accepted, create a dedicated production credential restricted to model discovery and inference.
- Use a revocable key created only for TrustedRouter.
- Exclude account administration, billing, user management, and key creation permissions.
- Deliver it only through the secure channel arranged during review.
- Never place the key in email, support tickets, documents, chat, source code, or the catalog response.
Copy this output exactly.
Do not design a custom catalog or pricing format. Return one unpaginated JSON document from GET /v1/models. Put availability, capabilities, prices, and lifecycle in each model row.
- Use exact decimal strings. Every price is USD per one million tokens. Use
"0.50", never a JSON float. - Use
nullwhen a cache rate does not apply. Do not omit required fields. - Use lowercase stable IDs. The format is
provider/model-name. Never recycle an ID for a different model. - Use UTC timestamps. Lifecycle timestamps use RFC 3339, for example
2026-08-05T00:00:00Z. - Use one row per billable tier. If rates or capabilities differ, publish a distinct stable model ID for that tier.
Download the JSON Schema and validate the response before emailing us.
{
"object": "list",
"data": [
{
"id": "acme/atlas-70b",
"object": "model",
"owned_by": "acme",
"name": "Atlas 70B",
"type": "chat",
"context_length": 131072,
"max_output_tokens": 16384,
"endpoints": [
"chat/completions"
],
"input_modalities": [
"text"
],
"output_modalities": [
"text"
],
"capabilities": {
"streaming": true,
"tools": true,
"structured_output": true,
"reasoning": false,
"prompt_caching": false
},
"pricing": {
"currency": "USD",
"unit": "per_1m_tokens",
"input": "0.50",
"output": "1.50",
"cached_input": null,
"cache_write": null,
"minimum_request": "0"
},
"lifecycle": {
"status": "active",
"deprecation_at": null,
"retirement_at": null,
"replacement_model_id": null
}
}
]
}
export PROVIDER_API_BASE="https://api.provider.com/v1"
export PROVIDER_API_KEY="replace-me"
curl --fail --silent --show-error \
"$PROVIDER_API_BASE/models" \
-H "Authorization: Bearer $PROVIDER_API_KEY"
curl --fail --silent --show-error \
"$PROVIDER_API_BASE/chat/completions" \
-H "Authorization: Bearer $PROVIDER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "acme/atlas-70b",
"messages": [{"role": "user", "content": "Reply PONG"}],
"max_tokens": 8,
"stream": false
}'
These two calls must work.
The catalog request must match the published schema. The chat request must return a normal OpenAI chat completion with nonzero token usage.
- HTTP
200withContent-Type: application/json choices[0].message.contentcontainsPONGusage.prompt_tokens,usage.completion_tokens, andusage.total_tokensare integers- The response
modelidentifies the model that actually ran
If your API cannot implement this contract, email the same address with the incompatibility. Do not invent a second format.
Contract v1 covers chat-capable models. Include embeddings, image generation, audio, or other APIs in the email and we will map them separately.
Make launches and price changes automatic.
Web pricing pages are useful for people. TrustedRouter also needs structured sources that software can ingest without guessing.
A stable API base URL.
OpenAI compatibility is preferred. Document chat, Responses, streaming, tools, vision, embeddings, timeouts, and rate-limit behavior where supported.
https://api.provider.com/v1
A live models endpoint.
Return the canonical unpaginated response above. TrustedRouter reads every model from the single document.
GET /v1/models
Prices live with each model.
Publish input, output, cache, and minimum request rates in each model row. No separate pricing endpoint is required.
pricing.unit = "per_1m_tokens"
We verify before we list.
- Validate authentication and retrieve the live model catalog.
- Match model IDs to exact prices and supported capabilities.
- Run non-streaming and streaming probes against representative models.
- Publish provider and model pages only for callable routes.
- Refresh availability and pricing automatically as your APIs change.
Help developers choose your routes.
- Data retention, training, and zero-retention policy links
- Confidential-compute or attestation documentation
- Serving regions and data-residency constraints
- Rate limits, capacity tiers, and expected error contracts
- A machine-readable deprecation feed, or an operations contact
Ready to connect?
Send the company and integration profile, without credentials, to providers@trustedrouter.com. We will reply with review questions and secure key-delivery instructions.
Apply to the marketplaceQuestions
What API format works best?
An OpenAI-compatible HTTPS API is the fastest path. Include the inference base URL, authentication format, supported request types, streaming behavior, and any model-specific capability differences.
Why do you require model and pricing APIs?
TrustedRouter refreshes provider catalogs automatically. The canonical GET /v1/models response includes availability, capabilities, pricing, and lifecycle in one document, so a separate pricing API is not required.
How should we provide an API key?
Do not include any API key or credential in the application email. After review, TrustedRouter will arrange a separate secure handoff for a dedicated, revocable production key scoped only to inference and model discovery.