Skip to content
Primary navigation

Costs

client.admin.organization.usage.costs(UsageCostsParams { start_time, api_key_ids, bucket_width, 5 more } query, RequestOptionsoptions?): UsageCostsResponse { data, has_more, next_page, object }
GET/organization/costs

Get costs details for the organization.

ParametersExpand Collapse
query: UsageCostsParams { start_time, api_key_ids, bucket_width, 5 more }
start_time: number

Start time (Unix seconds) of the query time range, inclusive.

api_key_ids?: Array<string>

Return only costs for these API keys.

bucket_width?: "1d"

Width of each time bucket in response. Currently only 1d is supported, default to 1d.

end_time?: number

End time (Unix seconds) of the query time range, exclusive.

group_by?: Array<"project_id" | "line_item" | "api_key_id">

Group the costs by the specified fields. Support fields include project_id, line_item, api_key_id and any combination of them.

One of the following:
"project_id"
"line_item"
"api_key_id"
limit?: number

A limit on the number of buckets to be returned. Limit can range between 1 and 180, and the default is 7.

page?: string

A cursor for use in pagination. Corresponding to the next_page field from the previous response.

project_ids?: Array<string>

Return only costs for these projects.

ReturnsExpand Collapse
UsageCostsResponse { data, has_more, next_page, object }
data: Array<Data>
end_time: number
object: "bucket"
results: Array<OrganizationUsageCompletionsResult { input_tokens, num_model_requests, object, 10 more } | OrganizationUsageEmbeddingsResult { input_tokens, num_model_requests, object, 4 more } | OrganizationUsageModerationsResult { input_tokens, num_model_requests, object, 4 more } | 6 more>
One of the following:
OrganizationUsageCompletionsResult { input_tokens, num_model_requests, object, 10 more }

The aggregated completions usage details of the specific time bucket.

input_tokens: number

The aggregated number of text input tokens used, including cached tokens. For customers subscribe to scale tier, this includes scale tier tokens.

num_model_requests: number

The count of requests made to the model.

object: "organization.usage.completions.result"
output_tokens: number

The aggregated number of text output tokens used. For customers subscribe to scale tier, this includes scale tier tokens.

api_key_id?: string | null

When group_by=api_key_id, this field provides the API key ID of the grouped usage result.

batch?: boolean | null

When group_by=batch, this field tells whether the grouped usage result is batch or not.

input_audio_tokens?: number

The aggregated number of audio input tokens used, including cached tokens.

input_cached_tokens?: number

The aggregated number of text input tokens that has been cached from previous requests. For customers subscribe to scale tier, this includes scale tier tokens.

model?: string | null

When group_by=model, this field provides the model name of the grouped usage result.

output_audio_tokens?: number

The aggregated number of audio output tokens used.

project_id?: string | null

When group_by=project_id, this field provides the project ID of the grouped usage result.

service_tier?: string | null

When group_by=service_tier, this field provides the service tier of the grouped usage result.

user_id?: string | null

When group_by=user_id, this field provides the user ID of the grouped usage result.

OrganizationUsageEmbeddingsResult { input_tokens, num_model_requests, object, 4 more }

The aggregated embeddings usage details of the specific time bucket.

input_tokens: number

The aggregated number of input tokens used.

num_model_requests: number

The count of requests made to the model.

object: "organization.usage.embeddings.result"
api_key_id?: string | null

When group_by=api_key_id, this field provides the API key ID of the grouped usage result.

model?: string | null

When group_by=model, this field provides the model name of the grouped usage result.

project_id?: string | null

When group_by=project_id, this field provides the project ID of the grouped usage result.

user_id?: string | null

When group_by=user_id, this field provides the user ID of the grouped usage result.

OrganizationUsageModerationsResult { input_tokens, num_model_requests, object, 4 more }

The aggregated moderations usage details of the specific time bucket.

input_tokens: number

The aggregated number of input tokens used.

num_model_requests: number

The count of requests made to the model.

object: "organization.usage.moderations.result"
api_key_id?: string | null

When group_by=api_key_id, this field provides the API key ID of the grouped usage result.

model?: string | null

When group_by=model, this field provides the model name of the grouped usage result.

project_id?: string | null

When group_by=project_id, this field provides the project ID of the grouped usage result.

user_id?: string | null

When group_by=user_id, this field provides the user ID of the grouped usage result.

OrganizationUsageImagesResult { images, num_model_requests, object, 6 more }

The aggregated images usage details of the specific time bucket.

images: number

The number of images processed.

num_model_requests: number

The count of requests made to the model.

