Docs
Status
OverviewQuickstartSetup promptsThe core loopAuthenticationOverviewModelsThe waterfallPlansAdding modelsData controlsContent moderationKYCResellersOpenAI compatibilityEmbeddingsAnthropic APIErrorsIntegrate the gatewayCost APIRequest log APIAccount APICoding agentsSwitch gatewaysCredits & billingSpend & intelligenceSpend APITelemetryBecome a providerProvider guideAPI reference

Get started

  • Overview
  • Quickstart
  • Setup prompts
  • The core loop
  • Authentication

Guides

  • Overview
  • Models
  • The waterfall
  • Plans
  • Adding models
  • Data controls
  • Content moderation
  • KYC
  • Resellers
  • OpenAI compatibility
  • Embeddings
  • Anthropic API
  • Errors

Integrations

  • Integrate the gateway
  • Cost API
  • Request log API
  • Account API
  • Coding agents
  • Switch gateways

Billing & usage

  • Credits & billing
  • Spend & intelligence
  • Spend API
  • Telemetry

Providers

  • Become a provider
  • Provider guide

Reference

  • API reference

Guide

Resellers

Serve your own customers through Experiential. Tag every request with your end customer's safety_identifier and one customer's abuse is attributed to that customer, not to your organization.

Who this is for

You are a reseller when requests from many of your own customers reach us through your API keys: an app, an agent platform, or another gateway. Without attribution, every request looks like it came from your organization, so moderation decisions about one of your customers land on all of them.

Reseller attribution is granted by our team after a short review, the same review as KYC. Email founders@experientiallabs.ai with your organization ID, what you resell, roughly how many end customers you serve, and how you verify them. Until it is granted, the rules below do not apply and your organization is treated as one customer, whatever identifiers you send.

Send a safety_identifier on every request

Set safety_identifier to a stable ID for the end customer who triggered the request. It is the OpenAI field for exactly this purpose; on the Chat Completions and Responses APIs we read it, and fall back to the deprecated user field when it is absent. Use the same value for the same customer on every request.

POST /v1/chat/completions
curl https://api-pr-1230.preview.experientiallabs.ai/v1/chat/completions \
-H "Authorization: Bearer xpl_..." \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-v4.1-flash-uncensored",
"safety_identifier": "cust_7f3a9c",
"messages": [{"role": "user", "content": "hello"}]
}'
  • Use an opaque ID, such as a hash of your internal user ID. Never send an email address, a name or any other personal data.
  • It stays with us. We never forward it to the model provider. We store it with the request for attribution and usage reporting, and moderation keeps only a SHA-256 of it.
  • It is in your usage export as attribution_label, so you can bill or audit per customer; see the Cost API.

How moderation treats a reseller

Requests to uncensored models are reviewed against our content moderation policies. For an organization with reseller attribution, flags are counted per end customer:

  • One end customer crosses the threshold: that customer is suspended from uncensored models. Requests carrying their safety_identifier get 403 uncensored_end_user_suspended. Your organization and your other customers keep working, and the suspended customer can still use every other model.
  • A flagged request has no identifier: it counts against your organization, as if you sent it yourself.
  • Many end customers are flagged: once flagged requests come from 10 or more distinct end customers within the review window, your organization is suspended (403 uncensored_access_suspended). A pattern like that means abuse is not being stopped upstream of us, and it is also what rotating identifiers to avoid the per-customer threshold looks like.
Handle the 403 in your app. When a request returns uncensored_end_user_suspended, stop sending uncensored requests for that customer and review their activity on your side. Retrying under a new identifier counts toward the organization limit above.

Reseller terms

Reseller attribution is offered on these conditions:

  1. You are responsible for your end customers' use of the platform, and you pass our content moderation policies and terms through to them.
  2. Each safety_identifier identifies exactly one of your end customers, stays stable for that customer, and contains no personal data.
  3. You never issue new identifiers to a customer to get around a suspension, and you never share one identifier across customers to dilute flags.
  4. You act on suspensions we report for your end customers, and you keep enough records to tell us which of your customers an identifier belongs to if we ask.
  5. We may remove reseller attribution, or suspend your organization, if these conditions are not met.

Appeals

If you believe an end customer was suspended in error, email founders@experientiallabs.ai with your organization ID, the customer's safety_identifier and a request ID from the refused request. We review each case by hand and lift the suspension for that customer only. An organization suspension is appealed the usual way, described in Content moderation.

PreviousKYCNextOpenAI compatibility