> For the complete documentation index, see [llms.txt](https://docs.otari.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.otari.ai/otari/for-integrators/api-reference/organization-pricing.md).

# Organization pricing

## List Organization Pricing

> List the organization's rate overrides.\
> \
> Readable by any member: these rates decide what the caller's own requests\
> cost, so they are not withheld from the people billed at them. Writing needs\
> an owner or admin.\
> \
> Paged on the same bounds the rest of the tenancy surface uses, because the\
> table grows a row per model per period. \`\`count\`\` is the total, so a client\
> knows whether another page is owed.\
> \
> \`\`model\_key\`\` narrows to one model, which is what an editor for that model\
> needs: every period stored for it, so it can open on the one in force and\
> refuse a new one that would overlap. Normalized the same way a write is, so\
> a legacy \`\`provider/model\`\` spelling finds the rows a canonical one stored.

```json
{"openapi":"3.1.0","info":{"title":"otari","version":"0.33.0"},"security":[{"ApiKeyAuth":[]},{"XApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"description":"Enter your API key here (sent as Otari-Key header).","in":"header","name":"Otari-Key","type":"apiKey"},"XApiKeyAuth":{"description":"Anthropic-native clients send credentials here (no Bearer prefix).","in":"header","name":"x-api-key","type":"apiKey"}},"schemas":{"OrganizationModelPricingsPublic":{"description":"One page of the organization's overrides, and how many there are in total.\n\nThe envelope shape the platform's equivalent endpoint returns, kept so the\ngenerated dashboard client stays recognizable across both trees. ``count`` is\nthe total rather than the length of ``data``, which is what lets a client tell\nwhether another page is owed.","properties":{"count":{"title":"Count","type":"integer"},"data":{"items":{"$ref":"#/components/schemas/OrganizationModelPricingPublic"},"title":"Data","type":"array"}},"required":["data","count"],"title":"OrganizationModelPricingsPublic","type":"object"},"OrganizationModelPricingPublic":{"description":"One stored rate override.","properties":{"cache_read_price_per_million":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Cache Read Price Per Million"},"cache_write_price_per_million":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Cache Write Price Per Million"},"created_at":{"format":"date-time","title":"Created At","type":"string"},"effective_from":{"format":"date-time","title":"Effective From","type":"string"},"effective_to":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}],"title":"Effective To"},"id":{"format":"uuid","title":"Id","type":"string"},"input_price_per_million":{"title":"Input Price Per Million","type":"number"},"kind":{"description":"What the row prices: 'model' (the default), or 'search' or 'fetch' for a search or fetch instance, keyed by the instance's name and priced per call. Only the deployment operator sets a search or fetch rate.","title":"Kind","type":"string"},"model_key":{"title":"Model Key","type":"string"},"organization_id":{"format":"uuid","title":"Organization Id","type":"string"},"output_price_per_million":{"title":"Output Price Per Million","type":"number"},"pricing_tiers":{"items":{"$ref":"#/components/schemas/PricingTier"},"title":"Pricing Tiers","type":"array"},"unit":{"title":"Unit","type":"string"},"updated_at":{"format":"date-time","title":"Updated At","type":"string"}},"required":["id","organization_id","kind","model_key","input_price_per_million","output_price_per_million","cache_read_price_per_million","cache_write_price_per_million","pricing_tiers","unit","effective_from","effective_to","created_at","updated_at"],"title":"OrganizationModelPricingPublic","type":"object"},"PricingTier":{"description":"Whole-request price cliff selected by total billable input tokens.","properties":{"cache_read_price_per_million":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"title":"Cache Read Price Per Million"},"cache_write_price_per_million":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"title":"Cache Write Price Per Million"},"input_price_per_million":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"title":"Input Price Per Million"},"min_input_tokens":{"exclusiveMinimum":0,"title":"Min Input Tokens","type":"integer"},"output_price_per_million":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"title":"Output Price Per Million"}},"required":["min_input_tokens"],"title":"PricingTier","type":"object"},"HTTPValidationError":{"properties":{"code":{"const":"invalid_request","description":"Stable error code, also sent as the Otari-Error-Code header.","title":"Code","type":"string"},"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"title":"Detail","type":"array"}},"title":"HTTPValidationError","type":"object"},"ValidationError":{"properties":{"ctx":{"title":"Context","type":"object"},"input":{"title":"Input"},"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"title":"Location","type":"array"},"msg":{"title":"Message","type":"string"},"type":{"title":"Error Type","type":"string"}},"required":["loc","msg","type"],"title":"ValidationError","type":"object"}}},"paths":{"/api/v1/organizations/me/pricing":{"get":{"description":"List the organization's rate overrides.\n\nReadable by any member: these rates decide what the caller's own requests\ncost, so they are not withheld from the people billed at them. Writing needs\nan owner or admin.\n\nPaged on the same bounds the rest of the tenancy surface uses, because the\ntable grows a row per model per period. ``count`` is the total, so a client\nknows whether another page is owed.\n\n``model_key`` narrows to one model, which is what an editor for that model\nneeds: every period stored for it, so it can open on the one in force and\nrefuse a new one that would overlap. Normalized the same way a write is, so\na legacy ``provider/model`` spelling finds the rows a canonical one stored.","operationId":"organization-pricing-list_organization_pricing","parameters":[{"description":"Return only this model's periods, in the canonical 'provider:model' form.","in":"query","name":"model_key","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Return only this model's periods, in the canonical 'provider:model' form.","title":"Model Key"}},{"description":"Return only overrides of this kind.","in":"query","name":"kind","required":false,"schema":{"anyOf":[{"enum":["model","search","fetch"],"type":"string"},{"type":"null"}],"description":"Return only overrides of this kind.","title":"Kind"}},{"description":"Number of records to skip","in":"query","name":"skip","required":false,"schema":{"default":0,"description":"Number of records to skip","minimum":0,"title":"Skip","type":"integer"}},{"description":"Maximum number of records to return","in":"query","name":"limit","required":false,"schema":{"default":100,"description":"Maximum number of records to return","maximum":1000,"minimum":1,"title":"Limit","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationModelPricingsPublic"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"summary":"List Organization Pricing","tags":["organization-pricing"]}}}}
```

## Create Organization Pricing

> Set the organization's rate for a model over a period.\
> \
> Refused with a 409 when the period overlaps one already stored for that model,\
> naming the period it collides with, rather than shadowing it. Refused with a\
> 403 when the deployment, not the caller's organization, holds the credential\
> that serves the model, whether through one of its own provider instances or a\
> hosted credential the bound port supplies because no usable BYO credential of\
> the organization's own covers every one of its workspaces: either way the\
> deployment settles the upstream bill, so its rate is the deployment price\
> list's rather than a tenant's.\
> \
> The key is normalized to its canonical \`\`instance:model\`\` form first, the same\
> call \`\`POST /api/v1/pricing\`\` makes, and that is what makes one model one row\
> rather than one per spelling. Stored verbatim, \`\`openai:gpt-4o\`\` and\
> \`\`openai/gpt-4o\`\` are two keys: the overlap rule would not see them as\
> colliding, and both would resolve, with the canonical one preferred, leaving\
> the other dormant until the first is deleted. Normalizing on the way in is\
> what stops that pair existing at all.

```json
{"openapi":"3.1.0","info":{"title":"otari","version":"0.33.0"},"security":[{"ApiKeyAuth":[]},{"XApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"description":"Enter your API key here (sent as Otari-Key header).","in":"header","name":"Otari-Key","type":"apiKey"},"XApiKeyAuth":{"description":"Anthropic-native clients send credentials here (no Bearer prefix).","in":"header","name":"x-api-key","type":"apiKey"}},"schemas":{"OrganizationModelPricingCreate":{"description":"Create one rate override for a model, or a search or fetch instance, for a period.","properties":{"cache_read_price_per_million":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"description":"Price per 1M cached-input tokens","title":"Cache Read Price Per Million"},"cache_write_price_per_million":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"description":"Price per 1M cache-write (creation) tokens","title":"Cache Write Price Per Million"},"effective_from":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}],"description":"ISO 8601 datetime from which this rate applies, inclusive. Defaults to now.","title":"Effective From"},"effective_to":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}],"description":"ISO 8601 datetime at which this rate stops applying, exclusive. Null leaves it open ended. Because the end is exclusive, the next period may begin at exactly this instant without overlapping.","title":"Effective To"},"input_price_per_million":{"description":"Price per 1M of the rate's unit: input tokens, requests or images","minimum":0,"title":"Input Price Per Million","type":"number"},"kind":{"anyOf":[{"enum":["model","search","fetch"],"type":"string"},{"type":"null"}],"description":"What the row prices: 'model' (the default), or 'search' or 'fetch' for a search or fetch instance, keyed by the instance's name and priced per call. Only the deployment operator sets a search or fetch rate.","title":"Kind"},"model_key":{"description":"For a model, 'provider:model', matching the key the deployment price list uses; a provider instance name is valid here ('home_lab:llama-3'), because pricing keys on the instance a request resolves to. For a search or fetch kind, the instance's name.","maxLength":255,"minLength":1,"title":"Model Key","type":"string"},"output_price_per_million":{"description":"Price per 1M output tokens; unused by a rate in requests or images","minimum":0,"title":"Output Price Per Million","type":"number"},"pricing_tiers":{"anyOf":[{"items":{"$ref":"#/components/schemas/PricingTier"},"type":"array"},{"type":"null"}],"description":"Whole-request context thresholds. Fields omitted by a tier inherit the base rate.","title":"Pricing Tiers"},"unit":{"default":"tokens","description":"What the rates are per: tokens for a model, requests or images for a non-token endpoint, each priced per million. A completion model priced per requests is charged one request per successful call.","enum":["tokens","requests","images"],"title":"Unit","type":"string"}},"required":["input_price_per_million","output_price_per_million","model_key"],"title":"OrganizationModelPricingCreate","type":"object"},"PricingTier":{"description":"Whole-request price cliff selected by total billable input tokens.","properties":{"cache_read_price_per_million":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"title":"Cache Read Price Per Million"},"cache_write_price_per_million":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"title":"Cache Write Price Per Million"},"input_price_per_million":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"title":"Input Price Per Million"},"min_input_tokens":{"exclusiveMinimum":0,"title":"Min Input Tokens","type":"integer"},"output_price_per_million":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"title":"Output Price Per Million"}},"required":["min_input_tokens"],"title":"PricingTier","type":"object"},"OrganizationModelPricingPublic":{"description":"One stored rate override.","properties":{"cache_read_price_per_million":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Cache Read Price Per Million"},"cache_write_price_per_million":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Cache Write Price Per Million"},"created_at":{"format":"date-time","title":"Created At","type":"string"},"effective_from":{"format":"date-time","title":"Effective From","type":"string"},"effective_to":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}],"title":"Effective To"},"id":{"format":"uuid","title":"Id","type":"string"},"input_price_per_million":{"title":"Input Price Per Million","type":"number"},"kind":{"description":"What the row prices: 'model' (the default), or 'search' or 'fetch' for a search or fetch instance, keyed by the instance's name and priced per call. Only the deployment operator sets a search or fetch rate.","title":"Kind","type":"string"},"model_key":{"title":"Model Key","type":"string"},"organization_id":{"format":"uuid","title":"Organization Id","type":"string"},"output_price_per_million":{"title":"Output Price Per Million","type":"number"},"pricing_tiers":{"items":{"$ref":"#/components/schemas/PricingTier"},"title":"Pricing Tiers","type":"array"},"unit":{"title":"Unit","type":"string"},"updated_at":{"format":"date-time","title":"Updated At","type":"string"}},"required":["id","organization_id","kind","model_key","input_price_per_million","output_price_per_million","cache_read_price_per_million","cache_write_price_per_million","pricing_tiers","unit","effective_from","effective_to","created_at","updated_at"],"title":"OrganizationModelPricingPublic","type":"object"},"HTTPValidationError":{"properties":{"code":{"const":"invalid_request","description":"Stable error code, also sent as the Otari-Error-Code header.","title":"Code","type":"string"},"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"title":"Detail","type":"array"}},"title":"HTTPValidationError","type":"object"},"ValidationError":{"properties":{"ctx":{"title":"Context","type":"object"},"input":{"title":"Input"},"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"title":"Location","type":"array"},"msg":{"title":"Message","type":"string"},"type":{"title":"Error Type","type":"string"}},"required":["loc","msg","type"],"title":"ValidationError","type":"object"}}},"paths":{"/api/v1/organizations/me/pricing":{"post":{"description":"Set the organization's rate for a model over a period.\n\nRefused with a 409 when the period overlaps one already stored for that model,\nnaming the period it collides with, rather than shadowing it. Refused with a\n403 when the deployment, not the caller's organization, holds the credential\nthat serves the model, whether through one of its own provider instances or a\nhosted credential the bound port supplies because no usable BYO credential of\nthe organization's own covers every one of its workspaces: either way the\ndeployment settles the upstream bill, so its rate is the deployment price\nlist's rather than a tenant's.\n\nThe key is normalized to its canonical ``instance:model`` form first, the same\ncall ``POST /api/v1/pricing`` makes, and that is what makes one model one row\nrather than one per spelling. Stored verbatim, ``openai:gpt-4o`` and\n``openai/gpt-4o`` are two keys: the overlap rule would not see them as\ncolliding, and both would resolve, with the canonical one preferred, leaving\nthe other dormant until the first is deleted. Normalizing on the way in is\nwhat stops that pair existing at all.","operationId":"organization-pricing-create_organization_pricing","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationModelPricingCreate"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationModelPricingPublic"}}},"description":"Successful Response"},"403":{"description":"The deployment holds the credential that serves the model."},"409":{"description":"The period overlaps one already stored for the model."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"summary":"Create Organization Pricing","tags":["organization-pricing"]}}}}
```

## Replace Organization Pricing

> Replace an override's rates and period.\
> \
> Future requests in the period price at the new rate; usage already settled\
> keeps the cost it was billed, because a settled cost is stored on the usage\
> row rather than recomputed.\
> \
> Refused with a 403 on the same deployment-supplied-model rule the create path\
> carries, so a row stored before that rule existed cannot be edited into a rate\
> nobody could create today, and with a 403 for a rate the deployment operator\
> set, which only the operator may change.

```json
{"openapi":"3.1.0","info":{"title":"otari","version":"0.33.0"},"security":[{"ApiKeyAuth":[]},{"XApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"description":"Enter your API key here (sent as Otari-Key header).","in":"header","name":"Otari-Key","type":"apiKey"},"XApiKeyAuth":{"description":"Anthropic-native clients send credentials here (no Bearer prefix).","in":"header","name":"x-api-key","type":"apiKey"}},"schemas":{"OrganizationModelPricingUpdate":{"description":"Replace an override's rates and period.\n\n``effective_from`` is required here, where a create defaults it to now. A\nreplacement states the whole row, so defaulting an omitted start would move a\nstored period to the present: an operator editing next quarter's rate through\na client that does not send the field would silently bring it into effect\ntoday, or collide with the period that currently applies. Stating it is the\nonly reading that cannot surprise.\n\nA full replacement rather than a patch: every rate field is present in the\nbody and an omitted optional rate is cleared, so the stored row is exactly\nwhat was sent. That is the opposite of ``POST /api/v1/pricing``, which inherits an\nomitted cache rate from the model's previous version, and deliberately so:\nthat surface versions a catalog where each write adds a row, while this one\nedits a single row in place and an inheriting patch would make the result\ndepend on what happened to be stored before.\n\n``model_key`` is absent because it is immutable. Repointing an override at\nanother model is retiring one and creating another, which is two requests.","properties":{"cache_read_price_per_million":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"description":"Price per 1M cached-input tokens","title":"Cache Read Price Per Million"},"cache_write_price_per_million":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"description":"Price per 1M cache-write (creation) tokens","title":"Cache Write Price Per Million"},"effective_from":{"description":"ISO 8601 datetime from which this rate applies, inclusive. Required on a replacement, so an omitted value cannot silently move a stored period to the present.","format":"date-time","title":"Effective From","type":"string"},"effective_to":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}],"description":"ISO 8601 datetime at which this rate stops applying, exclusive. Null leaves it open ended. Because the end is exclusive, the next period may begin at exactly this instant without overlapping.","title":"Effective To"},"input_price_per_million":{"description":"Price per 1M of the rate's unit: input tokens, requests or images","minimum":0,"title":"Input Price Per Million","type":"number"},"output_price_per_million":{"description":"Price per 1M output tokens; unused by a rate in requests or images","minimum":0,"title":"Output Price Per Million","type":"number"},"pricing_tiers":{"anyOf":[{"items":{"$ref":"#/components/schemas/PricingTier"},"type":"array"},{"type":"null"}],"description":"Whole-request context thresholds. Fields omitted by a tier inherit the base rate.","title":"Pricing Tiers"},"unit":{"default":"tokens","description":"What the rates are per: tokens for a model, requests or images for a non-token endpoint, each priced per million. A completion model priced per requests is charged one request per successful call.","enum":["tokens","requests","images"],"title":"Unit","type":"string"}},"required":["input_price_per_million","output_price_per_million","effective_from"],"title":"OrganizationModelPricingUpdate","type":"object"},"PricingTier":{"description":"Whole-request price cliff selected by total billable input tokens.","properties":{"cache_read_price_per_million":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"title":"Cache Read Price Per Million"},"cache_write_price_per_million":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"title":"Cache Write Price Per Million"},"input_price_per_million":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"title":"Input Price Per Million"},"min_input_tokens":{"exclusiveMinimum":0,"title":"Min Input Tokens","type":"integer"},"output_price_per_million":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"title":"Output Price Per Million"}},"required":["min_input_tokens"],"title":"PricingTier","type":"object"},"OrganizationModelPricingPublic":{"description":"One stored rate override.","properties":{"cache_read_price_per_million":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Cache Read Price Per Million"},"cache_write_price_per_million":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Cache Write Price Per Million"},"created_at":{"format":"date-time","title":"Created At","type":"string"},"effective_from":{"format":"date-time","title":"Effective From","type":"string"},"effective_to":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}],"title":"Effective To"},"id":{"format":"uuid","title":"Id","type":"string"},"input_price_per_million":{"title":"Input Price Per Million","type":"number"},"kind":{"description":"What the row prices: 'model' (the default), or 'search' or 'fetch' for a search or fetch instance, keyed by the instance's name and priced per call. Only the deployment operator sets a search or fetch rate.","title":"Kind","type":"string"},"model_key":{"title":"Model Key","type":"string"},"organization_id":{"format":"uuid","title":"Organization Id","type":"string"},"output_price_per_million":{"title":"Output Price Per Million","type":"number"},"pricing_tiers":{"items":{"$ref":"#/components/schemas/PricingTier"},"title":"Pricing Tiers","type":"array"},"unit":{"title":"Unit","type":"string"},"updated_at":{"format":"date-time","title":"Updated At","type":"string"}},"required":["id","organization_id","kind","model_key","input_price_per_million","output_price_per_million","cache_read_price_per_million","cache_write_price_per_million","pricing_tiers","unit","effective_from","effective_to","created_at","updated_at"],"title":"OrganizationModelPricingPublic","type":"object"},"HTTPValidationError":{"properties":{"code":{"const":"invalid_request","description":"Stable error code, also sent as the Otari-Error-Code header.","title":"Code","type":"string"},"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"title":"Detail","type":"array"}},"title":"HTTPValidationError","type":"object"},"ValidationError":{"properties":{"ctx":{"title":"Context","type":"object"},"input":{"title":"Input"},"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"title":"Location","type":"array"},"msg":{"title":"Message","type":"string"},"type":{"title":"Error Type","type":"string"}},"required":["loc","msg","type"],"title":"ValidationError","type":"object"}}},"paths":{"/api/v1/organizations/me/pricing/{pricing_id}":{"put":{"description":"Replace an override's rates and period.\n\nFuture requests in the period price at the new rate; usage already settled\nkeeps the cost it was billed, because a settled cost is stored on the usage\nrow rather than recomputed.\n\nRefused with a 403 on the same deployment-supplied-model rule the create path\ncarries, so a row stored before that rule existed cannot be edited into a rate\nnobody could create today, and with a 403 for a rate the deployment operator\nset, which only the operator may change.","operationId":"organization-pricing-replace_organization_pricing","parameters":[{"in":"path","name":"pricing_id","required":true,"schema":{"format":"uuid","title":"Pricing Id","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationModelPricingUpdate"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationModelPricingPublic"}}},"description":"Successful Response"},"403":{"description":"The deployment serves the model, or the deployment operator set the rate."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"summary":"Replace Organization Pricing","tags":["organization-pricing"]}}}}
```

## Delete Organization Pricing

> Remove an override, returning the model to the deployment price list.\
> \
> Refused with a 403 for a rate the deployment operator set, which only the\
> operator may remove.

```json
{"openapi":"3.1.0","info":{"title":"otari","version":"0.33.0"},"security":[{"ApiKeyAuth":[]},{"XApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"description":"Enter your API key here (sent as Otari-Key header).","in":"header","name":"Otari-Key","type":"apiKey"},"XApiKeyAuth":{"description":"Anthropic-native clients send credentials here (no Bearer prefix).","in":"header","name":"x-api-key","type":"apiKey"}},"schemas":{"HTTPValidationError":{"properties":{"code":{"const":"invalid_request","description":"Stable error code, also sent as the Otari-Error-Code header.","title":"Code","type":"string"},"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"title":"Detail","type":"array"}},"title":"HTTPValidationError","type":"object"},"ValidationError":{"properties":{"ctx":{"title":"Context","type":"object"},"input":{"title":"Input"},"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"title":"Location","type":"array"},"msg":{"title":"Message","type":"string"},"type":{"title":"Error Type","type":"string"}},"required":["loc","msg","type"],"title":"ValidationError","type":"object"}}},"paths":{"/api/v1/organizations/me/pricing/{pricing_id}":{"delete":{"description":"Remove an override, returning the model to the deployment price list.\n\nRefused with a 403 for a rate the deployment operator set, which only the\noperator may remove.","operationId":"organization-pricing-delete_organization_pricing","parameters":[{"in":"path","name":"pricing_id","required":true,"schema":{"format":"uuid","title":"Pricing Id","type":"string"}}],"responses":{"204":{"description":"Successful Response"},"403":{"description":"The deployment operator set the rate."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"summary":"Delete Organization Pricing","tags":["organization-pricing"]}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.otari.ai/otari/for-integrators/api-reference/organization-pricing.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