object: "organization.usage.images.result"
api_key_id?: string | null

When group_by=api_key_id, this field provides the API key ID of the grouped usage result.

model?: string | null

When group_by=model, this field provides the model name of the grouped usage result.

project_id?: string | null

When group_by=project_id, this field provides the project ID of the grouped usage result.

size?: string | null

When group_by=size, this field provides the image size of the grouped usage result.

source?: string | null

When group_by=source, this field provides the source of the grouped usage result, possible values are image.generation, image.edit, image.variation.

user_id?: string | null

When group_by=user_id, this field provides the user ID of the grouped usage result.

OrganizationUsageAudioSpeechesResult { characters, num_model_requests, object, 4 more }

The aggregated audio speeches usage details of the specific time bucket.

characters: number

The number of characters processed.

num_model_requests: number

The count of requests made to the model.

object: "organization.usage.audio_speeches.result"
api_key_id?: string | null

When group_by=api_key_id, this field provides the API key ID of the grouped usage result.

model?: string | null

When group_by=model, this field provides the model name of the grouped usage result.

project_id?: string | null

When group_by=project_id, this field provides the project ID of the grouped usage result.

user_id?: string | null

When group_by=user_id, this field provides the user ID of the grouped usage result.

OrganizationUsageAudioTranscriptionsResult { num_model_requests, object, seconds, 4 more }

The aggregated audio transcriptions usage details of the specific time bucket.

num_model_requests: number

The count of requests made to the model.

object: "organization.usage.audio_transcriptions.result"
seconds: number

The number of seconds processed.

formatint64
api_key_id?: string | null

When group_by=api_key_id, this field provides the API key ID of the grouped usage result.

model?: string | null

When group_by=model, this field provides the model name of the grouped usage result.

project_id?: string | null

When group_by=project_id, this field provides the project ID of the grouped usage result.

user_id?: string | null

When group_by=user_id, this field provides the user ID of the grouped usage result.

OrganizationUsageVectorStoresResult { object, usage_bytes, project_id }

The aggregated vector stores usage details of the specific time bucket.

object: "organization.usage.vector_stores.result"
usage_bytes: number

The vector stores usage in bytes.

project_id?: string | null

When group_by=project_id, this field provides the project ID of the grouped usage result.

OrganizationUsageCodeInterpreterSessionsResult { num_sessions, object, project_id }

The aggregated code interpreter sessions usage details of the specific time bucket.

num_sessions: number

The number of code interpreter sessions.

object: "organization.usage.code_interpreter_sessions.result"
project_id?: string | null

When group_by=project_id, this field provides the project ID of the grouped usage result.

OrganizationCostsResult { object, amount, api_key_id, 3 more }

The aggregated costs details of the specific time bucket.

object: "organization.costs.result"
amount?: Amount { currency, value }

The monetary value in its associated currency.

currency?: string

Lowercase ISO-4217 currency e.g. “usd”

value?: number

The numeric value of the cost.

api_key_id?: string | null

When group_by=api_key_id, this field provides the API Key ID of the grouped costs result.

line_item?: string | null

When group_by=line_item, this field provides the line item of the grouped costs result.

project_id?: string | null

When group_by=project_id, this field provides the project ID of the grouped costs result.

quantity?: number | null

When group_by=line_item, this field provides the quantity of the grouped costs result.

start_time: number
has_more: boolean
next_page: string | null
object: "page"

Costs

import OpenAI from 'openai';

const client = new OpenAI({
  adminAPIKey: process.env['OPENAI_ADMIN_KEY'], // This is the default and can be omitted
});

const response = await client.admin.organization.usage.costs({ start_time: 0 });

console.log(response.data);
{
    "object": "page",
    "data": [
        {
            "object": "bucket",
            "start_time": 1730419200,
            "end_time": 1730505600,
            "results": [
                {
                    "object": "organization.costs.result",
                    "amount": {
                        "value": 0.06,
                        "currency": "usd"
                    },
                    "line_item": null,
                    "project_id": null,
                    "api_key_id": null,
                    "quantity": null
                }
            ]
        }
    ],
    "has_more": false,
    "next_page": null
}
Returns Examples
{
    "object": "page",
    "data": [
        {
            "object": "bucket",
            "start_time": 1730419200,
            "end_time": 1730505600,
            "results": [
                {
                    "object": "organization.costs.result",
                    "amount": {
                        "value": 0.06,
                        "currency": "usd"
                    },
                    "line_item": null,
                    "project_id": null,
                    "api_key_id": null,
                    "quantity": null
                }
            ]
        }
    ],
    "has_more": false,
    "next_page": null
}