Fireworks AI Gateway API

The Gateway API from Fireworks AI — 126 operation(s) for gateway.

Operations 198

GET /v1/accounts List Accounts #
POST /v1/auth/refresh Refresh a session JWT before expiry with a fresh TTL. #
POST /v1/creditCodes:redeem APIs for credit codes. Redeem Credit Code #
POST /v1/validateModelConfig Validate Model Config #
GET /v1/accounts/{account_id} Get Account #
GET /v1/accounts/{account_id}/accountUsageFilterOptions Distinct filter values for an account/time range (serverless + dedicated; for FE, separate -yet mirrors GetAccountUsage). #
GET /v1/accounts/{account_id}/auditLogs List User Audit Logs #
GET /v1/accounts/{account_id}/batchInferenceJobs List Batch Inference Jobs #
POST /v1/accounts/{account_id}/batchInferenceJobs Create Batch Inference Job #
GET /v1/accounts/{account_id}/batchInferenceJobs/{batch_inference_job_id} Get Batch Inference Job #
DELETE /v1/accounts/{account_id}/batchInferenceJobs/{batch_inference_job_id} Delete Batch Inference Job #
GET /v1/accounts/{account_id}/billing/summary Get billing summary information for an account #
GET /v1/accounts/{account_id}/billingUsage Get account usage (serverless and dedicated deployments). Optionally filter by usage type via the usage_type field. If not specified, returns all usage types. TODO: rename this to #
POST /v1/accounts/{account_id}/checkpoints/{checkpoint_id}:promote Promote a checkpoint to a model. The checkpoint is identified by account + snapshot ID; the trainer job ID is passed in the request body to resolve the GCS bucket. #
GET /v1/accounts/{account_id}/clusters List Clusters #
POST /v1/accounts/{account_id}/clusters Create Cluster #
GET /v1/accounts/{account_id}/clusters/{cluster_id} Get Cluster #
PATCH /v1/accounts/{account_id}/clusters/{cluster_id} Update Cluster #
DELETE /v1/accounts/{account_id}/clusters/{cluster_id} Delete Cluster #
GET /v1/accounts/{account_id}/clusters/{cluster_id}:getConnectionInfo Get Cluster Connection Info #
GET /v1/accounts/{account_id}/creditRedemptions List Credit Redemptions #
GET /v1/accounts/{account_id}/datasets List Datasets #
POST /v1/accounts/{account_id}/datasets Create Dataset #
GET /v1/accounts/{account_id}/datasets/{dataset_id} Get Dataset #
PATCH /v1/accounts/{account_id}/datasets/{dataset_id} Update Dataset #
DELETE /v1/accounts/{account_id}/datasets/{dataset_id} Delete Dataset #
GET /v1/accounts/{account_id}/datasets/{dataset_id}:getDownloadEndpoint Get Dataset Download Endpoint #
POST /v1/accounts/{account_id}/datasets/{dataset_id}:getUploadEndpoint Get Dataset Upload Endpoint #
POST /v1/accounts/{account_id}/datasets/{dataset_id}:splitDataset #
POST /v1/accounts/{account_id}/datasets/{dataset_id}:validateUpload Validate Dataset Upload #
GET /v1/accounts/{account_id}/deployedModels List LoRAs #
POST /v1/accounts/{account_id}/deployedModels Load LoRA #
GET /v1/accounts/{account_id}/deployedModels/{deployed_model_id} Get LoRA #
PATCH /v1/accounts/{account_id}/deployedModels/{deployed_model_id} Update LoRA #
DELETE /v1/accounts/{account_id}/deployedModels/{deployed_model_id} Unload LoRA #
GET /v1/accounts/{account_id}/deploymentShapes List Deployment Shapes #
POST /v1/accounts/{account_id}/deploymentShapes CRUD APIs for deployment shape. Create Deployment Shape #
GET /v1/accounts/{account_id}/deploymentShapes/{deployment_shape_id} Get Deployment Shape #
PATCH /v1/accounts/{account_id}/deploymentShapes/{deployment_shape_id} Update Deployment Shape #
DELETE /v1/accounts/{account_id}/deploymentShapes/{deployment_shape_id} Delete Deployment Shape #
GET /v1/accounts/{account_id}/deploymentShapes/{deployment_shape_id}/versions List Deployment Shapes Versions #
GET /v1/accounts/{account_id}/deploymentShapes/{deployment_shape_id}/versions/{version_id} Get Deployment Shape Version #
PATCH /v1/accounts/{account_id}/deploymentShapes/{deployment_shape_id}/versions/{version_id} Update Deployment Shape Version #
GET /v1/accounts/{account_id}/deployments List Deployments #
POST /v1/accounts/{account_id}/deployments Create Deployment #
GET /v1/accounts/{account_id}/deployments/{deployment_id} Get Deployment #
PATCH /v1/accounts/{account_id}/deployments/{deployment_id} Update Deployment #
DELETE /v1/accounts/{account_id}/deployments/{deployment_id} Delete Deployment #
GET /v1/accounts/{account_id}/deployments/{deployment_id}/ledger Get ledger #
DELETE /v1/accounts/{account_id}/deployments/{deployment_id}/ledger Reset ledger for hot load #
GET /v1/accounts/{account_id}/deployments/{deployment_id}/shards List Deployment Shards #
GET /v1/accounts/{account_id}/deployments/{deployment_id}/terminationMessage Get termination message from deployment #
GET /v1/accounts/{account_id}/deployments/{deployment_id}:metrics Get Deployment Metrics (Deprecated) #
PATCH /v1/accounts/{account_id}/deployments/{deployment_id}:scale Scale Deployment to a specific number of replicas or to zero #
POST /v1/accounts/{account_id}/deployments/{deployment_id}:undelete Undelete Deployment #
GET /v1/accounts/{account_id}/developerPasses List Developer Passes #
POST /v1/accounts/{account_id}/developerPasses CRUD APIs for developer passes. Create Developer Pass #
GET /v1/accounts/{account_id}/developerPasses/{developer_passe_id} Get Developer Pass #
PATCH /v1/accounts/{account_id}/developerPasses/{developer_passe_id} Update Developer Pass #
GET /v1/accounts/{account_id}/dpoJobs #
POST /v1/accounts/{account_id}/dpoJobs #
GET /v1/accounts/{account_id}/dpoJobs/{dpo_job_id} #
DELETE /v1/accounts/{account_id}/dpoJobs/{dpo_job_id} #
POST /v1/accounts/{account_id}/dpoJobs/{dpo_job_id}:cancel Cancel Dpo Job #
GET /v1/accounts/{account_id}/dpoJobs/{dpo_job_id}:getMetricsFileEndpoint #
POST /v1/accounts/{account_id}/dpoJobs/{dpo_job_id}:resume Resume Dpo Job #
GET /v1/accounts/{account_id}/evaluationJobs List Evaluation Jobs #
POST /v1/accounts/{account_id}/evaluationJobs Create Evaluation Job #
GET /v1/accounts/{account_id}/evaluationJobs/{evaluation_job_id} Get Evaluation Job #
DELETE /v1/accounts/{account_id}/evaluationJobs/{evaluation_job_id} Delete Evaluation Job #
GET /v1/accounts/{account_id}/evaluationJobs/{evaluation_job_id}:getExecutionLogEndpoint Get Evaluation Job execution logs (stream log endpoint + tracing IDs). #
GET /v1/accounts/{account_id}/evaluations List Evaluations #
POST /v1/accounts/{account_id}/evaluations Create Evaluation #
GET /v1/accounts/{account_id}/evaluations/{evaluation_id} Get Evaluation #
DELETE /v1/accounts/{account_id}/evaluations/{evaluation_id} TODO: Add Update Evaluation Update Evaluation rpc UpdateEvaluation(UpdateEvaluationRequest) returns (Evaluation) { option (google.api.http) = { patch: "/v1/{evaluation.name=account #
POST /v1/accounts/{account_id}/evaluations/{evaluation_id}:preview Preview an evaluation with sample data #
POST /v1/accounts/{account_id}/evaluations:validateAssertions Validate evaluation assertions #
GET /v1/accounts/{account_id}/evaluators List Evaluators #
POST /v1/accounts/{account_id}/evaluators Create Evaluator (Deprecated) #
GET /v1/accounts/{account_id}/evaluators/{evaluator_id} Get Evaluator #
PATCH /v1/accounts/{account_id}/evaluators/{evaluator_id} Update Evaluator #
DELETE /v1/accounts/{account_id}/evaluators/{evaluator_id} Delete Evaluator #
GET /v1/accounts/{account_id}/evaluators/{evaluator_id}/versions List Evaluator Revisions #
GET /v1/accounts/{account_id}/evaluators/{evaluator_id}/versions/{version_id} CRUD APIs for evaluator revisions (AIP-162). Get Evaluator Revision #
DELETE /v1/accounts/{account_id}/evaluators/{evaluator_id}/versions/{version_id} Delete Evaluator Revision (deletes alias if name is an alias per AIP-162) #
POST /v1/accounts/{account_id}/evaluators/{evaluator_id}/versions/{version_id}:alias Alias Evaluator Revision - assign or update a user-specified alias #
POST /v1/accounts/{account_id}/evaluators/{evaluator_id}/versions/{version_id}:rollback Rollback Evaluator to a specific revision #
GET /v1/accounts/{account_id}/evaluators/{evaluator_id}:getBuildLogEndpoint Get Evaluator Build Log Endpoint #
GET /v1/accounts/{account_id}/evaluators/{evaluator_id}:getSourceCodeSignedUrl Get Evaluator Source Code Endpoint #
POST /v1/accounts/{account_id}/evaluators/{evaluator_id}:getUploadEndpoint Get Evaluator Upload Endpoint #
POST /v1/accounts/{account_id}/evaluators/{evaluator_id}:validateUpload Validate Evaluator Upload #
POST /v1/accounts/{account_id}/evaluators:previewEvaluator #
POST /v1/accounts/{account_id}/evaluatorsV2 Create Evaluator #
GET /v1/accounts/{account_id}/genericDeploymentTypes List the generic deployment types under an account #
POST /v1/accounts/{account_id}/genericDeploymentTypes Create Generic Deployment Type #
GET /v1/accounts/{account_id}/genericDeploymentTypes/{generic_deployment_type_id} List all generic deployment type version #
PATCH /v1/accounts/{account_id}/genericDeploymentTypes/{generic_deployment_type_id} Update Generic Deployment Type #
DELETE /v1/accounts/{account_id}/genericDeploymentTypes/{generic_deployment_type_id} Delete Generic Deployment Type #
GET /v1/accounts/{account_id}/genericDeploymentTypes/{generic_deployment_type_id}/versions/{version_id} Get generic deployment type version #
DELETE /v1/accounts/{account_id}/genericDeploymentTypes/{generic_deployment_type_id}/versions/{version_id} Delete the generic deployment type version #
GET /v1/accounts/{account_id}/genericDeployments List all the generic deployments under an account #
POST /v1/accounts/{account_id}/genericDeployments Create Generic Deployment #
GET /v1/accounts/{account_id}/genericDeployments/{generic_deployment_id} Get Generic Deployment #
PATCH /v1/accounts/{account_id}/genericDeployments/{generic_deployment_id} Create Generic Deployment #
DELETE /v1/accounts/{account_id}/genericDeployments/{generic_deployment_id} Delete Generic Deployment #
GET /v1/accounts/{account_id}/identityProviders List Identity Providers #
POST /v1/accounts/{account_id}/identityProviders Create Identity Provider #
GET /v1/accounts/{account_id}/identityProviders/{identity_provider_id} Get Identity Provider #
PATCH /v1/accounts/{account_id}/identityProviders/{identity_provider_id} Update Identity Provider #
DELETE /v1/accounts/{account_id}/identityProviders/{identity_provider_id} Delete Identity Provider #
GET /v1/accounts/{account_id}/models List Models #
POST /v1/accounts/{account_id}/models Create Model #
GET /v1/accounts/{account_id}/models/{model_id} Get Model #
PATCH /v1/accounts/{account_id}/models/{model_id} Update Model #
DELETE /v1/accounts/{account_id}/models/{model_id} Delete Model #
POST /v1/accounts/{account_id}/models/{model_id}/versions CRUD APIs for model versions. Create Model Version #
POST /v1/accounts/{account_id}/models/{model_id}/versions/{version_id}:deploy Deploy Model Version #
GET /v1/accounts/{account_id}/models/{model_id}/versions:count Returns the number of model versions. #
GET /v1/accounts/{account_id}/models/{model_id}:getDownloadEndpoint Get Model Download Endpoint #
POST /v1/accounts/{account_id}/models/{model_id}:getUploadEndpoint Get Model Upload Endpoint #
POST /v1/accounts/{account_id}/models/{model_id}:import Transfer model from S3 to GCP storage #
POST /v1/accounts/{account_id}/models/{model_id}:prepare Prepare Model for different precisions #
GET /v1/accounts/{account_id}/models/{model_id}:validateUpload Validate Model Upload #
GET /v1/accounts/{account_id}/policySettings Returns the singleton PolicySettings for the given account. #
PATCH /v1/accounts/{account_id}/policySettings Updates the per-account PolicySettings singleton. #
GET /v1/accounts/{account_id}/pricingPlans List Pricing Plans #
GET /v1/accounts/{account_id}/pricingPlans/{pricing_plan_id} CRUD APIs for pricing plans. Get Pricing Plan #
GET /v1/accounts/{account_id}/quotas List Quotas #
GET /v1/accounts/{account_id}/quotas/{quota_id} Get Quota #
PATCH /v1/accounts/{account_id}/quotas/{quota_id} Update Quota #
GET /v1/accounts/{account_id}/reinforcementFineTuningJobs List Reinforcement Fine-tuning Jobs #
POST /v1/accounts/{account_id}/reinforcementFineTuningJobs Create Reinforcement Fine-tuning Job #
GET /v1/accounts/{account_id}/reinforcementFineTuningJobs/{reinforcement_fine_tuning_job_id} Get Reinforcement Fine-tuning Job #
PATCH /v1/accounts/{account_id}/reinforcementFineTuningJobs/{reinforcement_fine_tuning_job_id} Update Reinforcement Fine-tuning Job #
DELETE /v1/accounts/{account_id}/reinforcementFineTuningJobs/{reinforcement_fine_tuning_job_id} Delete Reinforcement Fine-tuning Job #
POST /v1/accounts/{account_id}/reinforcementFineTuningJobs/{reinforcement_fine_tuning_job_id}:cancel Cancel Reinforcement Fine-tuning Job #
POST /v1/accounts/{account_id}/reinforcementFineTuningJobs/{reinforcement_fine_tuning_job_id}:debug Debug Reinforcement Fine-tuning Job #
GET /v1/accounts/{account_id}/reinforcementFineTuningJobs/{reinforcement_fine_tuning_job_id}:getMetricsFileEndpoint #
POST /v1/accounts/{account_id}/reinforcementFineTuningJobs/{reinforcement_fine_tuning_job_id}:resume Resume Reinforcement Fine-tuning Job #
GET /v1/accounts/{account_id}/rlorTrainerJobs List Reinforcement Fine-tuning Steps #
POST /v1/accounts/{account_id}/rlorTrainerJobs Create Reinforcement Fine-tuning Step #
GET /v1/accounts/{account_id}/rlorTrainerJobs/{rlor_trainer_job_id} Get Reinforcement Fine-tuning Step #
DELETE /v1/accounts/{account_id}/rlorTrainerJobs/{rlor_trainer_job_id} Delete Reinforcement Fine-tuning Step #
GET /v1/accounts/{account_id}/rlorTrainerJobs/{rlor_trainer_job_id}/checkpoints List checkpoints for an RLOR Trainer Job #
GET /v1/accounts/{account_id}/rlorTrainerJobs/{rlor_trainer_job_id}/publicLogs Get a signed URL for the public trainer logs of an RLOR Trainer Job. #
POST /v1/accounts/{account_id}/rlorTrainerJobs/{rlor_trainer_job_id}:cancel Cancel Rlor Trainer Job #
POST /v1/accounts/{account_id}/rlorTrainerJobs/{rlor_trainer_job_id}:executeTrainStep Execute one training step for keep-alive Reinforcement Fine-tuning Step #
POST /v1/accounts/{account_id}/rlorTrainerJobs/{rlor_trainer_job_id}:resume Resume Rlor Trainer Job #
GET /v1/accounts/{account_id}/routers List Routers #
POST /v1/accounts/{account_id}/routers Create Router #
GET /v1/accounts/{account_id}/routers/{router_id} CRUD APIs for routers. Get Router #
PATCH /v1/accounts/{account_id}/routers/{router_id} Update Router #
DELETE /v1/accounts/{account_id}/routers/{router_id} Delete Router #
GET /v1/accounts/{account_id}/secrets List Secrets #
POST /v1/accounts/{account_id}/secrets #
GET /v1/accounts/{account_id}/secrets/{secret_id} Get Secret #
PATCH /v1/accounts/{account_id}/secrets/{secret_id} #
DELETE /v1/accounts/{account_id}/secrets/{secret_id} #
GET /v1/accounts/{account_id}/serverlessRateLimits Lists effective global rate limits for shared serverless pool deployments (fireworks-owned). Values reflect configured limits as observed in production monitoring. #
GET /v1/accounts/{account_id}/serverlessTokenUsage Serverless pool token throughput (tokens per minute) by time bucket and base model, from production usage metrics. #
GET /v1/accounts/{account_id}/supervisedFineTuningJobs List Supervised Fine-tuning Jobs #
POST /v1/accounts/{account_id}/supervisedFineTuningJobs Create Supervised Fine-tuning Job #
GET /v1/accounts/{account_id}/supervisedFineTuningJobs/{supervised_fine_tuning_job_id} Get Supervised Fine-tuning Job #
DELETE /v1/accounts/{account_id}/supervisedFineTuningJobs/{supervised_fine_tuning_job_id} Delete Supervised Fine-tuning Job #
POST /v1/accounts/{account_id}/supervisedFineTuningJobs/{supervised_fine_tuning_job_id}:cancel Cancel Supervised Fine-tuning Job #
POST /v1/accounts/{account_id}/supervisedFineTuningJobs/{supervised_fine_tuning_job_id}:resume Resume Supervised Fine-tuning Job #
POST /v1/accounts/{account_id}/supervisedFineTuningJobs:estimateCost Estimate the cost of a Supervised Fine-tuning Job #
GET /v1/accounts/{account_id}/trails List Trails #
POST /v1/accounts/{account_id}/trails Create Trail #
GET /v1/accounts/{account_id}/trails/{trail_id} CRUD APIs for trails. Get Trail #
PATCH /v1/accounts/{account_id}/trails/{trail_id} Update Trail #
DELETE /v1/accounts/{account_id}/trails/{trail_id} Delete Trail #
GET /v1/accounts/{account_id}/trails/{trail_id}:getMetrics Get Trail Metrics (trace counts, token usage from tracing service) #
GET /v1/accounts/{account_id}/trainingSessionJobs List training session jobs for an account. #
POST /v1/accounts/{account_id}/trainingSessionJobs Create a training session job that binds an account to a shared trainer. #
GET /v1/accounts/{account_id}/trainingSessionJobs/{training_session_job_id} Get a training session job. #
DELETE /v1/accounts/{account_id}/trainingSessionJobs/{training_session_job_id} Delete a training session job and cascade-clean its child sessions and routes. #
GET /v1/accounts/{account_id}/trainingSessionJobs/{training_session_job_id}/trainingSessions List training sessions under a training session job. #
POST /v1/accounts/{account_id}/trainingSessionJobs/{training_session_job_id}/trainingSessions Create a training session under a training session job. #
GET /v1/accounts/{account_id}/trainingSessionJobs/{training_session_job_id}/trainingSessions/{training_session_id} Get a training session. #
POST /v1/accounts/{account_id}/trainingSessionJobs/{training_session_job_id}/trainingSessions/{training_session_id}:loadState Load or switch the LoRA adapter state for a training session. #
GET /v1/accounts/{account_id}/trainingShapes List Training Shapes #
POST /v1/accounts/{account_id}/trainingShapes CRUD APIs for training shape. Create Training Shape #
GET /v1/accounts/{account_id}/trainingShapes/{training_shape_id} Get Training Shape #
PATCH /v1/accounts/{account_id}/trainingShapes/{training_shape_id} Update Training Shape #
DELETE /v1/accounts/{account_id}/trainingShapes/{training_shape_id} Delete Training Shape #
GET /v1/accounts/{account_id}/trainingShapes/{training_shape_id}/versions List Training Shapes Versions #
GET /v1/accounts/{account_id}/trainingShapes/{training_shape_id}/versions/{version_id} Get Training Shape Version #
PATCH /v1/accounts/{account_id}/trainingShapes/{training_shape_id}/versions/{version_id} Update Training Shape Version #
GET /v1/accounts/{account_id}/users List Users #
POST /v1/accounts/{account_id}/users Create User #
GET /v1/accounts/{account_id}/users/{user_id} Get User #
PATCH /v1/accounts/{account_id}/users/{user_id} Update User #
GET /v1/accounts/{account_id}/users/{user_id}/apiKeys List API Keys #
POST /v1/accounts/{account_id}/users/{user_id}/apiKeys Create API Key #
GET /v1/accounts/{account_id}/users/{user_id}/apiKeys/accounts/{account_id}/users/{user_id} Get API Key #
POST /v1/accounts/{account_id}/users/{user_id}/apiKeys:delete Delete API Key #
POST /v1/accounts/{account_id}:testeval Similar to preview evaluation, but no need to create the evaluation entry first. #

Documentation

Specifications

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/fireworks-ai-gateway-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

fireworks-ai-gateway-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Fireworks AI Anthropic Compatible Messages anthropic-messages.openapi_other Gateway API
  description: Anthropic-compatible Messages API endpoint for Fireworks AI inference
  version: 1.0.0
servers:
- url: https://api.fireworks.ai/inference
security:
- BearerAuth: []
tags:
- name: Gateway
paths:
  /v1/accounts:
    get:
      summary: List Accounts
      operationId: Gateway_ListAccounts
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/gatewayListAccountsResponse'
      parameters:
      - name: pageSize
        description: 'The maximum number of accounts to return. The maximum page_size is 200,

          values above 200 will be coerced to 200.

          If unspecified, the default is 50.'
        in: query
        required: false
        schema:
          type: integer
          format: int32
      - name: pageToken
        description: 'A page token, received from a previous ListAccounts call. Provide this

          to retrieve the subsequent page. When paginating, all other parameters

          provided to ListAccounts must match the call that provided the page

          token.'
        in: query
        required: false
        schema:
          type: string
      - name: filter
        description: 'Only accounts satisfying the provided filter (if specified) will be

          returned. See https://google.aip.dev/160 for the filter grammar.'
        in: query
        required: false
        schema:
          type: string
      - name: orderBy
        description: 'Not supported.

          Accounts will be returned ordered by `name`.'
        in: query
        required: false
        schema:
          type: string
      - name: readMask
        description: The fields to be returned in the response. If empty or "*", all fields will be returned.
        in: query
        required: false
        schema:
          type: string
      tags:
      - Gateway
  /v1/auth/refresh:
    post:
      summary: Refresh a session JWT before expiry with a fresh TTL.
      operationId: Gateway_RefreshSessionToken
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/gatewayRefreshSessionTokenResponse'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/gatewayRefreshSessionTokenRequest'
        description: Request to refresh an existing session JWT before it expires.
        required: true
      tags:
      - Gateway
  /v1/creditCodes:redeem:
    post:
      summary: 'APIs for credit codes.

        Redeem Credit Code'
      operationId: Gateway_RedeemCreditCode
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/gatewayRedeemCreditCodeResponse'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/gatewayRedeemCreditCodeRequest'
        description: RedeemCreditCodeRequest is the request to redeem a credit code for an account.
        required: true
      tags:
      - Gateway
  /v1/validateModelConfig:
    post:
      summary: Validate Model Config
      operationId: Gateway_ValidateModelConfig
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                type: object
                properties: {}
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/gatewayValidateModelConfigRequest'
        required: true
      tags:
      - Gateway
  /v1/accounts/{account_id}:
    get:
      summary: Get Account
      operationId: Gateway_GetAccount
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/gatewayAccount'
      parameters:
      - name: readMask
        description: The fields to be returned in the response. If empty or "*", all fields will be returned.
        in: query
        required: false
        schema:
          type: string
      - name: account_id
        in: path
        required: true
        description: The Account Id
        schema:
          type: string
      tags:
      - Gateway
  /v1/accounts/{account_id}/accountUsageFilterOptions:
    get:
      summary: Distinct filter values for an account/time range (serverless + dedicated; for FE, separate -yet mirrors GetAccountUsage).
      operationId: Gateway_GetAccountUsageFilterOptions
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/gatewayGetAccountUsageFilterOptionsResponse'
      parameters:
      - name: startTime
        in: query
        required: true
        schema:
          type: string
          format: date-time
      - name: endTime
        in: query
        required: true
        schema:
          type: string
          format: date-time
      - name: usageType
        description: "If not specified, loads filter options for both usage streams.\n\n - SERVERLESS: Serverless filter dimensions only (model_name, api_key_id, annotations.*).\n - DEDICATED_DEPLOYMENT: Dedicated deployment filter dimensions (deployment_name, annotations.team, .project, .environment)."
        in: query
        required: false
        schema:
          type: string
          enum:
          - USAGE_TYPE_UNSPECIFIED
          - SERVERLESS
          - DEDICATED_DEPLOYMENT
          default: USAGE_TYPE_UNSPECIFIED
      - name: account_id
        in: path
        required: true
        description: The Account Id
        schema:
          type: string
      tags:
      - Gateway
  /v1/accounts/{account_id}/auditLogs:
    get:
      summary: List User Audit Logs
      operationId: Gateway_ListAuditLogs
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/gatewayListAuditLogsResponse'
      parameters:
      - name: startTime
        description: 'Start time of the audit logs to retrieve.

          If unspecified, the default is 30 days before now.'
        in: query
        required: false
        schema:
          type: string
          format: date-time
      - name: endTime
        description: 'End time of the audit logs to retrieve.

          If unspecified, the default is the current time.'
        in: query
        required: false
        schema:
          type: string
          format: date-time
      - name: email
        description: 'Optional.

          Filter audit logs for user email associated with the account.'
        in: query
        required: false
        schema:
          type: string
      - name: pageSize
        description: 'The maximum number of audit logs to return. The maximum page_size is 200,

          values above 200 will be coerced to 200.

          If unspecified, the default is 10.'
        in: query
        required: false
        schema:
          type: integer
          format: int32
      - name: pageToken
        description: 'A page token, received from a previous ListAuditLogs call. Provide this

          to retrieve the subsequent page. When paginating, all other parameters

          provided to ListAuditLogs must match the call that provided the page

          token.'
        in: query
        required: false
        schema:
          type: string
      - name: filter
        description: Unused but required to use existing ListRequest functionality.
        in: query
        required: false
        schema:
          type: string
      - name: orderBy
        description: Unused but required to use existing ListRequest functionality.
        in: query
        required: false
        schema:
          type: string
      - name: readMask
        description: The fields to be returned in the response. If empty or "*", all fields will be returned.
        in: query
        required: false
        schema:
          type: string
      - name: account_id
        in: path
        required: true
        description: The Account Id
        schema:
          type: string
      tags:
      - Gateway
  /v1/accounts/{account_id}/batchInferenceJobs:
    get:
      summary: List Batch Inference Jobs
      operationId: Gateway_ListBatchInferenceJobs
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/gatewayListBatchInferenceJobsResponse'
      parameters:
      - name: pageSize
        description: 'The maximum number of batch inference jobs to return. The maximum page_size is 200,

          values above 200 will be coerced to 200.

          If unspecified, the default is 50.'
        in: query
        required: false
        schema:
          type: integer
          format: int32
      - name: pageToken
        description: 'A page token, received from a previous ListBatchInferenceJobs call. Provide this

          to retrieve the subsequent page. When paginating, all other parameters

          provided to ListBatchInferenceJobs must match the call that provided the page

          token.'
        in: query
        required: false
        schema:
          type: string
      - name: filter
        description: 'Only jobs satisfying the provided filter (if specified) will be

          returned. See https://google.aip.dev/160 for the filter grammar.'
        in: query
        required: false
        schema:
          type: string
      - name: orderBy
        description: 'A comma-separated list of fields to order by. e.g. "foo,bar"

          The default sort order is ascending. To specify a descending order for a

          field, append a " desc" suffix. e.g. "foo desc,bar"

          Subfields are specified with a "." character. e.g. "foo.bar"

          If not specified, the default order is by "created_time".'
        in: query
        required: false
        schema:
          type: string
      - name: readMask
        description: The fields to be returned in the response. If empty or "*", all fields will be returned.
        in: query
        required: false
        schema:
          type: string
      - name: account_id
        in: path
        required: true
        description: The Account Id
        schema:
          type: string
      tags:
      - Gateway
    post:
      summary: Create Batch Inference Job
      operationId: Gateway_CreateBatchInferenceJob
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/gatewayBatchInferenceJob'
      parameters:
      - name: batchInferenceJobId
        description: ID of the batch inference job.
        in: query
        required: false
        schema:
          type: string
      - name: account_id
        in: path
        required: true
        description: The Account Id
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/gatewayBatchInferenceJob'
        required: true
      tags:
      - Gateway
  /v1/accounts/{account_id}/batchInferenceJobs/{batch_inference_job_id}:
    get:
      summary: Get Batch Inference Job
      operationId: Gateway_GetBatchInferenceJob
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/gatewayBatchInferenceJob'
      parameters:
      - name: readMask
        description: The fields to be returned in the response. If empty or "*", all fields will be returned.
        in: query
        required: false
        schema:
          type: string
      - name: account_id
        in: path
        required: true
        description: The Account Id
        schema:
          type: string
      - name: batch_inference_job_id
        in: path
        required: true
        description: The Batch Inference Job Id
        schema:
          type: string
      tags:
      - Gateway
    delete:
      summary: Delete Batch Inference Job
      operationId: Gateway_DeleteBatchInferenceJob
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                type: object
                properties: {}
      parameters:
      - name: account_id
        in: path
        required: true
        description: The Account Id
        schema:
          type: string
      - name: batch_inference_job_id
        in: path
        required: true
        description: The Batch Inference Job Id
        schema:
          type: string
      tags:
      - Gateway
  /v1/accounts/{account_id}/billing/summary:
    get:
      summary: Get billing summary information for an account
      operationId: Gateway_GetBillingSummary
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/gatewayGetBillingSummaryResponse'
      parameters:
      - name: startTime
        description: 'Start time for the billing period.

          Note: Costs are aggregated daily. Only the date portion (YYYY-MM-DD) is used;

          the time portion is ignored. For example, 2025-10-05T07:18:29Z and

          2025-10-05T23:59:59Z are treated the same as 2025-10-05T00:00:00Z.'
        in: query
        required: true
        schema:
          type: string
          format: date-time
      - name: endTime
        description: "End time for the billing period (exclusive).\nNote: Costs are aggregated daily. Only the date portion (YYYY-MM-DD) is used;\nthe time portion is ignored. Costs for the end date are NOT included.\nFor example, to get costs for Oct 5 and Oct 6, use:\n  start_time: 2025-10-05T00:00:00Z\n  end_time: 2025-10-07T00:00:00Z (Oct 7 is excluded)"
        in: query
        required: true
        schema:
          type: string
          format: date-time
      - name: account_id
        in: path
        required: true
        description: The Account Id
        schema:
          type: string
      tags:
      - Gateway
  /v1/accounts/{account_id}/billingUsage:
    get:
      summary: 'Get account usage (serverless and dedicated deployments).

        Optionally filter by usage type via the usage_type field. If not specified, returns all usage types.

        TODO: rename this to /accountUsage'
      operationId: Gateway_GetAccountUsage
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/gatewayAccountUsage'
      parameters:
      - name: startTime
        description: 'Costs returned are inclusive of `start_time`.

          start_time must be before end_time.'
        in: query
        required: true
        schema:
          type: string
          format: date-time
      - name: endTime
        description: 'Costs returned are exclusive of `end_time`.

          end_time must not be more than 31 days after start_time.'
        in: query
        required: true
        schema:
          type: string
          format: date-time
      - name: usageType
        description: "Usage type to query usage for\nIf not specified, returns all usage types (both serverless and dedicated deployments).\n\n - USAGE_TYPE_UNSPECIFIED: Default value. When specified (or when usage_type field is not set),\nreturns usage data for all deployment types: both serverless requests and dedicated deployments.\n - SERVERLESS: Returns only serverless usage data.\nFilters the response to include only usage from serverless API requests.\n - DEDICATED_DEPLOYMENT: Returns only dedicated deployment usage data.\nFilters the response to include only usage from dedicated deployments."
        in: query
        required: false
        schema:
          type: string
          enum:
          - USAGE_TYPE_UNSPECIFIED
          - SERVERLESS
          - DEDICATED_DEPLOYMENT
          default: USAGE_TYPE_UNSPECIFIED
      - name: timezone
        description: 'IANA timezone identifier for daily aggregation (e.g., "America/Los_Angeles", "Europe/London").

          When specified, the returned data will be aggregated into daily buckets based on this timezone.

          If not specified or empty, defaults to "UTC".

          See: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones'
        in: query
        required: false
        schema:
          type: string
      - name: groupBy
        description: 'Dimension to group usage by (at most one value; repeated for wire compatibility).

          Serverless: "model_name", "api_key_id", "annotations.team", "annotations.project", "annotations.environment".

          Dedicated: "deployment_name", "accelerator_type", and the same annotation keys.

          When usage_type is unspecified, dimensions that apply only to the other stream are ignored there

          (e.g. "deployment_name" and "accelerator_type" are ignored for serverless; "model_name" and "api_key_id" for dedicated).

          Example: ["annotations.team"] or ["model_name"].

          If empty: serverless aggregates by model name; dedicated defaults to deployment and accelerator type.'
        in: query
        required: false
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: filter
        description: This is a request variable of the map type. The query format is "map_name[key]=value", e.g. If the map name is Age, the key type is string, and the value type is integer, the query parameter is expressed as Age["bob"]=18
        in: query
        required: false
        schema:
          type: string
      - name: account_id
        in: path
        required: true
        description: The Account Id
        schema:
          type: string
      tags:
      - Gateway
  /v1/accounts/{account_id}/checkpoints/{checkpoint_id}:promote:
    post:
      summary: 'Promote a checkpoint to a model.

        The checkpoint is identified by account + snapshot ID; the trainer job ID

        is passed in the request body to resolve the GCS bucket.'
      operationId: Gateway_PromoteCheckpoint
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/gatewayPromoteCheckpointResponse'
      parameters:
      - name: account_id
        in: path
        required: true
        description: The Account Id
        schema:
          type: string
      - name: checkpoint_id
        in: path
        required: true
        description: The Checkpoint Id
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GatewayPromoteCheckpointBody'
        required: true
      tags:
      - Gateway
  /v1/accounts/{account_id}/clusters:
    get:
      summary: List Clusters
      operationId: Gateway_ListClusters
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/gatewayListClustersResponse'
      parameters:
      - name: pageSize
        description: 'The maximum number of clusters to return. The maximum page_size is 200,

          values above 200 will be coerced to 200.

          If unspecified, the default is 50.'
        in: query
        required: false
        schema:
          type: integer
          format: int32
      - name: pageToken
        description: 'A page token, received from a previous ListClusters call. Provide this

          to retrieve the subsequent page. When paginating, all other parameters

          provided to ListClusters must match the call that provided the page

          token.'
        in: query
        required: false
        schema:
          type: string
      - name: filter
        description: 'Only clusters satisfying the provided filter (if specified) will be

          returned. See https://google.aip.dev/160 for the filter grammar.'
        in: query
        required: false
        schema:
          type: string
      - name: orderBy
        description: 'A comma-separated list of fields to order by. e.g. "foo,bar"

          The default sort order is ascending. To specify a descending order for a

          field, append a " desc" suffix. e.g. "foo desc,bar"

          Subfields are specified with a "." character. e.g. "foo.bar"

          If not specified, the default order is by "name".'
        in: query
        required: false
        schema:
          type: string
      - name: readMask
        description: The fields to be returned in the response. If empty or "*", all fields will be returned.
        in: query
        required: false
        schema:
          type: string
      - name: account_id
        in: path
        required: true
        description: The Account Id
        schema:
          type: string
      tags:
      - Gateway
    post:
      summary: Create Cluster
      operationId: Gateway_CreateCluster
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/gatewayCluster'
      parameters:
      - name: account_id
        in: path
        required: true
        description: The Account Id
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GatewayCreateClusterBody'
        required: true
      tags:
      - Gateway
  /v1/accounts/{account_id}/clusters/{cluster_id}:
    get:
      summary: Get Cluster
      operationId: Gateway_GetCluster
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/gatewayCluster'
      parameters:
      - name: readMask
        description: The fields to be returned in the response. If empty or "*", all fields will be returned.
        in: query
        required: false
        schema:
          type: string
      - name: account_id
        in: path
        required: true
        description: The Account Id
        schema:
          type: string
      - name: cluster_id
        in: path
        required: true
        description: The Cluster Id
        schema:
          type: string
      tags:
      - Gateway
    patch:
      summary: Update Cluster
      operationId: Gateway_UpdateCluster
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/gatewayCluster'
      parameters:
      - name: account_id
        in: path
        required: true
        description: The Account Id
        schema:
          type: string
      - name: cluster_id
        in: path
        required: true
        description: The Cluster Id
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                displayName:
                  type: string
                  description: 'Human-readable display name of the cluster. e.g. "My Cluster"

                    Must be fewer than 64 characters long.'
                createTime:
                  type: string
                  format: date-time
                  description: The creation time of the cluster.
                  readOnly: true
                eksCluster:
                  $ref: '#/components/schemas/gatewayEksCluster'
                fakeCluster:
                  $ref: '#/components/schemas/gatewayFakeCluster'
                state:
                  $ref: '#/components/schemas/gatewayClusterState'
                  description: The current state of the cluster.
                  readOnly: true
                status:
                  $ref: '#/components/schemas/gatewayStatus'
                  description: Detailed information about the current status of the cluster.
                  readOnly: true
                updateTime:
                  type: string
                  format: date-time
                  description: The update time for the cluster.
                  readOnly: true
              title: 'The properties of the cluster being updated. `cluster.name` must

                be populated with the updated resource''s name.'
        description: 'The properties of the cluster being updated. `cluster.name` must

          be populated with the updated resource''s name.'
        required: true
      tags:
      - Gateway
    delete:
      summary: Delete Cluster
      operationId: Gateway_DeleteCluster
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                type: object
                properties: {}
      parameters:
      - name: account_id
        in: path
        required: true
        description: The Account Id
        schema:
          type: string
      - name: cluster_id
        in: path
        required: true
        description: The Cluster Id
        schema:
          type: string
      tags:
      - Gateway
  /v1/accounts/{account_id}/clusters/{cluster_id}:getConnectionInfo:
    get:
      summary: Get Cluster Connection Info
      description: Retrieve connection settings for the cluster to be put in kubeconfig
      operationId: Gateway_GetClusterConnectionInfo
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/gatewayClusterConnectionInfo'
      parameters:
      - name: readMask
        description: The fields to be returned in the response. If empty or "*", all fields will be returned.
        in: query
        required: false
        schema:
          type: string
      - name: account_id
        in: path
        required: true
        description: The Account Id
        schema:
          type: string
      - name: cluster_id
        in: path
        required: true
        description: The Cluster Id
        schema:
          type: string
      tags:
      - Gateway
  /v1/accounts/{account_id}/creditRedemptions:
    get:
      summary: List Credit Redemptions
      operationId: Gateway_ListCreditRedemptions
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/gatewayListCreditRedemptionsResponse'
      parameters:
      - name: pageSize
        description: The maximum number of redemptions to return
        in: query
        required: false
        schema:
          type: integer
          format: int32
      - name: pageToken
        description: A page token, received from a previous ListCreditRedemptions call
        in: query
        required: false
        schema:
          type: string
      - name: filter
        description: Filter string to filter redemptions
        in: query
        required: false
        schema:
          type: string
      - name: orderBy
        description: 'A comma-separated list of fields to order by. e.g. "foo,bar"

          The default sort order is ascending. To specify a descending order for a

          field, append a " desc" suffix. e.g. "foo desc,bar"'
        in: query
        required: false
        schema:
          type: string
      - name: readMask
        description: The fields to be returned in the response. If empty or "*", all fields will be returned.
        in: query
        required: false
        schema:
          type: string
      - name: account_id
        in: path
        required: true
        description: The Account Id
        schema:
          type: string
      tags:
      - Gateway
  /v1/accounts/{account_id}/datasets:
    get:
      summary: List Datasets
      operationId: Gateway_ListDatasets
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/gatewayListDatasetsResponse'
      parameters:
      - name: pageSize
        description: 'The maximum number of datasets to return. The maximum page_size is 200,

          values above 200 will be coerced to 200.

          If unspecified, the default is 50.'
        in: query
        required: false
        schema:
          type: integer
          format: int32
      - name: pageToken
        description: 'A page token, received from a previous ListDatasets call. Provide this

          to retrieve the subsequent page. When paginating, all other parameters

          provided to ListDatasets must match the call that provided the page

          token.'
        in: query
        required: false
        schema:
          type: string
      - name: filter
        description: 'Only model satisfying the provided filter (if specified) will be

          returned. See https://google.aip.dev/160 for the filter grammar.'
        in: query
        required: false
        schema:
          type: string
      - name: orderBy
        description: 'A comma-separated list of fields to order by. e.g. "foo,bar"

          The default sort order is ascending. To specify a descending order for a

          field, append a " desc" suffix. e.g. "foo desc,bar"

          Subfields are specified with a "." character. e.g. "foo.bar"

          If not specified, the default order is by "name".'
        in: query
        required: false
        schema:
          type: string
      - name: readMask
        description: The fields to be returned in the response. If empty or "*", all fields will be returned.
        in: query
        required: false
        schema:
          type: string
      - name: account_id
        in: path
        required: true
        description: The Account Id
        schema:
          type: string
      tags:
      - Gateway
    post:
      summary: Create Dataset
      operationId: Gateway_CreateDataset
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/gatewayDataset'
      parameters:
      - name: account_id
        in: path
        required: true
        description: The Account Id
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GatewayCreateDatasetBody'
        required: true
      tags:
      - Gateway
  /v1/accounts/{account_id}/datasets/{dataset_id}:
    get:
      summary: Get Dataset
      operationId: Gateway_GetDataset
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/gatewayDataset'
      parameters:
      - name: readMask
        description: The fields to be returned in the response. If empty or "*", all fields will be returned.
        in: query
        required: false
        schema:
          type: string
      - name: account_id
        in: path
        required: true
        description: The Account Id
        schema:
          type: string
      - name: dataset_id
        in: path
        required: true
        description: The Dataset Id
        schema:
          type: string
      tags:
      - Gateway
    patch:
  

# --- truncated at 32 KB (473 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/fireworks-ai/refs/heads/main/openapi/fireworks-ai-gateway-api-openapi.yml