• Chat
  • Pricing
  • Blog
  • Downloads
  • API
    • Platform overview
    • Models
    • Rankings
    • API docs
    • Platform console
  • Company
    • About
    • Contact
    • Changelog
    • Roadmap
    • Contributors
  • Chat
  • Pricing
  • Blog
  • Downloads
  • API
    • Platform overview
    • Models
    • Rankings
    • API docs
    • Platform console
  • Company
    • About
    • Contact
    • Changelog
    • Roadmap
    • Contributors
Ditfa Platform
  • Overview
  • Models
  • Compare
  • Rankings
  • Docs
Open console
  • Overview
  • Authentication & SDKs
  • Chat completions
  • Models, key, credits
  • Billing & routing
  • Free & sponsored models
  • Errors & limits
  • Going to production
  • Plan API vs Platform
Create an API keyModel catalogGet support

Guides

Free & sponsored models

Some models cost you nothing. Free use has limits, and you are never moved to a paid route without saying so.
On this page
  • Who pays
  • When a free request is refused
  • Paying the normal price

Who pays#

The gateway decides how each request is paid, using the same rule as the catalog.
ModeWhenYou pay
PaidEverything else.The sell price, from your wallet.
FreeThe model has an endpoint where the provider's cost and every Ditfa charge are zero: input, output, cache, per-request fee and minimum.$0
SponsoredAn active sponsored offer covers the model, on endpoints run by Ditfa.$0. Ditfa pays the provider.
  • A model with zero token prices but a per-request fee or a minimum charge is paid, and is never labelled Free.
  • Marketplace (seller) endpoints are never covered by a sponsorship.
  • Free use is always limited, because the provider's free quota is shared by every Ditfa customer. Limits can apply per user, per key, across all users and to requests in flight. Model pages show an offer's dates, eligibility and per-user limits.
  • An offer can cap the output of each request. A smaller max_tokens you send stays in force.
  • A free or sponsored request places no hold on your wallet and does not count against a key's spend limit. Allowed models, IP allowlists, expiry and provider policy still apply.
  • Every successful response carries x-ditfa-charge-mode with paid, free or sponsored.

When a free request is refused#

While a free or sponsored route exists for a model, a refused request gets an error and is not charged.
429 Too Many Requests
{
  "error": {
    "message": "Free access limit for this model is used up. It resets at 2026-11-01T00:00:00.000Z. To use it at the normal price from your wallet, retry with the header \"X-Ditfa-Allow-Paid: true\".",
    "type": "rate_limit_error",
    "code": "free_quota_exceeded",
    "param": null
  }
}
StatusCodeMeaningRetry?
402sponsorship_exhaustedpayment_requiredThe sponsored offer on this model has run out of budget.No
402sponsorship_endedpayment_requiredThe free or sponsored offer on this model has ended.No
402sponsorship_pausedpayment_requiredThe free or sponsored offer on this model is paused.No
403free_not_eligiblepayment_requiredThis account does not qualify for the offer yet: it needs a verified email, or it is too new.No
403free_access_disabledpayment_requiredFree access to this model is turned off.No
403sponsorship_not_startedpayment_requiredThe free or sponsored offer on this model has not started yet.No
403wallet_frozenpayment_requiredThis account's Platform wallet is frozen. Contact support.No
429free_quota_exceededrate_limit_errorYour limit on this free or sponsored model is used up.After reset
429free_capacity_exhaustedrate_limit_errorThe allowance shared by everyone on this free or sponsored model is used up.After reset
429free_concurrency_limitrate_limit_errorToo many requests at once on this offer. Wait for one to finish.Yes

When a limit has a reset time, the message says when and the x-ditfa-free-reset header carries it as an ISO 8601 time. A failed upstream call does not use up your limit.

Paused and ended offers

A paused offer keeps refusing requests, so nothing is charged by surprise. Once Ditfa closes an offer, the model goes back to normal paid routing.

Paying the normal price#

To pay the normal price when a free or sponsored request is refused, say so on that request.
curl https://gateway.ditfa.com/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $DITFA_API_KEY" \
  -H "X-Ditfa-Allow-Paid: true" \
  -d '{"model": "openai/gpt-4o-mini", "messages": [{"role": "user", "content": "Hello"}]}'
  • The opt-in only counts after a refusal. If the offer can serve the request, it stays at $0.
  • The ditfa field is removed before the request reaches the provider.
  • A paid continuation is an ordinary paid request: the wallet hold, insufficient_credits and key_limit_reached apply.
  • It needs a paid endpoint to continue on. A model with only free endpoints keeps refusing, and so do wallet_frozen and account_disabled.
  • The playground asks you each time.
PreviousBilling & routingNextErrors & limits

On this page

  • Who pays
  • When a free request is refused
  • Paying the normal price
Terms of ServicePrivacy PolicyRefund PolicyAcceptable UseContact

© 2026 Ditfa. All rights reserved.

TeamtemGitHubHuggingface
  • Chat
  • Pricing
  • Blog
  • Downloads
  • API
    • Platform overview
    • Models
    • Rankings
    • API docs
    • Platform console
  • Company
    • About
    • Contact
    • Changelog
    • Roadmap
    • Contributors
  • Chat
  • Pricing
  • Blog
  • Downloads
  • API
    • Platform overview
    • Models
    • Rankings
    • API docs
    • Platform console
  • Company
    • About
    • Contact
    • Changelog
    • Roadmap
    • Contributors
Ditfa Platform
  • Overview
  • Models
  • Compare
  • Rankings
  • Docs
Open console

Your analytics choice

Allow Google Analytics to measure visits and public-page clicks so we can improve Ditfa? Optional analytics stays off until you choose. Privacy policy