{"openapi":"3.0.0","info":{"description":"Fireworks AI — fast LLM inference platform with chat completions, text completions, embeddings, reranking, image generation, Anthropic-compatible messages, OpenAI-compatible responses, fine-tuning, evaluations, dedicated deployments, and platform management.","version":[{"name":"v1","value":"v1"}]},"servers":[{"description":"Fireworks AI — fast LLM inference platform with chat completions, text completions, embeddings, reranking, image generation, Anthropic-compatible messages, OpenAI-compatible responses, fine-tuning, evaluations, dedicated deployments, and platform management.","url":"https://api.apirails.com/fireworks"}],"paths":{"/v1/accounts":{"get":{"tags":["Other"],"parameters":[{"name":"pageSize","in":"query","description":"The maximum number of accounts to return. The maximum page_size is 200,\nvalues above 200 will be coerced to 200.\nIf unspecified, the default is 50.","required":false,"schema":{"type":"integer","example":""}},{"name":"pageToken","in":"query","description":"A page token, received from a previous ListAccounts call. Provide this\nto retrieve the subsequent page. When paginating, all other parameters\nprovided to ListAccounts must match the call that provided the page\ntoken.","required":false,"schema":{"type":"string","example":""}},{"name":"filter","in":"query","description":"Only accounts satisfying the provided filter (if specified) will be\nreturned. See https://google.aip.dev/160 for the filter grammar.","required":false,"schema":{"type":"string","example":""}},{"name":"orderBy","in":"query","description":"Not supported.\nAccounts will be returned ordered by `name`.","required":false,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts"},"summary":"List Accounts","description":"List Accounts","security":[{"bearerAuth":[]}]}},"/v1/accounts/{account_id}":{"get":{"tags":["Other"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}"},"summary":"Get Account","description":"Get Account","security":[{"bearerAuth":[]}]}},"/v1/accounts/{account_id}/accountUsageFilterOptions":{"get":{"tags":["Usage And Quotas"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"startTime","in":"query","description":"startTime","required":true,"schema":{"type":"string","example":""}},{"name":"endTime","in":"query","description":"endTime","required":true,"schema":{"type":"string","example":""}},{"name":"usageType","in":"query","description":"If not specified, loads filter options for serverless and dedicated usage only.\n\n - SERVERLESS: Serverless filter dimensions only (model_name, api_key_id, api_key_name, user_id, session_id, annotations.*).\n - DEDICATED_DEPLOYMENT: Dedicated deployment filter dimensions (deployment_name, annotations.team, .project, .environment).\n - TRAINING: Training filter dimensions (job_id, training_session_id, job_type,\nusage_type, accelerator_type, base_model).","required":false,"schema":{"type":"string","example":"","items":{"type":"string","enum":["USAGE_TYPE_UNSPECIFIED","SERVERLESS","DEDICATED_DEPLOYMENT","TRAINING"]}}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/accountUsageFilterOptions"},"summary":"Distinct filter values for an account/time range (serverless + dedicated; for FE, separate -yet mirrors GetAccountUsage).","description":"Distinct filter values for an account/time range (serverless + dedicated; for FE, separate -yet mirrors GetAccountUsage).","security":[{"bearerAuth":[]}]}},"/v1/accounts/{account_id}/auditLogs":{"get":{"tags":["Audit Logs"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"startTime","in":"query","description":"Start time of the audit logs to retrieve.\nIf unspecified, the default is 30 days before now.","required":false,"schema":{"type":"string","example":""}},{"name":"endTime","in":"query","description":"End time of the audit logs to retrieve.\nIf unspecified, the default is the current time.","required":false,"schema":{"type":"string","example":""}},{"name":"email","in":"query","description":"Optional.\nFilter audit logs for user email associated with the account.","required":false,"schema":{"type":"string","example":""}},{"name":"pageSize","in":"query","description":"The maximum number of audit logs to return. The maximum page_size is 200,\nvalues above 200 will be coerced to 200.\nIf unspecified, the default is 10.","required":false,"schema":{"type":"integer","example":""}},{"name":"pageToken","in":"query","description":"A page token, received from a previous ListAuditLogs call. Provide this\nto retrieve the subsequent page. When paginating, all other parameters\nprovided to ListAuditLogs must match the call that provided the page\ntoken.","required":false,"schema":{"type":"string","example":""}},{"name":"filter","in":"query","description":"Unused but required to use existing ListRequest functionality.","required":false,"schema":{"type":"string","example":""}},{"name":"orderBy","in":"query","description":"Unused but required to use existing ListRequest functionality.","required":false,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/auditLogs"},"summary":"List User Audit Logs","description":"List User Audit Logs","security":[{"bearerAuth":[]}]}},"/v1/accounts/{account_id}/batchInferenceJobs":{"get":{"tags":["Batch Inference Jobs"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"pageSize","in":"query","description":"The maximum number of batch inference jobs to return. The maximum page_size is 200,\nvalues above 200 will be coerced to 200.\nIf unspecified, the default is 50.","required":false,"schema":{"type":"integer","example":""}},{"name":"pageToken","in":"query","description":"A page token, received from a previous ListBatchInferenceJobs call. Provide this\nto retrieve the subsequent page. When paginating, all other parameters\nprovided to ListBatchInferenceJobs must match the call that provided the page\ntoken.","required":false,"schema":{"type":"string","example":""}},{"name":"filter","in":"query","description":"Only jobs satisfying the provided filter (if specified) will be\nreturned. See https://google.aip.dev/160 for the filter grammar.","required":false,"schema":{"type":"string","example":""}},{"name":"orderBy","in":"query","description":"A comma-separated list of fields to order by. e.g. \"foo,bar\"\nThe default sort order is ascending. To specify a descending order for a\nfield, append a \" desc\" suffix. e.g. \"foo desc,bar\"\nSubfields are specified with a \".\" character. e.g. \"foo.bar\"\nIf not specified, the default order is by \"created_time\".","required":false,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/batchInferenceJobs"},"summary":"List Batch Inference Jobs","description":"List Batch Inference Jobs","security":[{"bearerAuth":[]}]},"post":{"tags":["Batch Inference Jobs"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"batchInferenceJobId","in":"query","description":"ID of the batch inference job.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/batchInferenceJobs"},"summary":"Create Batch Inference Job","description":"Create Batch Inference Job","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"The resource name of the batch inference job. e.g. accounts/my-account/batchInferenceJobs/my-batch-inference-job name"},"displayName":{"type":"string","description":"Human-readable display name of the batch inference job. e.g. \"My Batch Inference Job\" displayName"},"createTime":{"type":"string","description":"The creation time of the batch inference job. createTime"},"expireTime":{"type":"string","description":"The time when the batch inference job will expire (stop running); any\ncompleted requests will have been written to the output dataset by then.\n\nThis is the job's effective execution deadline, derived by the server as\ncreate_time + the bounded run window (see max_job_duration). It is exposed\nso customers can read back the concrete deadline without recomputing it\nclient-side. OUTPUT_ONLY: it is always computed server-side and any\nclient-supplied value is ignored (previously this was a SUPERUSER_ONLY\ninput that overlapped with max_job_duration; the two are now unified as one\npublic input (duration) + one public derived deadline (this timestamp)). expireTime"},"createdBy":{"type":"string","description":"The email address of the user who initiated this batch inference job. createdBy"},"state":{"type":"string","description":"JobState represents the state an asynchronous job can be in.\n\n - JOB_STATE_PAUSED: Job is paused, typically due to account suspension or manual intervention.\n - JOB_STATE_DELETED: Job has been deleted.\n - JOB_STATE_ARCHIVED: User-facing state for jobs whose row is retained post-delete (e.g. RLOR\ntrainers within the checkpoint retention window). The internal row is\nstill in JOB_STATE_DELETED; the gateway translates it to ARCHIVED on\npublic responses. state","enum":["JOB_STATE_UNSPECIFIED","JOB_STATE_CREATING","JOB_STATE_RUNNING","JOB_STATE_COMPLETED","JOB_STATE_FAILED","JOB_STATE_CANCELLED","JOB_STATE_DELETING","JOB_STATE_WRITING_RESULTS","JOB_STATE_VALIDATING","JOB_STATE_DELETING_CLEANING_UP","JOB_STATE_PENDING","JOB_STATE_EXPIRED","JOB_STATE_RE_QUEUEING","JOB_STATE_CREATING_INPUT_DATASET","JOB_STATE_IDLE","JOB_STATE_CANCELLING","JOB_STATE_EARLY_STOPPED","JOB_STATE_PAUSED","JOB_STATE_DELETED","JOB_STATE_ARCHIVED"]},"status":{"type":"object","description":"Mimics [https://github.com/googleapis/googleapis/blob/master/google/rpc/status.proto] status","properties":{"code":{"type":"string","description":"- OK: Not an error; returned on success.\n\nHTTP Mapping: 200 OK\n - CANCELLED: The operation was cancelled, typically by the caller.\n\nHTTP Mapping: 499 Client Closed Request\n - UNKNOWN: Unknown error.  For example, this error may be returned when\na `Status` value received from another address space belongs to\nan error space that is not known in this address space.  Also\nerrors raised by APIs that do not return enough error information\nmay be converted to this error.\n\nHTTP Mapping: 500 Internal Server Error\n - INVALID_ARGUMENT: The client specified an invalid argument.  Note that this differs\nfrom `FAILED_PRECONDITION`.  `INVALID_ARGUMENT` indicates arguments\nthat are problematic regardless of the state of the system\n(e.g., a malformed file name).\n\nHTTP Mapping: 400 Bad Request\n - DEADLINE_EXCEEDED: The deadline expired before the operation could complete. For operations\nthat change the state of the system, this error may be returned\neven if the operation has completed successfully.  For example, a\nsuccessful response from a server could have been delayed long\nenough for the deadline to expire.\n\nHTTP Mapping: 504 Gateway Timeout\n - NOT_FOUND: Some requested entity (e.g., file or directory) was not found.\n\nNote to server developers: if a request is denied for an entire class\nof users, such as gradual feature rollout or undocumented allowlist,\n`NOT_FOUND` may be used. If a request is denied for some users within\na class of users, such as user-based access control, `PERMISSION_DENIED`\nmust be used.\n\nHTTP Mapping: 404 Not Found\n - ALREADY_EXISTS: The entity that a client attempted to create (e.g., file or directory)\nalready exists.\n\nHTTP Mapping: 409 Conflict\n - PERMISSION_DENIED: The caller does not have permission to execute the specified\noperation. `PERMISSION_DENIED` must not be used for rejections\ncaused by exhausting some resource (use `RESOURCE_EXHAUSTED`\ninstead for those errors). `PERMISSION_DENIED` must not be\nused if the caller can not be identified (use `UNAUTHENTICATED`\ninstead for those errors). This error code does not imply the\nrequest is valid or the requested entity exists or satisfies\nother pre-conditions.\n\nHTTP Mapping: 403 Forbidden\n - UNAUTHENTICATED: The request does not have valid authentication credentials for the\noperation.\n\nHTTP Mapping: 401 Unauthorized\n - RESOURCE_EXHAUSTED: Some resource has been exhausted, perhaps a per-user quota, or\nperhaps the entire file system is out of space.\n\nHTTP Mapping: 429 Too Many Requests\n - FAILED_PRECONDITION: The operation was rejected because the system is not in a state\nrequired for the operation's execution.  For example, the directory\nto be deleted is non-empty, an rmdir operation is applied to\na non-directory, etc.\n\nService implementors can use the following guidelines to decide\nbetween `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`:\n (a) Use `UNAVAILABLE` if the client can retry just the failing call.\n (b) Use `ABORTED` if the client should retry at a higher level. For\n     example, when a client-specified test-and-set fails, indicating the\n     client should restart a read-modify-write sequence.\n (c) Use `FAILED_PRECONDITION` if the client should not retry until\n     the system state has been explicitly fixed. For example, if an \"rmdir\"\n     fails because the directory is non-empty, `FAILED_PRECONDITION`\n     should be returned since the client should not retry unless\n     the files are deleted from the directory.\n\nHTTP Mapping: 400 Bad Request\n - ABORTED: The operation was aborted, typically due to a concurrency issue such as\na sequencer check failure or transaction abort.\n\nSee the guidelines above for deciding between `FAILED_PRECONDITION`,\n`ABORTED`, and `UNAVAILABLE`.\n\nHTTP Mapping: 409 Conflict\n - OUT_OF_RANGE: The operation was attempted past the valid range.  E.g., seeking or\nreading past end-of-file.\n\nUnlike `INVALID_ARGUMENT`, this error indicates a problem that may\nbe fixed if the system state changes. For example, a 32-bit file\nsystem will generate `INVALID_ARGUMENT` if asked to read at an\noffset that is not in the range [0,2^32-1], but it will generate\n`OUT_OF_RANGE` if asked to read from an offset past the current\nfile size.\n\nThere is a fair bit of overlap between `FAILED_PRECONDITION` and\n`OUT_OF_RANGE`.  We recommend using `OUT_OF_RANGE` (the more specific\nerror) when it applies so that callers who are iterating through\na space can easily look for an `OUT_OF_RANGE` error to detect when\nthey are done.\n\nHTTP Mapping: 400 Bad Request\n - UNIMPLEMENTED: The operation is not implemented or is not supported/enabled in this\nservice.\n\nHTTP Mapping: 501 Not Implemented\n - INTERNAL: Internal errors.  This means that some invariants expected by the\nunderlying system have been broken.  This error code is reserved\nfor serious errors.\n\nHTTP Mapping: 500 Internal Server Error\n - UNAVAILABLE: The service is currently unavailable.  This is most likely a\ntransient condition, which can be corrected by retrying with\na backoff. Note that it is not always safe to retry\nnon-idempotent operations.\n\nSee the guidelines above for deciding between `FAILED_PRECONDITION`,\n`ABORTED`, and `UNAVAILABLE`.\n\nHTTP Mapping: 503 Service Unavailable\n - DATA_LOSS: Unrecoverable data loss or corruption.\n\nHTTP Mapping: 500 Internal Server Error code","enum":["OK","CANCELLED","UNKNOWN","INVALID_ARGUMENT","DEADLINE_EXCEEDED","NOT_FOUND","ALREADY_EXISTS","PERMISSION_DENIED","UNAUTHENTICATED","RESOURCE_EXHAUSTED","FAILED_PRECONDITION","ABORTED","OUT_OF_RANGE","UNIMPLEMENTED","INTERNAL","UNAVAILABLE","DATA_LOSS"]},"message":{"type":"string","description":"A developer-facing error message in English. message"}}},"model":{"type":"string","description":"The name of the model to use for inference. This is required, except when continued_from_job_name is specified. model"},"inputDatasetId":{"type":"string","description":"The name of the dataset used for inference. This is required, except when continued_from_job_name is specified. inputDatasetId"},"outputDatasetId":{"type":"string","description":"The name of the dataset used for storing the results. This will also contain the error file. outputDatasetId"},"systemPrompt":{"type":"string","description":"Optional job-level system prompt. When set, it is injected as a leading\nsystem message into every input row that does NOT already begin with a\nsystem message (a row's own leading system message takes precedence). This\nlets callers avoid repeating a large, static system prompt on every row of\nthe input dataset, shrinking the upload. Because the injected prefix is\nbyte-identical across rows, prompt caching still applies. systemPrompt"},"inferenceParameters":{"type":"object","description":"BIJ inference parameters inferenceParameters","properties":{"maxTokens":{"type":"integer","description":"Maximum number of tokens to generate per response. maxTokens"},"temperature":{"type":"number","description":"Sampling temperature, typically between 0 and 2. temperature"},"topP":{"type":"number","description":"Top-p sampling parameter, typically between 0 and 1. topP"},"n":{"type":"integer","description":"Number of response candidates to generate per input. n"},"extraBody":{"type":"string","description":"Additional parameters for the inference request as a JSON string.\nFor example: \"{\\\"stop\\\": [\\\"\\\\n\\\"]}\". extraBody"},"topK":{"type":"integer","description":"Top-k sampling parameter, limits the token selection to the top k tokens. topK"}}},"updateTime":{"type":"string","description":"The update time for the batch inference job. updateTime"},"precision":{"type":"string","description":"- PRECISION_UNSPECIFIED: if left unspecified we will treat this as a legacy model created before\nself serve precision","enum":["PRECISION_UNSPECIFIED","FP16","FP8","FP8_MM","FP8_AR","FP8_MM_KV_ATTN","FP8_KV","FP8_MM_V2","FP8_V2","FP8_MM_KV_ATTN_V2","NF4","FP4","BF16","FP4_BLOCKSCALED_MM","FP4_MX_MOE"]},"jobProgress":{"type":"object","description":"Progress of a job, e.g. RLOR, EVJ, BIJ etc. jobProgress","properties":{"percent":{"type":"integer","description":"Progress percent, within the range from 0 to 100. percent"},"epoch":{"type":"integer","description":"The epoch for which the progress percent is reported, usually starting from 0.\nThis is optional for jobs that don't run in an epoch fasion, e.g. BIJ, EVJ. epoch"},"totalInputRequests":{"type":"integer","description":"Total number of input requests/rows in the job. totalInputRequests"},"totalProcessedRequests":{"type":"integer","description":"Total number of requests that have been processed (successfully or failed). totalProcessedRequests"},"successfullyProcessedRequests":{"type":"integer","description":"Number of requests that were processed successfully. successfullyProcessedRequests"},"failedRequests":{"type":"integer","description":"Number of requests that failed to process. failedRequests"},"outputRows":{"type":"integer","description":"Number of output rows generated. outputRows"},"inputTokens":{"type":"integer","description":"Total number of input tokens processed. inputTokens"},"outputTokens":{"type":"integer","description":"Total number of output tokens generated. outputTokens"},"cachedInputTokenCount":{"type":"integer","description":"The number of input tokens that hit the prompt cache. cachedInputTokenCount"}}},"continuedFromJobName":{"type":"string","description":"The resource name of the batch inference job that this job continues from.\nUsed for lineage tracking to understand job continuation chains. continuedFromJobName"},"placement":{"type":"object","description":"The desired geographic region where the deployment must be placed. Exactly one field will be\nspecified. placement","properties":{"region":{"type":"string","description":"region","enum":["REGION_UNSPECIFIED","US_IOWA_1","US_VIRGINIA_1","US_VIRGINIA_2","US_ILLINOIS_1","AP_TOKYO_1","US_ARIZONA_1","US_TEXAS_1","US_ILLINOIS_2","EU_FRANKFURT_1","US_TEXAS_2","EU_ICELAND_1","EU_ICELAND_2","US_WASHINGTON_1","US_WASHINGTON_2","US_WASHINGTON_3","AP_TOKYO_2","US_CALIFORNIA_1","US_UTAH_1","US_ARIZONA_3","US_GEORGIA_1","US_GEORGIA_2","US_WASHINGTON_4","US_GEORGIA_3","NA_BRITISHCOLUMBIA_1","US_GEORGIA_4","US_OHIO_1","US_NEWYORK_1","EU_NETHERLANDS_1","US_WASHINGTON_5","US_MINNESOTA_1","US_CALIFORNIA_2","NA_BRITISHCOLUMBIA_2","AP_MALAYSIA_2","US_OREGON_1","NA_BRITISHCOLUMBIA_3","AP_NEWSOUTHWALES_1"]},"multiRegion":{"type":"string","description":"multiRegion","enum":["MULTI_REGION_UNSPECIFIED","GLOBAL","US","EUROPE","APAC"]},"regions":{"type":"array","description":"The list of regions where the deployment must be placed regions"}}},"maxJobDuration":{"type":"string","description":"The customer-requested wall-clock run window for the job: how long it may\nrun before it is expired. This is the single public input that controls the\njob's lifetime. The server bounds it to [12h, 72h]; if unset it defaults to\n24h. The resulting concrete deadline is surfaced as expire_time\n(= create_time + the bounded window) and the job is expired once that\ndeadline passes. A duration (relative) is used rather than an absolute\ntimestamp because the client does not know create_time at submit time.\nCustomer-visible input. maxJobDuration"},"lifecycle":{"type":"object","description":"Observed execution milestone timestamps for the job, grouped into one\nsub-message so the job's lifecycle reads as a single cohesive unit rather\nthan a scatter of top-level time fields. All OUTPUT_ONLY. lifecycle","properties":{"validatedTime":{"type":"string","description":"When dataset validation completed and the job left VALIDATING. Unset for\njobs that skip validation or that fail before validating. validatedTime"},"runStartTime":{"type":"string","description":"When the runner first started processing (the job first became RUNNING). runStartTime"},"endTime":{"type":"string","description":"The terminal time of the job (when it reached COMPLETED, FAILED, EXPIRED,\nor CANCELLED). endTime"}}},"waitingOnCapacity":{"type":"boolean","description":"True only while a job that has ALREADY started running is briefly\nre-acquiring capacity after a mid-run preemption/stockout (i.e. it\nregressed from RUNNING back to an internal PENDING/CREATING phase and is\nwaiting to resume). This is intentionally a transient sub-status annotation\non a job whose customer-facing `state` stays RUNNING — NOT a distinct\n`state` value: the job is still running (progress is saved, it auto-resumes)\nso introducing a new terminal-or-not enum value would force every state\nconsumer (SDK/CLI/internal maps/billing) to special-case \"still running.\"\nIt drives the customer-facing \"Briefly paused — waiting on capacity\" card.\nIt must NOT be set during first-time provisioning before the job has ever\nrun, and is cleared once the job returns to RUNNING or reaches a terminal\nstate. So \"state=RUNNING, waiting_on_capacity=true\" means: running, momentarily\npaused while it re-acquires capacity. waitingOnCapacity"}}},"example":{"name":"","displayName":"","createTime":"","expireTime":"","createdBy":"","state":"","status":{},"model":"","inputDatasetId":"","outputDatasetId":"","systemPrompt":"","inferenceParameters":{},"updateTime":"","precision":"","jobProgress":{},"continuedFromJobName":"","placement":{},"maxJobDuration":"","lifecycle":{},"waitingOnCapacity":""}}}}}},"/v1/accounts/{account_id}/batchInferenceJobs/{batch_inference_job_id}":{"get":{"tags":["Batch Inference Jobs"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"batch_inference_job_id","in":"path","description":"The Batch Inference Job Id","required":true,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/batchInferenceJobs/{batch_inference_job_id}"},"summary":"Get Batch Inference Job","description":"Get Batch Inference Job","security":[{"bearerAuth":[]}]},"delete":{"tags":["Batch Inference Jobs"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"batch_inference_job_id","in":"path","description":"The Batch Inference Job Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/batchInferenceJobs/{batch_inference_job_id}"},"summary":"Delete Batch Inference Job","description":"Delete Batch Inference Job","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/v1/accounts/{account_id}/billing/summary":{"get":{"tags":["Summary"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"startTime","in":"query","description":"Start time for the billing period.\nNote: Costs are aggregated daily. Only the date portion (YYYY-MM-DD) is used;\nthe time portion is ignored. For example, 2025-10-05T07:18:29Z and\n2025-10-05T23:59:59Z are treated the same as 2025-10-05T00:00:00Z.","required":true,"schema":{"type":"string","example":""}},{"name":"endTime","in":"query","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)","required":true,"schema":{"type":"string","example":""}},{"name":"granularity","in":"query","description":"Requested breakdown granularity. Defaults to UNSPECIFIED (no breakdown).","required":false,"schema":{"type":"string","example":"","items":{"type":"string","enum":["GRANULARITY_UNSPECIFIED","DAILY"]}}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/billing/summary"},"summary":"Get billing summary information for an account","description":"Get billing summary information for an account","security":[{"bearerAuth":[]}]}},"/v1/accounts/{account_id}/billingSettings":{"get":{"tags":["Billing"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/billingSettings"},"summary":"Returns the singleton BillingSettings for the given account.","description":"Returns the singleton BillingSettings for the given account.","security":[{"bearerAuth":[]}]},"patch":{"tags":["Billing"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/billingSettings"},"summary":"Updates the singleton BillingSettings for the given account.","description":"Updates the singleton BillingSettings for the given account.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"updateTime":{"type":"string","description":"The time the billing settings were last updated. updateTime"},"enableCreditAutoReload":{"type":"boolean","description":"If true, the account will auto-reload its credit balance. enableCreditAutoReload"},"creditAutoReloadThreshold":{"type":"object","description":"Represents an amount of money with its currency type. creditAutoReloadThreshold","properties":{"currencyCode":{"type":"string","description":"The three-letter currency code defined in ISO 4217. currencyCode"},"units":{"type":"string","description":"The whole units of the amount.\nFor example if `currencyCode` is `\"USD\"`, then 1 unit is one US dollar. units"},"nanos":{"type":"integer","description":"Number of nano (10^-9) units of the amount.\nThe value must be between -999,999,999 and +999,999,999 inclusive.\nIf `units` is positive, `nanos` must be positive or zero.\nIf `units` is zero, `nanos` can be positive, zero, or negative.\nIf `units` is negative, `nanos` must be negative or zero.\nFor example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000. nanos"}}},"creditAutoReloadAmount":{"type":"object","description":"Represents an amount of money with its currency type. creditAutoReloadAmount","properties":{"currencyCode":{"type":"string","description":"The three-letter currency code defined in ISO 4217. currencyCode"},"units":{"type":"string","description":"The whole units of the amount.\nFor example if `currencyCode` is `\"USD\"`, then 1 unit is one US dollar. units"},"nanos":{"type":"integer","description":"Number of nano (10^-9) units of the amount.\nThe value must be between -999,999,999 and +999,999,999 inclusive.\nIf `units` is positive, `nanos` must be positive or zero.\nIf `units` is zero, `nanos` can be positive, zero, or negative.\nIf `units` is negative, `nanos` must be negative or zero.\nFor example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000. nanos"}}}}},"example":{"updateTime":"","enableCreditAutoReload":"","creditAutoReloadThreshold":{},"creditAutoReloadAmount":{}}}}}}},"/v1/accounts/{account_id}/billingUsage":{"get":{"tags":["Billing"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"startTime","in":"query","description":"Costs returned are inclusive of `start_time`.\nstart_time must be before end_time.","required":true,"schema":{"type":"string","example":""}},{"name":"endTime","in":"query","description":"Costs returned are exclusive of `end_time`.\nend_time must not be more than 31 days after start_time.","required":true,"schema":{"type":"string","example":""}},{"name":"usageType","in":"query","description":"Usage type to query usage for\nIf not specified, returns all usage types (serverless, dedicated deployments, and training).\n\n - USAGE_TYPE_UNSPECIFIED: Default value. When specified (or when usage_type field is not set),\nreturns usage data for all deployment types: serverless requests, dedicated deployments,\nand training jobs.\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.\n - TRAINING: Returns only training job usage data (SFT/DPO token usage and RFT / service-mode\ntrainer GPU-seconds usage). Inference deployments serving rollouts for RFT /\nonline RL are reported under DEDICATED_DEPLOYMENT (not TRAINING) to avoid\ndouble counting GPU time.","required":false,"schema":{"type":"string","example":"","items":{"type":"string","enum":["USAGE_TYPE_UNSPECIFIED","SERVERLESS","DEDICATED_DEPLOYMENT","TRAINING"]}}},{"name":"timezone","in":"query","description":"IANA timezone identifier for daily aggregation (e.g., \"America/Los_Angeles\", \"Europe/London\").\nWhen specified, the returned data will be aggregated into daily buckets based on this timezone.\nIf not specified or empty, defaults to \"UTC\".\nSee: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones","required":false,"schema":{"type":"string","example":""}},{"name":"groupBy","in":"query","description":"Dimensions to group usage by (multiple values allowed; each is a separate GROUP BY column).\nServerless: \"model_name\", \"api_key_id\", \"api_key_name\", \"user_id\", \"session_id\", \"annotations.team\", \"annotations.project\", \"annotations.environment\".\nDedicated: \"deployment_name\", \"accelerator_type\", and the same annotation keys.\nTraining: \"job_id\", \"training_session_id\", \"job_type\", \"usage_type\", \"accelerator_type\", \"base_model\", and the same annotation keys.\nWhen usage_type is unspecified, dimensions that apply only to one stream are ignored on the others\n(e.g. \"deployment_name\" is ignored for serverless and training; \"model_name\" / \"api_key_id\" / \"api_key_name\" / \"user_id\" / \"session_id\"\nare ignored for dedicated and training; \"job_id\" / \"training_session_id\" / \"job_type\" are ignored for serverless and dedicated).\n\"session_id\" is the opaque client session from billing properties (serverless-only, high cardinality):\nprefer filtering by a single session; grouping by it can fan out to one row per session.\nExample: [\"annotations.team\", \"model_name\"] or [\"user_id\", \"model_name\"] or [\"api_key_id\", \"api_key_name\"].\nIf empty: serverless aggregates by model name; dedicated defaults to deployment and accelerator type;\ntraining aggregates by job_id, training_session_id, job_type, usage_type, accelerator_type and base_model.","required":false,"schema":{"type":"array","example":""}},{"name":"filter","in":"query","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","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/billingUsage"},"summary":"Get Account Usage","description":"Get Account Usage","security":[{"bearerAuth":[]}]}},"/v1/accounts/{account_id}/checkpoints/{checkpoint_id}:promote":{"post":{"tags":["Checkpoints"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"checkpoint_id","in":"path","description":"The Checkpoint Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/checkpoints/{checkpoint_id}:promote"},"summary":"Promote a checkpoint to a model.\nThe checkpoint is identified by account + snapshot ID; the trainer job ID\nis passed in the request body to resolve the GCS bucket.","description":"Promote a checkpoint to a model.\nThe checkpoint is identified by account + snapshot ID; the trainer job ID\nis passed in the request body to resolve the GCS bucket.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"outputModel":{"type":"string","description":"The desired output model resource name.\nFormat: accounts/{account}/models/{model} outputModel","required":true},"trainerJobId":{"type":"string","description":"Deprecated. Only used by legacy callers passing the flat `name`\nform; new callers pass the nested `name` (trainer id embedded) and\nleave this unset. If provided, must agree with the trainer id in `name`.\nFormat: accounts/{account}/rlorTrainerJobs/{rlor_trainer_job} trainerJobId"},"baseModel":{"type":"string","description":"The base model for metadata inheritance (model type, context length, etc.).\nFormat: accounts/{account}/models/{model} baseModel","required":true},"hotLoadDeploymentId":{"type":"string","description":"Deprecated. Callers should not set this — the server resolves the owning\nGCS path from the trainer job's stored hot_load_bucket_url (the same\nsource the list endpoint uses). Silently ignored when the trainer row is\npresent. Retained for request-shape compatibility with old clients.\nFormat: accounts/{account}/deployments/{deployment} hotLoadDeploymentId"},"asyncPromotion":{"type":"boolean","description":"Optional request-level opt-in for long-running checkpoint promotion.\nWhen false or unset, the server preserves the legacy synchronous response\nshape and returns `model`. When true, the server may return `operation`;\ncallers must poll GetOperation until completion and read the promoted\nmodel from the operation response. asyncPromotion"}}},"example":{"outputModel":"","trainerJobId":"","baseModel":"","hotLoadDeploymentId":"","asyncPromotion":""}}}}}},"/v1/accounts/{account_id}/clusters":{"get":{"tags":["Clusters"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"pageSize","in":"query","description":"The maximum number of clusters to return. The maximum page_size is 200,\nvalues above 200 will be coerced to 200.\nIf unspecified, the default is 50.","required":false,"schema":{"type":"integer","example":""}},{"name":"pageToken","in":"query","description":"A page token, received from a previous ListClusters call. Provide this\nto retrieve the subsequent page. When paginating, all other parameters\nprovided to ListClusters must match the call that provided the page\ntoken.","required":false,"schema":{"type":"string","example":""}},{"name":"filter","in":"query","description":"Only clusters satisfying the provided filter (if specified) will be\nreturned. See https://google.aip.dev/160 for the filter grammar.","required":false,"schema":{"type":"string","example":""}},{"name":"orderBy","in":"query","description":"A comma-separated list of fields to order by. e.g. \"foo,bar\"\nThe default sort order is ascending. To specify a descending order for a\nfield, append a \" desc\" suffix. e.g. \"foo desc,bar\"\nSubfields are specified with a \".\" character. e.g. \"foo.bar\"\nIf not specified, the default order is by \"name\".","required":false,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/clusters"},"summary":"List Clusters","description":"List Clusters","security":[{"bearerAuth":[]}]},"post":{"tags":["Clusters"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/clusters"},"summary":"Create Cluster","description":"Create Cluster","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"cluster":{"type":"object","description":"cluster","required":true,"properties":{"name":{"type":"string","description":"The resource name of the cluster. e.g. accounts/my-account/clusters/my-cluster name"},"displayName":{"type":"string","description":"Human-readable display name of the cluster. e.g. \"My Cluster\"\nMust be fewer than 64 characters long. displayName"},"createTime":{"type":"string","description":"The creation time of the cluster. createTime"},"eksCluster":{"type":"object","description":"An Amazon Elastic Kubernetes Service cluster. eksCluster"},"fakeCluster":{"type":"object","description":"A fake cluster using https://pkg.go.dev/k8s.io/client-go/kubernetes/fake fakeCluster"},"state":{"type":"string","description":"- CREATING: The cluster is still being created.\n - READY: The cluster is ready to be used.\n - DELETING: The cluster is being deleted.\n - FAILED: Cluster is not operational.\nConsult 'status' for detailed messaging.\nCluster needs to be deleted and re-created. state","enum":["STATE_UNSPECIFIED","CREATING","READY","DELETING","FAILED"]},"status":{"type":"object","description":"Mimics [https://github.com/googleapis/googleapis/blob/master/google/rpc/status.proto] status"},"updateTime":{"type":"string","description":"The update time for the cluster. updateTime"}}},"clusterId":{"type":"string","description":"The cluster ID to use in the cluster name. e.g. my-cluster clusterId","required":true}}},"example":{"cluster":{},"clusterId":""}}}}}},"/v1/accounts/{account_id}/clusters/{cluster_id}":{"get":{"tags":["Clusters"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"cluster_id","in":"path","description":"The Cluster Id","required":true,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/clusters/{cluster_id}"},"summary":"Get Cluster","description":"Get Cluster","security":[{"bearerAuth":[]}]},"patch":{"tags":["Clusters"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"cluster_id","in":"path","description":"The Cluster Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/clusters/{cluster_id}"},"summary":"Update Cluster","description":"Update Cluster","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"displayName":{"type":"string","description":"Human-readable display name of the cluster. e.g. \"My Cluster\"\nMust be fewer than 64 characters long. displayName"},"createTime":{"type":"string","description":"The creation time of the cluster. createTime"},"eksCluster":{"type":"object","description":"An Amazon Elastic Kubernetes Service cluster. eksCluster","properties":{"awsAccountId":{"type":"string","description":"The 12-digit AWS account ID where this cluster lives. awsAccountId"},"fireworksManagerRole":{"type":"string","description":"The IAM role ARN used to manage Fireworks resources on AWS.\nIf not specified, the default is arn:aws:iam::<aws_account_id>:role/FireworksManagerRole fireworksManagerRole"},"region":{"type":"string","description":"The AWS region where this cluster lives. See https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html\nfor a list of available regions. region"},"clusterName":{"type":"string","description":"The EKS cluster name. clusterName"},"storageBucketName":{"type":"string","description":"The S3 bucket name. storageBucketName"},"metricWriterRole":{"type":"string","description":"The IAM role ARN used by Google Managed Prometheus role that will write metrics\nto Fireworks managed Prometheus. The role must be assumable by the\n`system:serviceaccount:gmp-system:collector` service account on the EKS cluster.\nIf not specified, no metrics will be written to GCP. metricWriterRole"},"loadBalancerControllerRole":{"type":"string","description":"The IAM role ARN used by the EKS load balancer controller (i.e. the load balancer\nautomatically created for the k8s gateway resource). If not specified, no gateway\nwill be created. loadBalancerControllerRole"},"workloadIdentityPoolProviderId":{"type":"string","description":"The ID of the GCP workload identity pool provider in the Fireworks\nproject for this cluster. The pool ID is assumed to be \"byoc-pool\" workloadIdentityPoolProviderId"},"inferenceRole":{"type":"string","description":"The IAM role ARN used by the inference pods on the cluster. inferenceRole"}}},"fakeCluster":{"type":"object","description":"A fake cluster using https://pkg.go.dev/k8s.io/client-go/kubernetes/fake fakeCluster","properties":{"projectId":{"type":"string","description":"projectId"},"location":{"type":"string","description":"location"},"clusterName":{"type":"string","description":"clusterName"}}},"state":{"type":"string","description":"- CREATING: The cluster is still being created.\n - READY: The cluster is ready to be used.\n - DELETING: The cluster is being deleted.\n - FAILED: Cluster is not operational.\nConsult 'status' for detailed messaging.\nCluster needs to be deleted and re-created. state","enum":["STATE_UNSPECIFIED","CREATING","READY","DELETING","FAILED"]},"status":{"type":"object","description":"Mimics [https://github.com/googleapis/googleapis/blob/master/google/rpc/status.proto] status","properties":{"code":{"type":"string","description":"- OK: Not an error; returned on success.\n\nHTTP Mapping: 200 OK\n - CANCELLED: The operation was cancelled, typically by the caller.\n\nHTTP Mapping: 499 Client Closed Request\n - UNKNOWN: Unknown error.  For example, this error may be returned when\na `Status` value received from another address space belongs to\nan error space that is not known in this address space.  Also\nerrors raised by APIs that do not return enough error information\nmay be converted to this error.\n\nHTTP Mapping: 500 Internal Server Error\n - INVALID_ARGUMENT: The client specified an invalid argument.  Note that this differs\nfrom `FAILED_PRECONDITION`.  `INVALID_ARGUMENT` indicates arguments\nthat are problematic regardless of the state of the system\n(e.g., a malformed file name).\n\nHTTP Mapping: 400 Bad Request\n - DEADLINE_EXCEEDED: The deadline expired before the operation could complete. For operations\nthat change the state of the system, this error may be returned\neven if the operation has completed successfully.  For example, a\nsuccessful response from a server could have been delayed long\nenough for the deadline to expire.\n\nHTTP Mapping: 504 Gateway Timeout\n - NOT_FOUND: Some requested entity (e.g., file or directory) was not found.\n\nNote to server developers: if a request is denied for an entire class\nof users, such as gradual feature rollout or undocumented allowlist,\n`NOT_FOUND` may be used. If a request is denied for some users within\na class of users, such as user-based access control, `PERMISSION_DENIED`\nmust be used.\n\nHTTP Mapping: 404 Not Found\n - ALREADY_EXISTS: The entity that a client attempted to create (e.g., file or directory)\nalready exists.\n\nHTTP Mapping: 409 Conflict\n - PERMISSION_DENIED: The caller does not have permission to execute the specified\noperation. `PERMISSION_DENIED` must not be used for rejections\ncaused by exhausting some resource (use `RESOURCE_EXHAUSTED`\ninstead for those errors). `PERMISSION_DENIED` must not be\nused if the caller can not be identified (use `UNAUTHENTICATED`\ninstead for those errors). This error code does not imply the\nrequest is valid or the requested entity exists or satisfies\nother pre-conditions.\n\nHTTP Mapping: 403 Forbidden\n - UNAUTHENTICATED: The request does not have valid authentication credentials for the\noperation.\n\nHTTP Mapping: 401 Unauthorized\n - RESOURCE_EXHAUSTED: Some resource has been exhausted, perhaps a per-user quota, or\nperhaps the entire file system is out of space.\n\nHTTP Mapping: 429 Too Many Requests\n - FAILED_PRECONDITION: The operation was rejected because the system is not in a state\nrequired for the operation's execution.  For example, the directory\nto be deleted is non-empty, an rmdir operation is applied to\na non-directory, etc.\n\nService implementors can use the following guidelines to decide\nbetween `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`:\n (a) Use `UNAVAILABLE` if the client can retry just the failing call.\n (b) Use `ABORTED` if the client should retry at a higher level. For\n     example, when a client-specified test-and-set fails, indicating the\n     client should restart a read-modify-write sequence.\n (c) Use `FAILED_PRECONDITION` if the client should not retry until\n     the system state has been explicitly fixed. For example, if an \"rmdir\"\n     fails because the directory is non-empty, `FAILED_PRECONDITION`\n     should be returned since the client should not retry unless\n     the files are deleted from the directory.\n\nHTTP Mapping: 400 Bad Request\n - ABORTED: The operation was aborted, typically due to a concurrency issue such as\na sequencer check failure or transaction abort.\n\nSee the guidelines above for deciding between `FAILED_PRECONDITION`,\n`ABORTED`, and `UNAVAILABLE`.\n\nHTTP Mapping: 409 Conflict\n - OUT_OF_RANGE: The operation was attempted past the valid range.  E.g., seeking or\nreading past end-of-file.\n\nUnlike `INVALID_ARGUMENT`, this error indicates a problem that may\nbe fixed if the system state changes. For example, a 32-bit file\nsystem will generate `INVALID_ARGUMENT` if asked to read at an\noffset that is not in the range [0,2^32-1], but it will generate\n`OUT_OF_RANGE` if asked to read from an offset past the current\nfile size.\n\nThere is a fair bit of overlap between `FAILED_PRECONDITION` and\n`OUT_OF_RANGE`.  We recommend using `OUT_OF_RANGE` (the more specific\nerror) when it applies so that callers who are iterating through\na space can easily look for an `OUT_OF_RANGE` error to detect when\nthey are done.\n\nHTTP Mapping: 400 Bad Request\n - UNIMPLEMENTED: The operation is not implemented or is not supported/enabled in this\nservice.\n\nHTTP Mapping: 501 Not Implemented\n - INTERNAL: Internal errors.  This means that some invariants expected by the\nunderlying system have been broken.  This error code is reserved\nfor serious errors.\n\nHTTP Mapping: 500 Internal Server Error\n - UNAVAILABLE: The service is currently unavailable.  This is most likely a\ntransient condition, which can be corrected by retrying with\na backoff. Note that it is not always safe to retry\nnon-idempotent operations.\n\nSee the guidelines above for deciding between `FAILED_PRECONDITION`,\n`ABORTED`, and `UNAVAILABLE`.\n\nHTTP Mapping: 503 Service Unavailable\n - DATA_LOSS: Unrecoverable data loss or corruption.\n\nHTTP Mapping: 500 Internal Server Error code","enum":["OK","CANCELLED","UNKNOWN","INVALID_ARGUMENT","DEADLINE_EXCEEDED","NOT_FOUND","ALREADY_EXISTS","PERMISSION_DENIED","UNAUTHENTICATED","RESOURCE_EXHAUSTED","FAILED_PRECONDITION","ABORTED","OUT_OF_RANGE","UNIMPLEMENTED","INTERNAL","UNAVAILABLE","DATA_LOSS"]},"message":{"type":"string","description":"A developer-facing error message in English. message"}}},"updateTime":{"type":"string","description":"The update time for the cluster. updateTime"}}},"example":{"displayName":"","createTime":"","eksCluster":{},"fakeCluster":{},"state":"","status":{},"updateTime":""}}}}},"delete":{"tags":["Clusters"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"cluster_id","in":"path","description":"The Cluster Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/clusters/{cluster_id}"},"summary":"Delete Cluster","description":"Delete Cluster","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/v1/accounts/{account_id}/clusters/{cluster_id}:getConnectionInfo":{"get":{"tags":["Clusters"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"cluster_id","in":"path","description":"The Cluster Id","required":true,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/clusters/{cluster_id}:getConnectionInfo"},"summary":"Get Cluster Connection Info","description":"Get Cluster Connection Info","security":[{"bearerAuth":[]}]}},"/v1/accounts/{account_id}/creditRedemptions":{"get":{"tags":["Billing"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"pageSize","in":"query","description":"The maximum number of redemptions to return","required":false,"schema":{"type":"integer","example":""}},{"name":"pageToken","in":"query","description":"A page token, received from a previous ListCreditRedemptions call","required":false,"schema":{"type":"string","example":""}},{"name":"filter","in":"query","description":"Filter string to filter redemptions","required":false,"schema":{"type":"string","example":""}},{"name":"orderBy","in":"query","description":"A comma-separated list of fields to order by. e.g. \"foo,bar\"\nThe default sort order is ascending. To specify a descending order for a\nfield, append a \" desc\" suffix. e.g. \"foo desc,bar\"","required":false,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/creditRedemptions"},"summary":"List Credit Redemptions","description":"List Credit Redemptions","security":[{"bearerAuth":[]}]}},"/v1/accounts/{account_id}/datasets":{"get":{"tags":["Datasets"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"pageSize","in":"query","description":"The maximum number of datasets to return. The maximum page_size is 200,\nvalues above 200 will be coerced to 200.\nIf unspecified, the default is 50.","required":false,"schema":{"type":"integer","example":""}},{"name":"pageToken","in":"query","description":"A page token, received from a previous ListDatasets call. Provide this\nto retrieve the subsequent page. When paginating, all other parameters\nprovided to ListDatasets must match the call that provided the page\ntoken.","required":false,"schema":{"type":"string","example":""}},{"name":"filter","in":"query","description":"Only model satisfying the provided filter (if specified) will be\nreturned. See https://google.aip.dev/160 for the filter grammar.","required":false,"schema":{"type":"string","example":""}},{"name":"orderBy","in":"query","description":"A comma-separated list of fields to order by. e.g. \"foo,bar\"\nThe default sort order is ascending. To specify a descending order for a\nfield, append a \" desc\" suffix. e.g. \"foo desc,bar\"\nSubfields are specified with a \".\" character. e.g. \"foo.bar\"\nIf not specified, the default order is by \"name\".","required":false,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/datasets"},"summary":"List Datasets","description":"List Datasets","security":[{"bearerAuth":[]}]},"post":{"tags":["Datasets"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/datasets"},"summary":"Create Dataset","description":"Create Dataset","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"dataset":{"type":"object","description":"dataset","required":true,"properties":{"name":{"type":"string","description":"name"},"displayName":{"type":"string","description":"displayName"},"createTime":{"type":"string","description":"createTime"},"state":{"type":"string","description":"state","enum":["STATE_UNSPECIFIED","UPLOADING","READY"]},"status":{"type":"object","description":"Mimics [https://github.com/googleapis/googleapis/blob/master/google/rpc/status.proto] status"},"exampleCount":{"type":"string","description":"exampleCount"},"userUploaded":{"type":"object","description":"userUploaded"},"evaluationResult":{"type":"object","description":"evaluationResult"},"transformed":{"type":"object","description":"transformed"},"splitted":{"type":"object","description":"splitted"}}},"datasetId":{"type":"string","description":"datasetId","required":true},"sourceDatasetId":{"type":"string","description":"If set, indicates we are creating a new dataset by filtering this existing dataset ID sourceDatasetId"},"filter":{"type":"string","description":"Filter condition (SQL-like WHERE clause) to apply to the source dataset filter"}}},"example":{"dataset":{},"datasetId":"","sourceDatasetId":"","filter":""}}}}}},"/v1/accounts/{account_id}/datasets/{dataset_id}":{"get":{"tags":["Datasets"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"dataset_id","in":"path","description":"The Dataset Id","required":true,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/datasets/{dataset_id}"},"summary":"Get Dataset","description":"Get Dataset","security":[{"bearerAuth":[]}]},"patch":{"tags":["Datasets"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"dataset_id","in":"path","description":"The Dataset Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/datasets/{dataset_id}"},"summary":"Update Dataset","description":"Update Dataset","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"displayName":{"type":"string","description":"displayName"},"createTime":{"type":"string","description":"createTime"},"state":{"type":"string","description":"state","enum":["STATE_UNSPECIFIED","UPLOADING","READY"]},"status":{"type":"object","description":"Mimics [https://github.com/googleapis/googleapis/blob/master/google/rpc/status.proto] status","properties":{"code":{"type":"string","description":"- OK: Not an error; returned on success.\n\nHTTP Mapping: 200 OK\n - CANCELLED: The operation was cancelled, typically by the caller.\n\nHTTP Mapping: 499 Client Closed Request\n - UNKNOWN: Unknown error.  For example, this error may be returned when\na `Status` value received from another address space belongs to\nan error space that is not known in this address space.  Also\nerrors raised by APIs that do not return enough error information\nmay be converted to this error.\n\nHTTP Mapping: 500 Internal Server Error\n - INVALID_ARGUMENT: The client specified an invalid argument.  Note that this differs\nfrom `FAILED_PRECONDITION`.  `INVALID_ARGUMENT` indicates arguments\nthat are problematic regardless of the state of the system\n(e.g., a malformed file name).\n\nHTTP Mapping: 400 Bad Request\n - DEADLINE_EXCEEDED: The deadline expired before the operation could complete. For operations\nthat change the state of the system, this error may be returned\neven if the operation has completed successfully.  For example, a\nsuccessful response from a server could have been delayed long\nenough for the deadline to expire.\n\nHTTP Mapping: 504 Gateway Timeout\n - NOT_FOUND: Some requested entity (e.g., file or directory) was not found.\n\nNote to server developers: if a request is denied for an entire class\nof users, such as gradual feature rollout or undocumented allowlist,\n`NOT_FOUND` may be used. If a request is denied for some users within\na class of users, such as user-based access control, `PERMISSION_DENIED`\nmust be used.\n\nHTTP Mapping: 404 Not Found\n - ALREADY_EXISTS: The entity that a client attempted to create (e.g., file or directory)\nalready exists.\n\nHTTP Mapping: 409 Conflict\n - PERMISSION_DENIED: The caller does not have permission to execute the specified\noperation. `PERMISSION_DENIED` must not be used for rejections\ncaused by exhausting some resource (use `RESOURCE_EXHAUSTED`\ninstead for those errors). `PERMISSION_DENIED` must not be\nused if the caller can not be identified (use `UNAUTHENTICATED`\ninstead for those errors). This error code does not imply the\nrequest is valid or the requested entity exists or satisfies\nother pre-conditions.\n\nHTTP Mapping: 403 Forbidden\n - UNAUTHENTICATED: The request does not have valid authentication credentials for the\noperation.\n\nHTTP Mapping: 401 Unauthorized\n - RESOURCE_EXHAUSTED: Some resource has been exhausted, perhaps a per-user quota, or\nperhaps the entire file system is out of space.\n\nHTTP Mapping: 429 Too Many Requests\n - FAILED_PRECONDITION: The operation was rejected because the system is not in a state\nrequired for the operation's execution.  For example, the directory\nto be deleted is non-empty, an rmdir operation is applied to\na non-directory, etc.\n\nService implementors can use the following guidelines to decide\nbetween `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`:\n (a) Use `UNAVAILABLE` if the client can retry just the failing call.\n (b) Use `ABORTED` if the client should retry at a higher level. For\n     example, when a client-specified test-and-set fails, indicating the\n     client should restart a read-modify-write sequence.\n (c) Use `FAILED_PRECONDITION` if the client should not retry until\n     the system state has been explicitly fixed. For example, if an \"rmdir\"\n     fails because the directory is non-empty, `FAILED_PRECONDITION`\n     should be returned since the client should not retry unless\n     the files are deleted from the directory.\n\nHTTP Mapping: 400 Bad Request\n - ABORTED: The operation was aborted, typically due to a concurrency issue such as\na sequencer check failure or transaction abort.\n\nSee the guidelines above for deciding between `FAILED_PRECONDITION`,\n`ABORTED`, and `UNAVAILABLE`.\n\nHTTP Mapping: 409 Conflict\n - OUT_OF_RANGE: The operation was attempted past the valid range.  E.g., seeking or\nreading past end-of-file.\n\nUnlike `INVALID_ARGUMENT`, this error indicates a problem that may\nbe fixed if the system state changes. For example, a 32-bit file\nsystem will generate `INVALID_ARGUMENT` if asked to read at an\noffset that is not in the range [0,2^32-1], but it will generate\n`OUT_OF_RANGE` if asked to read from an offset past the current\nfile size.\n\nThere is a fair bit of overlap between `FAILED_PRECONDITION` and\n`OUT_OF_RANGE`.  We recommend using `OUT_OF_RANGE` (the more specific\nerror) when it applies so that callers who are iterating through\na space can easily look for an `OUT_OF_RANGE` error to detect when\nthey are done.\n\nHTTP Mapping: 400 Bad Request\n - UNIMPLEMENTED: The operation is not implemented or is not supported/enabled in this\nservice.\n\nHTTP Mapping: 501 Not Implemented\n - INTERNAL: Internal errors.  This means that some invariants expected by the\nunderlying system have been broken.  This error code is reserved\nfor serious errors.\n\nHTTP Mapping: 500 Internal Server Error\n - UNAVAILABLE: The service is currently unavailable.  This is most likely a\ntransient condition, which can be corrected by retrying with\na backoff. Note that it is not always safe to retry\nnon-idempotent operations.\n\nSee the guidelines above for deciding between `FAILED_PRECONDITION`,\n`ABORTED`, and `UNAVAILABLE`.\n\nHTTP Mapping: 503 Service Unavailable\n - DATA_LOSS: Unrecoverable data loss or corruption.\n\nHTTP Mapping: 500 Internal Server Error code","enum":["OK","CANCELLED","UNKNOWN","INVALID_ARGUMENT","DEADLINE_EXCEEDED","NOT_FOUND","ALREADY_EXISTS","PERMISSION_DENIED","UNAUTHENTICATED","RESOURCE_EXHAUSTED","FAILED_PRECONDITION","ABORTED","OUT_OF_RANGE","UNIMPLEMENTED","INTERNAL","UNAVAILABLE","DATA_LOSS"]},"message":{"type":"string","description":"A developer-facing error message in English. message"}}},"exampleCount":{"type":"string","description":"exampleCount"},"userUploaded":{"type":"object","description":"userUploaded"},"evaluationResult":{"type":"object","description":"evaluationResult","properties":{"evaluationJobId":{"type":"string","description":"evaluationJobId"}}},"transformed":{"type":"object","description":"transformed","properties":{"sourceDatasetId":{"type":"string","description":"sourceDatasetId"},"filter":{"type":"string","description":"filter"},"originalFormat":{"type":"string","description":"originalFormat","enum":["FORMAT_UNSPECIFIED","CHAT","COMPLETION","RL"]}}},"splitted":{"type":"object","description":"splitted","properties":{"sourceDatasetId":{"type":"string","description":"sourceDatasetId"}}},"evalProtocol":{"type":"object","description":"evalProtocol"},"externalUrl":{"type":"string","description":"The external URI of the dataset. e.g. gs://foo/bar/baz.jsonl externalUrl"},"format":{"type":"string","description":"format","enum":["FORMAT_UNSPECIFIED","CHAT","COMPLETION","RL"]},"createdBy":{"type":"string","description":"The email address of the user who initiated this fine-tuning job. createdBy"},"updateTime":{"type":"string","description":"The update time for the dataset. updateTime"},"sourceJobName":{"type":"string","description":"The resource name of the job that created this dataset (e.g., batch inference job).\nUsed for lineage tracking to understand dataset provenance. sourceJobName"},"estimatedTokenCount":{"type":"string","description":"The estimated number of tokens in the dataset. estimatedTokenCount"},"averageTurnCount":{"type":"number","description":"An estimate of the average number of turns per sample in the dataset. averageTurnCount"},"encryptionState":{"type":"string","description":"EncryptionState is the authoritative, per-resource CMEK marker: the single\nsource of truth for whether a resource's customer-data artifacts are\nencrypted. It is stamped at resource creation from the owning account's CMEK\nconfig and is immutable for the resource's life, so a resource always reads\nback with the state it was created under regardless of the account's current\nflag. The encrypt-on-write / decrypt-on-read decision for the resource's\ndata keys off this field.\n\n - ENCRYPTION_STATE_UNSPECIFIED: Unstamped/legacy rows that predate CMEK. Treated as PLAINTEXT.\n - ENCRYPTION_STATE_PLAINTEXT: Customer-data artifacts are stored as plaintext (Fireworks-owned, no CMEK).\n - ENCRYPTION_STATE_CMEK: Customer-data artifacts are CMEK-encrypted; reads MUST decrypt (fail-closed). encryptionState","enum":["ENCRYPTION_STATE_UNSPECIFIED","ENCRYPTION_STATE_PLAINTEXT","ENCRYPTION_STATE_CMEK"]}}},"example":{"displayName":"","createTime":"","state":"","status":{},"exampleCount":"","userUploaded":{},"evaluationResult":{},"transformed":{},"splitted":{},"evalProtocol":{},"externalUrl":"","format":"","createdBy":"","updateTime":"","sourceJobName":"","estimatedTokenCount":"","averageTurnCount":"","encryptionState":""}}}}},"delete":{"tags":["Datasets"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"dataset_id","in":"path","description":"The Dataset Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/datasets/{dataset_id}"},"summary":"Delete Dataset","description":"Delete Dataset","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/v1/accounts/{account_id}/datasets/{dataset_id}:getDownloadEndpoint":{"get":{"tags":["Datasets"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"dataset_id","in":"path","description":"The Dataset Id","required":true,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}},{"name":"downloadLineage","in":"query","description":"If true, downloads entire lineage chain (all related datasets).\nFilenames will be prefixed with dataset IDs to avoid collisions.","required":false,"schema":{"type":"boolean","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/datasets/{dataset_id}:getDownloadEndpoint"},"summary":"Get Dataset Download Endpoint","description":"Get Dataset Download Endpoint","security":[{"bearerAuth":[]}]}},"/v1/accounts/{account_id}/datasets/{dataset_id}:getUploadEndpoint":{"post":{"tags":["Datasets"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"dataset_id","in":"path","description":"The Dataset Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/datasets/{dataset_id}:getUploadEndpoint"},"summary":"Get Dataset Upload Endpoint","description":"Get Dataset Upload Endpoint","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"filenameToSize":{"type":"object","description":"A mapping from the file name to its size in bytes. filenameToSize","required":true},"readMask":{"type":"string","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned. readMask"}}},"example":{"filenameToSize":{},"readMask":""}}}}}},"/v1/accounts/{account_id}/datasets/{dataset_id}:splitDataset":{"post":{"tags":["Datasets"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"dataset_id","in":"path","description":"The Dataset Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/datasets/{dataset_id}:splitDataset"},"summary":"Gateway_SplitDataset","description":"Gateway_SplitDataset","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"chunkSize":{"type":"integer","description":"Required. The size of each chunk (minimum 200) chunkSize"},"parent":{"type":"string","description":"The parent account ID of the requester. parent"}}},"example":{"chunkSize":"","parent":""}}}}}},"/v1/accounts/{account_id}/datasets/{dataset_id}:validateUpload":{"post":{"tags":["Datasets"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"dataset_id","in":"path","description":"The Dataset Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/datasets/{dataset_id}:validateUpload"},"summary":"Validate Dataset Upload","description":"Validate Dataset Upload","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/v1/accounts/{account_id}/deployedModels":{"get":{"tags":["Models"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"pageSize","in":"query","description":"The maximum number of deployed models to return. The maximum page_size is 200,\nvalues above 200 will be coerced to 200.\nIf unspecified, the default is 50.","required":false,"schema":{"type":"integer","example":""}},{"name":"pageToken","in":"query","description":"A page token, received from a previous ListDeployedModels call. Provide this\nto retrieve the subsequent page. When paginating, all other parameters\nprovided to ListDeployedModels must match the call that provided the page\ntoken.","required":false,"schema":{"type":"string","example":""}},{"name":"filter","in":"query","description":"Only depoyed models satisfying the provided filter (if specified) will be\nreturned. See https://google.aip.dev/160 for the filter grammar.","required":false,"schema":{"type":"string","example":""}},{"name":"orderBy","in":"query","description":"A comma-separated list of fields to order by. e.g. \"foo,bar\"\nThe default sort order is ascending. To specify a descending order for a\nfield, append a \" desc\" suffix. e.g. \"foo desc,bar\"\nSubfields are specified with a \".\" character. e.g. \"foo.bar\"\nIf not specified, the default order is by \"name\".","required":false,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/deployedModels"},"summary":"List LoRAs","description":"List LoRAs","security":[{"bearerAuth":[]}]},"post":{"tags":["Models"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"replaceMergedAddon","in":"query","description":"Merges new addon to the base model, while unmerging/deleting any existing addon in the deployment. Must be specified for hot reload deployments","required":false,"schema":{"type":"boolean","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/deployedModels"},"summary":"Load LoRA","description":"Load LoRA","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"The resource name. e.g. accounts/my-account/deployedModels/my-deployed-model name"},"displayName":{"type":"string","description":"displayName"},"description":{"type":"string","description":"Description of the resource. description"},"createTime":{"type":"string","description":"The creation time of the resource. createTime"},"model":{"type":"string","description":"The resource name of the model to be deployed.\ne.g. accounts/my-account/models/my-model model"},"deployment":{"type":"string","description":"The resource name of the base deployment the model is deployed to. deployment"},"default":{"type":"boolean","description":"If true, this is the default target when querying this model without\nthe `#<deployment>` suffix.\nThe first deployment a model is deployed to will have this field set to true. default"},"state":{"type":"string","description":"- UNDEPLOYING: The model is being undeployed.\n - DEPLOYING: The model is being deployed.\n - DEPLOYED: The model is deployed and ready for inference.\n - UPDATING: there are updates happening with the deployed model state","enum":["STATE_UNSPECIFIED","UNDEPLOYING","DEPLOYING","DEPLOYED","UPDATING"]},"serverless":{"type":"boolean","description":"True if the underlying deployment is managed by Fireworks serverless"},"status":{"type":"object","description":"Mimics [https://github.com/googleapis/googleapis/blob/master/google/rpc/status.proto] status","properties":{"code":{"type":"string","description":"- OK: Not an error; returned on success.\n\nHTTP Mapping: 200 OK\n - CANCELLED: The operation was cancelled, typically by the caller.\n\nHTTP Mapping: 499 Client Closed Request\n - UNKNOWN: Unknown error.  For example, this error may be returned when\na `Status` value received from another address space belongs to\nan error space that is not known in this address space.  Also\nerrors raised by APIs that do not return enough error information\nmay be converted to this error.\n\nHTTP Mapping: 500 Internal Server Error\n - INVALID_ARGUMENT: The client specified an invalid argument.  Note that this differs\nfrom `FAILED_PRECONDITION`.  `INVALID_ARGUMENT` indicates arguments\nthat are problematic regardless of the state of the system\n(e.g., a malformed file name).\n\nHTTP Mapping: 400 Bad Request\n - DEADLINE_EXCEEDED: The deadline expired before the operation could complete. For operations\nthat change the state of the system, this error may be returned\neven if the operation has completed successfully.  For example, a\nsuccessful response from a server could have been delayed long\nenough for the deadline to expire.\n\nHTTP Mapping: 504 Gateway Timeout\n - NOT_FOUND: Some requested entity (e.g., file or directory) was not found.\n\nNote to server developers: if a request is denied for an entire class\nof users, such as gradual feature rollout or undocumented allowlist,\n`NOT_FOUND` may be used. If a request is denied for some users within\na class of users, such as user-based access control, `PERMISSION_DENIED`\nmust be used.\n\nHTTP Mapping: 404 Not Found\n - ALREADY_EXISTS: The entity that a client attempted to create (e.g., file or directory)\nalready exists.\n\nHTTP Mapping: 409 Conflict\n - PERMISSION_DENIED: The caller does not have permission to execute the specified\noperation. `PERMISSION_DENIED` must not be used for rejections\ncaused by exhausting some resource (use `RESOURCE_EXHAUSTED`\ninstead for those errors). `PERMISSION_DENIED` must not be\nused if the caller can not be identified (use `UNAUTHENTICATED`\ninstead for those errors). This error code does not imply the\nrequest is valid or the requested entity exists or satisfies\nother pre-conditions.\n\nHTTP Mapping: 403 Forbidden\n - UNAUTHENTICATED: The request does not have valid authentication credentials for the\noperation.\n\nHTTP Mapping: 401 Unauthorized\n - RESOURCE_EXHAUSTED: Some resource has been exhausted, perhaps a per-user quota, or\nperhaps the entire file system is out of space.\n\nHTTP Mapping: 429 Too Many Requests\n - FAILED_PRECONDITION: The operation was rejected because the system is not in a state\nrequired for the operation's execution.  For example, the directory\nto be deleted is non-empty, an rmdir operation is applied to\na non-directory, etc.\n\nService implementors can use the following guidelines to decide\nbetween `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`:\n (a) Use `UNAVAILABLE` if the client can retry just the failing call.\n (b) Use `ABORTED` if the client should retry at a higher level. For\n     example, when a client-specified test-and-set fails, indicating the\n     client should restart a read-modify-write sequence.\n (c) Use `FAILED_PRECONDITION` if the client should not retry until\n     the system state has been explicitly fixed. For example, if an \"rmdir\"\n     fails because the directory is non-empty, `FAILED_PRECONDITION`\n     should be returned since the client should not retry unless\n     the files are deleted from the directory.\n\nHTTP Mapping: 400 Bad Request\n - ABORTED: The operation was aborted, typically due to a concurrency issue such as\na sequencer check failure or transaction abort.\n\nSee the guidelines above for deciding between `FAILED_PRECONDITION`,\n`ABORTED`, and `UNAVAILABLE`.\n\nHTTP Mapping: 409 Conflict\n - OUT_OF_RANGE: The operation was attempted past the valid range.  E.g., seeking or\nreading past end-of-file.\n\nUnlike `INVALID_ARGUMENT`, this error indicates a problem that may\nbe fixed if the system state changes. For example, a 32-bit file\nsystem will generate `INVALID_ARGUMENT` if asked to read at an\noffset that is not in the range [0,2^32-1], but it will generate\n`OUT_OF_RANGE` if asked to read from an offset past the current\nfile size.\n\nThere is a fair bit of overlap between `FAILED_PRECONDITION` and\n`OUT_OF_RANGE`.  We recommend using `OUT_OF_RANGE` (the more specific\nerror) when it applies so that callers who are iterating through\na space can easily look for an `OUT_OF_RANGE` error to detect when\nthey are done.\n\nHTTP Mapping: 400 Bad Request\n - UNIMPLEMENTED: The operation is not implemented or is not supported/enabled in this\nservice.\n\nHTTP Mapping: 501 Not Implemented\n - INTERNAL: Internal errors.  This means that some invariants expected by the\nunderlying system have been broken.  This error code is reserved\nfor serious errors.\n\nHTTP Mapping: 500 Internal Server Error\n - UNAVAILABLE: The service is currently unavailable.  This is most likely a\ntransient condition, which can be corrected by retrying with\na backoff. Note that it is not always safe to retry\nnon-idempotent operations.\n\nSee the guidelines above for deciding between `FAILED_PRECONDITION`,\n`ABORTED`, and `UNAVAILABLE`.\n\nHTTP Mapping: 503 Service Unavailable\n - DATA_LOSS: Unrecoverable data loss or corruption.\n\nHTTP Mapping: 500 Internal Server Error code","enum":["OK","CANCELLED","UNKNOWN","INVALID_ARGUMENT","DEADLINE_EXCEEDED","NOT_FOUND","ALREADY_EXISTS","PERMISSION_DENIED","UNAUTHENTICATED","RESOURCE_EXHAUSTED","FAILED_PRECONDITION","ABORTED","OUT_OF_RANGE","UNIMPLEMENTED","INTERNAL","UNAVAILABLE","DATA_LOSS"]},"message":{"type":"string","description":"A developer-facing error message in English. message"}}},"public":{"type":"boolean","description":"If true, the deployed model will be publicly reachable. public"},"updateTime":{"type":"string","description":"The update time for the deployed model. updateTime"}}},"example":{"name":"","displayName":"","description":"","createTime":"","model":"","deployment":"","default":"","state":"","serverless":"","status":{},"public":"","updateTime":""}}}}}},"/v1/accounts/{account_id}/deployedModels/{deployed_model_id}":{"get":{"tags":["Models"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"deployed_model_id","in":"path","description":"The Deployed Model Id","required":true,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/deployedModels/{deployed_model_id}"},"summary":"Get LoRA","description":"Get LoRA","security":[{"bearerAuth":[]}]},"patch":{"tags":["Models"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"deployed_model_id","in":"path","description":"The Deployed Model Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/deployedModels/{deployed_model_id}"},"summary":"Update LoRA","description":"Update LoRA","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"displayName":{"type":"string","description":"displayName"},"description":{"type":"string","description":"Description of the resource. description"},"createTime":{"type":"string","description":"The creation time of the resource. createTime"},"model":{"type":"string","description":"The resource name of the model to be deployed.\ne.g. accounts/my-account/models/my-model model"},"deployment":{"type":"string","description":"The resource name of the base deployment the model is deployed to. deployment"},"default":{"type":"boolean","description":"If true, this is the default target when querying this model without\nthe `#<deployment>` suffix.\nThe first deployment a model is deployed to will have this field set to true. default"},"state":{"type":"string","description":"- UNDEPLOYING: The model is being undeployed.\n - DEPLOYING: The model is being deployed.\n - DEPLOYED: The model is deployed and ready for inference.\n - UPDATING: there are updates happening with the deployed model state","enum":["STATE_UNSPECIFIED","UNDEPLOYING","DEPLOYING","DEPLOYED","UPDATING"]},"serverless":{"type":"boolean","description":"True if the underlying deployment is managed by Fireworks serverless"},"status":{"type":"object","description":"Mimics [https://github.com/googleapis/googleapis/blob/master/google/rpc/status.proto] status","properties":{"code":{"type":"string","description":"- OK: Not an error; returned on success.\n\nHTTP Mapping: 200 OK\n - CANCELLED: The operation was cancelled, typically by the caller.\n\nHTTP Mapping: 499 Client Closed Request\n - UNKNOWN: Unknown error.  For example, this error may be returned when\na `Status` value received from another address space belongs to\nan error space that is not known in this address space.  Also\nerrors raised by APIs that do not return enough error information\nmay be converted to this error.\n\nHTTP Mapping: 500 Internal Server Error\n - INVALID_ARGUMENT: The client specified an invalid argument.  Note that this differs\nfrom `FAILED_PRECONDITION`.  `INVALID_ARGUMENT` indicates arguments\nthat are problematic regardless of the state of the system\n(e.g., a malformed file name).\n\nHTTP Mapping: 400 Bad Request\n - DEADLINE_EXCEEDED: The deadline expired before the operation could complete. For operations\nthat change the state of the system, this error may be returned\neven if the operation has completed successfully.  For example, a\nsuccessful response from a server could have been delayed long\nenough for the deadline to expire.\n\nHTTP Mapping: 504 Gateway Timeout\n - NOT_FOUND: Some requested entity (e.g., file or directory) was not found.\n\nNote to server developers: if a request is denied for an entire class\nof users, such as gradual feature rollout or undocumented allowlist,\n`NOT_FOUND` may be used. If a request is denied for some users within\na class of users, such as user-based access control, `PERMISSION_DENIED`\nmust be used.\n\nHTTP Mapping: 404 Not Found\n - ALREADY_EXISTS: The entity that a client attempted to create (e.g., file or directory)\nalready exists.\n\nHTTP Mapping: 409 Conflict\n - PERMISSION_DENIED: The caller does not have permission to execute the specified\noperation. `PERMISSION_DENIED` must not be used for rejections\ncaused by exhausting some resource (use `RESOURCE_EXHAUSTED`\ninstead for those errors). `PERMISSION_DENIED` must not be\nused if the caller can not be identified (use `UNAUTHENTICATED`\ninstead for those errors). This error code does not imply the\nrequest is valid or the requested entity exists or satisfies\nother pre-conditions.\n\nHTTP Mapping: 403 Forbidden\n - UNAUTHENTICATED: The request does not have valid authentication credentials for the\noperation.\n\nHTTP Mapping: 401 Unauthorized\n - RESOURCE_EXHAUSTED: Some resource has been exhausted, perhaps a per-user quota, or\nperhaps the entire file system is out of space.\n\nHTTP Mapping: 429 Too Many Requests\n - FAILED_PRECONDITION: The operation was rejected because the system is not in a state\nrequired for the operation's execution.  For example, the directory\nto be deleted is non-empty, an rmdir operation is applied to\na non-directory, etc.\n\nService implementors can use the following guidelines to decide\nbetween `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`:\n (a) Use `UNAVAILABLE` if the client can retry just the failing call.\n (b) Use `ABORTED` if the client should retry at a higher level. For\n     example, when a client-specified test-and-set fails, indicating the\n     client should restart a read-modify-write sequence.\n (c) Use `FAILED_PRECONDITION` if the client should not retry until\n     the system state has been explicitly fixed. For example, if an \"rmdir\"\n     fails because the directory is non-empty, `FAILED_PRECONDITION`\n     should be returned since the client should not retry unless\n     the files are deleted from the directory.\n\nHTTP Mapping: 400 Bad Request\n - ABORTED: The operation was aborted, typically due to a concurrency issue such as\na sequencer check failure or transaction abort.\n\nSee the guidelines above for deciding between `FAILED_PRECONDITION`,\n`ABORTED`, and `UNAVAILABLE`.\n\nHTTP Mapping: 409 Conflict\n - OUT_OF_RANGE: The operation was attempted past the valid range.  E.g., seeking or\nreading past end-of-file.\n\nUnlike `INVALID_ARGUMENT`, this error indicates a problem that may\nbe fixed if the system state changes. For example, a 32-bit file\nsystem will generate `INVALID_ARGUMENT` if asked to read at an\noffset that is not in the range [0,2^32-1], but it will generate\n`OUT_OF_RANGE` if asked to read from an offset past the current\nfile size.\n\nThere is a fair bit of overlap between `FAILED_PRECONDITION` and\n`OUT_OF_RANGE`.  We recommend using `OUT_OF_RANGE` (the more specific\nerror) when it applies so that callers who are iterating through\na space can easily look for an `OUT_OF_RANGE` error to detect when\nthey are done.\n\nHTTP Mapping: 400 Bad Request\n - UNIMPLEMENTED: The operation is not implemented or is not supported/enabled in this\nservice.\n\nHTTP Mapping: 501 Not Implemented\n - INTERNAL: Internal errors.  This means that some invariants expected by the\nunderlying system have been broken.  This error code is reserved\nfor serious errors.\n\nHTTP Mapping: 500 Internal Server Error\n - UNAVAILABLE: The service is currently unavailable.  This is most likely a\ntransient condition, which can be corrected by retrying with\na backoff. Note that it is not always safe to retry\nnon-idempotent operations.\n\nSee the guidelines above for deciding between `FAILED_PRECONDITION`,\n`ABORTED`, and `UNAVAILABLE`.\n\nHTTP Mapping: 503 Service Unavailable\n - DATA_LOSS: Unrecoverable data loss or corruption.\n\nHTTP Mapping: 500 Internal Server Error code","enum":["OK","CANCELLED","UNKNOWN","INVALID_ARGUMENT","DEADLINE_EXCEEDED","NOT_FOUND","ALREADY_EXISTS","PERMISSION_DENIED","UNAUTHENTICATED","RESOURCE_EXHAUSTED","FAILED_PRECONDITION","ABORTED","OUT_OF_RANGE","UNIMPLEMENTED","INTERNAL","UNAVAILABLE","DATA_LOSS"]},"message":{"type":"string","description":"A developer-facing error message in English. message"}}},"public":{"type":"boolean","description":"If true, the deployed model will be publicly reachable. public"},"updateTime":{"type":"string","description":"The update time for the deployed model. updateTime"}}},"example":{"displayName":"","description":"","createTime":"","model":"","deployment":"","default":"","state":"","serverless":"","status":{},"public":"","updateTime":""}}}}},"delete":{"tags":["Models"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"deployed_model_id","in":"path","description":"The Deployed Model Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/deployedModels/{deployed_model_id}"},"summary":"Unload LoRA","description":"Unload LoRA","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/v1/accounts/{account_id}/deploymentShapes":{"get":{"tags":["Deployments"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"pageSize","in":"query","description":"The maximum number of deployments to return. The maximum page_size is 200,\nvalues above 200 will be coerced to 200.\nIf unspecified, the default is 50.","required":false,"schema":{"type":"integer","example":""}},{"name":"pageToken","in":"query","description":"A page token, received from a previous ListDeploymentShapes call. Provide this\nto retrieve the subsequent page. When paginating, all other parameters\nprovided to ListDeploymentShapes must match the call that provided the page\ntoken.","required":false,"schema":{"type":"string","example":""}},{"name":"filter","in":"query","description":"Only deployment satisfying the provided filter (if specified) will be\nreturned. See https://google.aip.dev/160 for the filter grammar.","required":false,"schema":{"type":"string","example":""}},{"name":"orderBy","in":"query","description":"A comma-separated list of fields to order by. e.g. \"foo,bar\"\nThe default sort order is ascending. To specify a descending order for a\nfield, append a \" desc\" suffix. e.g. \"foo desc,bar\"\nSubfields are specified with a \".\" character. e.g. \"foo.bar\"\nIf not specified, the default order is by \"create_time\".","required":false,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}},{"name":"targetModel","in":"query","description":"Target model that the returned deployment shapes should be compatible with.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/deploymentShapes"},"summary":"List Deployment Shapes","description":"List Deployment Shapes","security":[{"bearerAuth":[]}]},"post":{"tags":["Deployments"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"deploymentShapeId","in":"query","description":"The ID of the deployment shape. If not specified, a random ID will be generated.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/deploymentShapes"},"summary":"CRUD APIs for deployment shape.\nCreate Deployment Shape","description":"CRUD APIs for deployment shape.\nCreate Deployment Shape","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"The resource name of the deployment shape. e.g. accounts/my-account/deploymentShapes/my-deployment-shape name"},"displayName":{"type":"string","description":"Human-readable display name of the deployment shape. e.g. \"My Deployment Shape\"\nMust be fewer than 64 characters long. displayName"},"description":{"type":"string","description":"The description of the deployment shape. Must be fewer than 1000 characters long. description"},"createTime":{"type":"string","description":"The creation time of the deployment shape. createTime"},"updateTime":{"type":"string","description":"The update time for the deployment shape. updateTime"},"baseModel":{"type":"string","description":"Mutable, but only via UpdateDeploymentShape and only to a compatible model:\none with the same model_type, parameter_count, and embedding status. The\nderived model_type / parameter_count fields (OUTPUT_ONLY, IMMUTABLE) are\ntherefore preserved across a swap. Any incompatible change is rejected. baseModel","required":true},"modelType":{"type":"string","description":"The model type of the base model. modelType"},"parameterCount":{"type":"string","description":"The parameter count of the base model . parameterCount"},"acceleratorCount":{"type":"integer","description":"The number of accelerators used per replica.\nIf not specified, the default is the estimated minimum required by the base model. acceleratorCount"},"acceleratorType":{"type":"string","description":"acceleratorType","enum":["ACCELERATOR_TYPE_UNSPECIFIED","NVIDIA_A100_80GB","NVIDIA_H100_80GB","AMD_MI300X_192GB","NVIDIA_A10G_24GB","NVIDIA_A100_40GB","NVIDIA_L4_24GB","NVIDIA_H200_141GB","NVIDIA_B200_180GB","AMD_MI325X_256GB","AMD_MI350X_288GB","NVIDIA_B300_288GB","NVIDIA_GB200","NVIDIA_GB300"]},"precision":{"type":"string","description":"- PRECISION_UNSPECIFIED: if left unspecified we will treat this as a legacy model created before\nself serve precision","enum":["PRECISION_UNSPECIFIED","FP16","FP8","FP8_MM","FP8_AR","FP8_MM_KV_ATTN","FP8_KV","FP8_MM_V2","FP8_V2","FP8_MM_KV_ATTN_V2","NF4","FP4","BF16","FP4_BLOCKSCALED_MM","FP4_MX_MOE"]},"disableDeploymentSizeValidation":{"type":"boolean","description":"If true, the deployment size validation is disabled. disableDeploymentSizeValidation"},"enableAddons":{"type":"boolean","description":"If true, LORA addons are enabled for deployments created from this shape.\nDeprecated: set enable_addons on the deployment instead. enableAddons"},"draftTokenCount":{"type":"integer","description":"The number of candidate tokens to generate per step for speculative\ndecoding.\nDefault is the base model's draft_token_count. draftTokenCount"},"draftModel":{"type":"string","description":"The draft model name for speculative decoding. e.g. accounts/fireworks/models/my-draft-model\nIf empty, speculative decoding using a draft model is disabled.\nDefault is the base model's default_draft_model.\nDeprecated: set default_draft_model on the base model instead. draftModel"},"ngramSpeculationLength":{"type":"integer","description":"The length of previous input sequence to be considered for N-gram speculation. ngramSpeculationLength"},"disableSpeculativeDecoding":{"type":"boolean","description":"DEPRECATED: This field is a no-op. Speculative decoding is configured on deployment. disableSpeculativeDecoding"},"enableSessionAffinity":{"type":"boolean","description":"Whether to apply sticky routing based on `user` field. enableSessionAffinity"},"numLoraDeviceCached":{"type":"integer","description":"How many LORA adapters to keep on GPU side for caching numLoraDeviceCached"},"maxContextLength":{"type":"integer","description":"The maximum context length supported by the model (context window).\nIf set to 0 or not specified, the model's default maximum context length will be used. maxContextLength"},"presetType":{"type":"string","description":"- MINIMAL: Preset for cheapest & most minimal type of deployment\n - FAST: Preset for fastest generation & TTFT deployment\n - THROUGHPUT: Preset for best throughput deployment\n - FULL_PRECISION: Preset for deployment with full precision for training & most accurate numerics\n - AGENTIC_CODING: Preset for autonomous code generation and analysis for development workflows\n - CHAT: Preset for interactive conversational AI for customer engagement\n - SUMMARIZATION: Preset for efficient document and content summarization\n - MULTI_LORA: Preset for multi-LORA serving (deployments that can enable LORA addons) presetType","enum":["PRESET_TYPE_UNSPECIFIED","MINIMAL","FAST","THROUGHPUT","FULL_PRECISION","AGENTIC_CODING","CHAT","SUMMARIZATION","MULTI_LORA"]}}},"example":{"name":"","displayName":"","description":"","createTime":"","updateTime":"","baseModel":"","modelType":"","parameterCount":"","acceleratorCount":"","acceleratorType":"","precision":"","disableDeploymentSizeValidation":"","enableAddons":"","draftTokenCount":"","draftModel":"","ngramSpeculationLength":"","disableSpeculativeDecoding":"","enableSessionAffinity":"","numLoraDeviceCached":"","maxContextLength":"","presetType":""}}}}}},"/v1/accounts/{account_id}/deploymentShapes/{deployment_shape_id}":{"get":{"tags":["Deployments"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"deployment_shape_id","in":"path","description":"The Deployment Shape Id","required":true,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}},{"name":"skipShapeValidation","in":"query","description":"If true, returns the latest version regardless of validation status.\nBy default, returns the latest validated version.","required":false,"schema":{"type":"boolean","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/deploymentShapes/{deployment_shape_id}"},"summary":"Get Deployment Shape","description":"Get Deployment Shape","security":[{"bearerAuth":[]}]},"patch":{"tags":["Deployments"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"deployment_shape_id","in":"path","description":"The Deployment Shape Id","required":true,"schema":{"type":"string","example":""}},{"name":"fromLatestValidated","in":"query","description":"When true, the update will use the latest validated version snapshot as the base\nfor fields not present in the update mask; otherwise, the current shape is used.","required":false,"schema":{"type":"boolean","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/deploymentShapes/{deployment_shape_id}"},"summary":"Update Deployment Shape","description":"Update Deployment Shape","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"displayName":{"type":"string","description":"Human-readable display name of the deployment shape. e.g. \"My Deployment Shape\"\nMust be fewer than 64 characters long. displayName"},"description":{"type":"string","description":"The description of the deployment shape. Must be fewer than 1000 characters long. description"},"createTime":{"type":"string","description":"The creation time of the deployment shape. createTime"},"updateTime":{"type":"string","description":"The update time for the deployment shape. updateTime"},"baseModel":{"type":"string","description":"Mutable, but only via UpdateDeploymentShape and only to a compatible model:\none with the same model_type, parameter_count, and embedding status. The\nderived model_type / parameter_count fields (OUTPUT_ONLY, IMMUTABLE) are\ntherefore preserved across a swap. Any incompatible change is rejected. baseModel","required":true},"modelType":{"type":"string","description":"The model type of the base model. modelType"},"parameterCount":{"type":"string","description":"The parameter count of the base model . parameterCount"},"acceleratorCount":{"type":"integer","description":"The number of accelerators used per replica.\nIf not specified, the default is the estimated minimum required by the base model. acceleratorCount"},"acceleratorType":{"type":"string","description":"acceleratorType","enum":["ACCELERATOR_TYPE_UNSPECIFIED","NVIDIA_A100_80GB","NVIDIA_H100_80GB","AMD_MI300X_192GB","NVIDIA_A10G_24GB","NVIDIA_A100_40GB","NVIDIA_L4_24GB","NVIDIA_H200_141GB","NVIDIA_B200_180GB","AMD_MI325X_256GB","AMD_MI350X_288GB","NVIDIA_B300_288GB","NVIDIA_GB200","NVIDIA_GB300"]},"precision":{"type":"string","description":"- PRECISION_UNSPECIFIED: if left unspecified we will treat this as a legacy model created before\nself serve precision","enum":["PRECISION_UNSPECIFIED","FP16","FP8","FP8_MM","FP8_AR","FP8_MM_KV_ATTN","FP8_KV","FP8_MM_V2","FP8_V2","FP8_MM_KV_ATTN_V2","NF4","FP4","BF16","FP4_BLOCKSCALED_MM","FP4_MX_MOE"]},"disableDeploymentSizeValidation":{"type":"boolean","description":"If true, the deployment size validation is disabled. disableDeploymentSizeValidation"},"enableAddons":{"type":"boolean","description":"If true, LORA addons are enabled for deployments created from this shape.\nDeprecated: set enable_addons on the deployment instead. enableAddons"},"draftTokenCount":{"type":"integer","description":"The number of candidate tokens to generate per step for speculative\ndecoding.\nDefault is the base model's draft_token_count. draftTokenCount"},"draftModel":{"type":"string","description":"The draft model name for speculative decoding. e.g. accounts/fireworks/models/my-draft-model\nIf empty, speculative decoding using a draft model is disabled.\nDefault is the base model's default_draft_model.\nDeprecated: set default_draft_model on the base model instead. draftModel"},"ngramSpeculationLength":{"type":"integer","description":"The length of previous input sequence to be considered for N-gram speculation. ngramSpeculationLength"},"disableSpeculativeDecoding":{"type":"boolean","description":"DEPRECATED: This field is a no-op. Speculative decoding is configured on deployment. disableSpeculativeDecoding"},"enableSessionAffinity":{"type":"boolean","description":"Whether to apply sticky routing based on `user` field. enableSessionAffinity"},"numLoraDeviceCached":{"type":"integer","description":"How many LORA adapters to keep on GPU side for caching numLoraDeviceCached"},"maxContextLength":{"type":"integer","description":"The maximum context length supported by the model (context window).\nIf set to 0 or not specified, the model's default maximum context length will be used. maxContextLength"},"presetType":{"type":"string","description":"- MINIMAL: Preset for cheapest & most minimal type of deployment\n - FAST: Preset for fastest generation & TTFT deployment\n - THROUGHPUT: Preset for best throughput deployment\n - FULL_PRECISION: Preset for deployment with full precision for training & most accurate numerics\n - AGENTIC_CODING: Preset for autonomous code generation and analysis for development workflows\n - CHAT: Preset for interactive conversational AI for customer engagement\n - SUMMARIZATION: Preset for efficient document and content summarization\n - MULTI_LORA: Preset for multi-LORA serving (deployments that can enable LORA addons) presetType","enum":["PRESET_TYPE_UNSPECIFIED","MINIMAL","FAST","THROUGHPUT","FULL_PRECISION","AGENTIC_CODING","CHAT","SUMMARIZATION","MULTI_LORA"]}}},"example":{"displayName":"","description":"","createTime":"","updateTime":"","baseModel":"","modelType":"","parameterCount":"","acceleratorCount":"","acceleratorType":"","precision":"","disableDeploymentSizeValidation":"","enableAddons":"","draftTokenCount":"","draftModel":"","ngramSpeculationLength":"","disableSpeculativeDecoding":"","enableSessionAffinity":"","numLoraDeviceCached":"","maxContextLength":"","presetType":""}}}}},"delete":{"tags":["Deployments"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"deployment_shape_id","in":"path","description":"The Deployment Shape Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/deploymentShapes/{deployment_shape_id}"},"summary":"Delete Deployment Shape","description":"Delete Deployment Shape","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/v1/accounts/{account_id}/deploymentShapes/{deployment_shape_id}/versions":{"get":{"tags":["Model Versions"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"deployment_shape_id","in":"path","description":"The Deployment Shape Id","required":true,"schema":{"type":"string","example":""}},{"name":"pageSize","in":"query","description":"The maximum number of deployment shape versions to return. The maximum page_size is 200,\nvalues above 200 will be coerced to 200.\nIf unspecified, the default is 50.","required":false,"schema":{"type":"integer","example":""}},{"name":"pageToken","in":"query","description":"A page token, received from a previous ListDeploymentShapeVersions call. Provide this\nto retrieve the subsequent page. When paginating, all other parameters\nprovided to ListDeploymentShapeVersions must match the call that provided the page\ntoken.","required":false,"schema":{"type":"string","example":""}},{"name":"filter","in":"query","description":"Only deployment shape versions satisfying the provided filter (if specified) will be\nreturned. See https://google.aip.dev/160 for the filter grammar.","required":false,"schema":{"type":"string","example":""}},{"name":"orderBy","in":"query","description":"A comma-separated list of fields to order by. e.g. \"foo,bar\"\nThe default sort order is ascending. To specify a descending order for a\nfield, append a \" desc\" suffix. e.g. \"foo desc,bar\"\nSubfields are specified with a \".\" character. e.g. \"foo.bar\"\nIf not specified, the default order is by \"create_time\".","required":false,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/deploymentShapes/{deployment_shape_id}/versions"},"summary":"List Deployment Shapes Versions","description":"List Deployment Shapes Versions","security":[{"bearerAuth":[]}]}},"/v1/accounts/{account_id}/deploymentShapes/{deployment_shape_id}/versions/{version_id}":{"get":{"tags":["Model Versions"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"deployment_shape_id","in":"path","description":"The Deployment Shape Id","required":true,"schema":{"type":"string","example":""}},{"name":"version_id","in":"path","description":"The Version Id","required":true,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/deploymentShapes/{deployment_shape_id}/versions/{version_id}"},"summary":"Get Deployment Shape Version","description":"Get Deployment Shape Version","security":[{"bearerAuth":[]}]},"patch":{"tags":["Model Versions"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"deployment_shape_id","in":"path","description":"The Deployment Shape Id","required":true,"schema":{"type":"string","example":""}},{"name":"version_id","in":"path","description":"The Version Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/deploymentShapes/{deployment_shape_id}/versions/{version_id}"},"summary":"Update Deployment Shape Version","description":"Update Deployment Shape Version","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"createTime":{"type":"string","description":"The creation time of the deployment shape version. Lists will be ordered by this field. createTime"},"snapshot":{"type":"object","description":"A deployment shape is a set of parameters that define the shape of a deployment.\nDeployments are created from a deployment shape. snapshot","properties":{"name":{"type":"string","description":"The resource name of the deployment shape. e.g. accounts/my-account/deploymentShapes/my-deployment-shape name"},"displayName":{"type":"string","description":"Human-readable display name of the deployment shape. e.g. \"My Deployment Shape\"\nMust be fewer than 64 characters long. displayName"},"description":{"type":"string","description":"The description of the deployment shape. Must be fewer than 1000 characters long. description"},"createTime":{"type":"string","description":"The creation time of the deployment shape. createTime"},"updateTime":{"type":"string","description":"The update time for the deployment shape. updateTime"},"baseModel":{"type":"string","description":"Mutable, but only via UpdateDeploymentShape and only to a compatible model:\none with the same model_type, parameter_count, and embedding status. The\nderived model_type / parameter_count fields (OUTPUT_ONLY, IMMUTABLE) are\ntherefore preserved across a swap. Any incompatible change is rejected. baseModel"},"modelType":{"type":"string","description":"The model type of the base model. modelType"},"parameterCount":{"type":"string","description":"The parameter count of the base model . parameterCount"},"acceleratorCount":{"type":"integer","description":"The number of accelerators used per replica.\nIf not specified, the default is the estimated minimum required by the base model. acceleratorCount"},"acceleratorType":{"type":"string","description":"acceleratorType","enum":["ACCELERATOR_TYPE_UNSPECIFIED","NVIDIA_A100_80GB","NVIDIA_H100_80GB","AMD_MI300X_192GB","NVIDIA_A10G_24GB","NVIDIA_A100_40GB","NVIDIA_L4_24GB","NVIDIA_H200_141GB","NVIDIA_B200_180GB","AMD_MI325X_256GB","AMD_MI350X_288GB","NVIDIA_B300_288GB","NVIDIA_GB200","NVIDIA_GB300"]}}},"validated":{"type":"boolean","description":"If true, this version has been validated. validated"},"public":{"type":"boolean","description":"If true, this version will be publicly readable. public"},"latestValidated":{"type":"boolean","description":"If true, this version is the latest validated version.\nOnly one version of the shape can be the latest validated version. latestValidated"},"capabilities":{"type":"array","description":"The capabilities supported by this deployment shape version. capabilities","items":{"type":"object","properties":{}}}}},"example":{"createTime":"","snapshot":{},"validated":"","public":"","latestValidated":"","capabilities":[]}}}}}},"/v1/accounts/{account_id}/deployments":{"get":{"tags":["Deployments"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"pageSize","in":"query","description":"The maximum number of deployments to return. The maximum page_size is 200,\nvalues above 200 will be coerced to 200.\nIf unspecified, the default is 50.","required":false,"schema":{"type":"integer","example":""}},{"name":"pageToken","in":"query","description":"A page token, received from a previous ListDeployments call. Provide this\nto retrieve the subsequent page. When paginating, all other parameters\nprovided to ListDeployments must match the call that provided the page\ntoken.","required":false,"schema":{"type":"string","example":""}},{"name":"filter","in":"query","description":"Only deployment satisfying the provided filter (if specified) will be\nreturned. See https://google.aip.dev/160 for the filter grammar.","required":false,"schema":{"type":"string","example":""}},{"name":"orderBy","in":"query","description":"A comma-separated list of fields to order by. e.g. \"foo,bar\"\nThe default sort order is ascending. To specify a descending order for a\nfield, append a \" desc\" suffix. e.g. \"foo desc,bar\"\nSubfields are specified with a \".\" character. e.g. \"foo.bar\"\nIf not specified, the default order is by \"create_time\".","required":false,"schema":{"type":"string","example":""}},{"name":"showDeleted","in":"query","description":"If set, DELETED deployments will be included.","required":false,"schema":{"type":"boolean","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/deployments"},"summary":"List Deployments","description":"List Deployments","security":[{"bearerAuth":[]}]},"post":{"tags":["Deployments"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"disableAutoDeploy","in":"query","description":"By default, a deployment created with a currently undeployed base model\nwill be deployed to this deployment. If true, this auto-deploy function\nis disabled.","required":false,"schema":{"type":"boolean","example":""}},{"name":"disableSpeculativeDecoding","in":"query","description":"By default, a deployment will use the speculative decoding settings from\nthe base model. If true, this will disable speculative decoding.","required":false,"schema":{"type":"boolean","example":""}},{"name":"deploymentId","in":"query","description":"The ID of the deployment. If not specified, a random ID will be generated.","required":false,"schema":{"type":"string","example":""}},{"name":"validateOnly","in":"query","description":"If true, this will not create the deployment, but will return the deployment\nthat would be created.","required":false,"schema":{"type":"boolean","example":""}},{"name":"skipShapeValidation","in":"query","description":"By default, a deployment will ensure the deployment shape provided is validated.\nIf true, we will not require the deployment shape to be validated.","required":false,"schema":{"type":"boolean","example":""}},{"name":"skipImageTagValidation","in":"query","description":"If true, skip the image tag policy validation that blocks certain image tags.\nThis allows creating deployments with image tags that would otherwise be blocked.","required":false,"schema":{"type":"boolean","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/deployments"},"summary":"Create Deployment","description":"Create Deployment","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"The resource name of the deployment. e.g. accounts/my-account/deployments/my-deployment name"},"displayName":{"type":"string","description":"Human-readable display name of the deployment. e.g. \"My Deployment\"\nMust be fewer than 64 characters long. displayName"},"description":{"type":"string","description":"Description of the deployment. description"},"createTime":{"type":"string","description":"The creation time of the deployment. createTime"},"expireTime":{"type":"string","description":"Deprecated: This field is deprecated and no longer causes auto-deletion.\nThe time at which this deployment will automatically be deleted. expireTime"},"purgeTime":{"type":"string","description":"The time at which the resource will be hard deleted. purgeTime"},"deleteTime":{"type":"string","description":"The time at which the resource will be soft deleted. deleteTime"},"state":{"type":"string","description":"- CREATING: The deployment is still being created.\n - READY: The deployment is ready to be used.\n - DELETING: The deployment is being deleted.\n - FAILED: The deployment failed to be created. See the `status` field for\nadditional details on why it failed.\n - UPDATING: There are in-progress updates happening with the deployment.\n - DELETED: The deployment is soft-deleted. state","enum":["STATE_UNSPECIFIED","CREATING","READY","DELETING","FAILED","UPDATING","DELETED"]},"status":{"type":"object","description":"Mimics [https://github.com/googleapis/googleapis/blob/master/google/rpc/status.proto] status","properties":{"code":{"type":"string","description":"- OK: Not an error; returned on success.\n\nHTTP Mapping: 200 OK\n - CANCELLED: The operation was cancelled, typically by the caller.\n\nHTTP Mapping: 499 Client Closed Request\n - UNKNOWN: Unknown error.  For example, this error may be returned when\na `Status` value received from another address space belongs to\nan error space that is not known in this address space.  Also\nerrors raised by APIs that do not return enough error information\nmay be converted to this error.\n\nHTTP Mapping: 500 Internal Server Error\n - INVALID_ARGUMENT: The client specified an invalid argument.  Note that this differs\nfrom `FAILED_PRECONDITION`.  `INVALID_ARGUMENT` indicates arguments\nthat are problematic regardless of the state of the system\n(e.g., a malformed file name).\n\nHTTP Mapping: 400 Bad Request\n - DEADLINE_EXCEEDED: The deadline expired before the operation could complete. For operations\nthat change the state of the system, this error may be returned\neven if the operation has completed successfully.  For example, a\nsuccessful response from a server could have been delayed long\nenough for the deadline to expire.\n\nHTTP Mapping: 504 Gateway Timeout\n - NOT_FOUND: Some requested entity (e.g., file or directory) was not found.\n\nNote to server developers: if a request is denied for an entire class\nof users, such as gradual feature rollout or undocumented allowlist,\n`NOT_FOUND` may be used. If a request is denied for some users within\na class of users, such as user-based access control, `PERMISSION_DENIED`\nmust be used.\n\nHTTP Mapping: 404 Not Found\n - ALREADY_EXISTS: The entity that a client attempted to create (e.g., file or directory)\nalready exists.\n\nHTTP Mapping: 409 Conflict\n - PERMISSION_DENIED: The caller does not have permission to execute the specified\noperation. `PERMISSION_DENIED` must not be used for rejections\ncaused by exhausting some resource (use `RESOURCE_EXHAUSTED`\ninstead for those errors). `PERMISSION_DENIED` must not be\nused if the caller can not be identified (use `UNAUTHENTICATED`\ninstead for those errors). This error code does not imply the\nrequest is valid or the requested entity exists or satisfies\nother pre-conditions.\n\nHTTP Mapping: 403 Forbidden\n - UNAUTHENTICATED: The request does not have valid authentication credentials for the\noperation.\n\nHTTP Mapping: 401 Unauthorized\n - RESOURCE_EXHAUSTED: Some resource has been exhausted, perhaps a per-user quota, or\nperhaps the entire file system is out of space.\n\nHTTP Mapping: 429 Too Many Requests\n - FAILED_PRECONDITION: The operation was rejected because the system is not in a state\nrequired for the operation's execution.  For example, the directory\nto be deleted is non-empty, an rmdir operation is applied to\na non-directory, etc.\n\nService implementors can use the following guidelines to decide\nbetween `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`:\n (a) Use `UNAVAILABLE` if the client can retry just the failing call.\n (b) Use `ABORTED` if the client should retry at a higher level. For\n     example, when a client-specified test-and-set fails, indicating the\n     client should restart a read-modify-write sequence.\n (c) Use `FAILED_PRECONDITION` if the client should not retry until\n     the system state has been explicitly fixed. For example, if an \"rmdir\"\n     fails because the directory is non-empty, `FAILED_PRECONDITION`\n     should be returned since the client should not retry unless\n     the files are deleted from the directory.\n\nHTTP Mapping: 400 Bad Request\n - ABORTED: The operation was aborted, typically due to a concurrency issue such as\na sequencer check failure or transaction abort.\n\nSee the guidelines above for deciding between `FAILED_PRECONDITION`,\n`ABORTED`, and `UNAVAILABLE`.\n\nHTTP Mapping: 409 Conflict\n - OUT_OF_RANGE: The operation was attempted past the valid range.  E.g., seeking or\nreading past end-of-file.\n\nUnlike `INVALID_ARGUMENT`, this error indicates a problem that may\nbe fixed if the system state changes. For example, a 32-bit file\nsystem will generate `INVALID_ARGUMENT` if asked to read at an\noffset that is not in the range [0,2^32-1], but it will generate\n`OUT_OF_RANGE` if asked to read from an offset past the current\nfile size.\n\nThere is a fair bit of overlap between `FAILED_PRECONDITION` and\n`OUT_OF_RANGE`.  We recommend using `OUT_OF_RANGE` (the more specific\nerror) when it applies so that callers who are iterating through\na space can easily look for an `OUT_OF_RANGE` error to detect when\nthey are done.\n\nHTTP Mapping: 400 Bad Request\n - UNIMPLEMENTED: The operation is not implemented or is not supported/enabled in this\nservice.\n\nHTTP Mapping: 501 Not Implemented\n - INTERNAL: Internal errors.  This means that some invariants expected by the\nunderlying system have been broken.  This error code is reserved\nfor serious errors.\n\nHTTP Mapping: 500 Internal Server Error\n - UNAVAILABLE: The service is currently unavailable.  This is most likely a\ntransient condition, which can be corrected by retrying with\na backoff. Note that it is not always safe to retry\nnon-idempotent operations.\n\nSee the guidelines above for deciding between `FAILED_PRECONDITION`,\n`ABORTED`, and `UNAVAILABLE`.\n\nHTTP Mapping: 503 Service Unavailable\n - DATA_LOSS: Unrecoverable data loss or corruption.\n\nHTTP Mapping: 500 Internal Server Error code","enum":["OK","CANCELLED","UNKNOWN","INVALID_ARGUMENT","DEADLINE_EXCEEDED","NOT_FOUND","ALREADY_EXISTS","PERMISSION_DENIED","UNAUTHENTICATED","RESOURCE_EXHAUSTED","FAILED_PRECONDITION","ABORTED","OUT_OF_RANGE","UNIMPLEMENTED","INTERNAL","UNAVAILABLE","DATA_LOSS"]},"message":{"type":"string","description":"A developer-facing error message in English. message"}}},"annotations":{"type":"object","description":"Annotations to identify deployment properties.\nKey/value pairs may be used by external tools or other services.\nThe \"image-tag-reason\" key is redacted from API responses for non-superuser principals. annotations"},"minReplicaCount":{"type":"integer","description":"The minimum number of replicas.\nIf not specified, the default is 0. minReplicaCount"},"maxReplicaCount":{"type":"integer","description":"The maximum number of replicas.\nIf not specified, the default is max(min_replica_count, 1).\nMay be set to 0 to downscale the deployment to 0. maxReplicaCount"},"maxWithRevocableReplicaCount":{"type":"integer","description":"max_with_revocable_replica_count is max replica count including revocable capacity.\nThe max revocable capacity will be max_with_revocable_replica_count - max_replica_count. maxWithRevocableReplicaCount"},"desiredReplicaCount":{"type":"integer","description":"The desired number of replicas for this deployment. This represents the target\nreplica count that the system is trying to achieve. desiredReplicaCount"},"replicaCount":{"type":"integer","description":"replicaCount"},"autoscalingPolicy":{"type":"object","description":"autoscalingPolicy","properties":{"scaleUpWindow":{"type":"string","description":"The duration the autoscaler will wait before scaling up a deployment after observing\nincreased load. Default is 30s. Must be less than or equal to 1 hour. scaleUpWindow"},"scaleDownWindow":{"type":"string","description":"The duration the autoscaler will wait before scaling down a deployment after observing\ndecreased load. Default is 10m. Must be less than or equal to 1 hour. scaleDownWindow"},"scaleToZeroWindow":{"type":"string","description":"The duration after which there are no requests that the deployment will be scaled down\nto zero replicas, if min_replica_count==0. Default is 1h.\nThis must be at least 5 minutes. scaleToZeroWindow"},"loadTargets":{"type":"object","description":"Map of load metric names to their target utilization factors.\nCurrently only the \"default\" key is supported, which specifies the default target for all metrics.\nIf not specified, the default target is 0.8 loadTargets"},"scalingSchedules":{"type":"object","description":"Named scaling schedules that override min_replica_count on a time-based cron schedule.\nWhen multiple schedules are active simultaneously, the highest min_replica_count\nacross all active schedules is used (\"max wins\"). When no schedule is active, the\ndeployment's base min_replica_count applies.\nMaximum 5 schedules per deployment. scalingSchedules"}}},"baseModel":{"type":"string","description":"The base model name. e.g. accounts/fireworks/models/falcon-7b baseModel","required":true},"acceleratorCount":{"type":"integer","description":"The number of accelerators used per replica.\nIf not specified, the default is the estimated minimum required by the\nbase model. acceleratorCount"},"acceleratorType":{"type":"string","description":"acceleratorType","enum":["ACCELERATOR_TYPE_UNSPECIFIED","NVIDIA_A100_80GB","NVIDIA_H100_80GB","AMD_MI300X_192GB","NVIDIA_A10G_24GB","NVIDIA_A100_40GB","NVIDIA_L4_24GB","NVIDIA_H200_141GB","NVIDIA_B200_180GB","AMD_MI325X_256GB","AMD_MI350X_288GB","NVIDIA_B300_288GB","NVIDIA_GB200","NVIDIA_GB300"]},"precision":{"type":"string","description":"- PRECISION_UNSPECIFIED: if left unspecified we will treat this as a legacy model created before\nself serve precision","enum":["PRECISION_UNSPECIFIED","FP16","FP8","FP8_MM","FP8_AR","FP8_MM_KV_ATTN","FP8_KV","FP8_MM_V2","FP8_V2","FP8_MM_KV_ATTN_V2","NF4","FP4","BF16","FP4_BLOCKSCALED_MM","FP4_MX_MOE"]},"maxConcurrencyPerReplica":{"type":"integer","description":"The maximum number of concurrent (in-flight) requests a single replica\nwill accept before shedding load. Requests that arrive while a replica is\nalready at this limit are rejected early with HTTP 429 instead of\nqueueing — a per-replica admission gate for controlling tail latency.\nWhen unset (0), the platform default is used. maxConcurrencyPerReplica"},"cluster":{"type":"string","description":"If set, this deployment is deployed to a cloud-premise cluster. cluster"},"enableAddons":{"type":"boolean","description":"If true, PEFT addons are enabled for this deployment. enableAddons"},"draftTokenCount":{"type":"integer","description":"The number of candidate tokens to generate per step for speculative\ndecoding.\nDefault is the base model's draft_token_count. Set\nCreateDeploymentRequest.disable_speculative_decoding to false to disable\nthis behavior. draftTokenCount"},"draftModel":{"type":"string","description":"The draft model name for speculative decoding. e.g. accounts/fireworks/models/my-draft-model\nIf empty, speculative decoding using a draft model is disabled.\nDefault is the base model's default_draft_model. Set\nCreateDeploymentRequest.disable_speculative_decoding to false to disable\nthis behavior. draftModel"},"ngramSpeculationLength":{"type":"integer","description":"The length of previous input sequence to be considered for N-gram speculation. ngramSpeculationLength"},"enableSessionAffinity":{"type":"boolean","description":"Whether to apply sticky routing based on `user` field.\nServerless will be set to true when creating deployment. enableSessionAffinity"},"directRouteApiKeys":{"type":"array","description":"The set of API keys used to access the direct route deployment. If direct routing is not enabled, this field is unused. directRouteApiKeys","items":{"type":"string"}},"numPeftDeviceCached":{"type":"integer","description":"How many peft adapters to keep on gpu side for caching numPeftDeviceCached"},"directRouteType":{"type":"string","description":"- DIRECT_ROUTE_TYPE_UNSPECIFIED: No direct routing\n - INTERNET: The direct route is exposed via the public internet\n - GCP_PRIVATE_SERVICE_CONNECT: The direct route is exposed via GCP Private Service Connect\n - AWS_PRIVATELINK: The direct route is exposed via AWS PrivateLink directRouteType","enum":["DIRECT_ROUTE_TYPE_UNSPECIFIED","INTERNET","GCP_PRIVATE_SERVICE_CONNECT","AWS_PRIVATELINK"]},"directRouteHandle":{"type":"string","description":"The handle for calling a direct route. The meaning of the handle depends on the\ndirect route type of the deployment:\n   INTERNET                    -> The host name for accessing the deployment\n   GCP_PRIVATE_SERVICE_CONNECT -> The service attachment name used to create the PSC endpoint.\n   AWS_PRIVATELINK             -> The service name used to create the VPC endpoint. directRouteHandle"},"deploymentTemplate":{"type":"string","description":"The name of the deployment template to use for this deployment. Only\navailable to enterprise accounts. deploymentTemplate"},"autoTune":{"type":"object","description":"autoTune","properties":{"longPrompt":{"type":"boolean","description":"If true, this deployment is optimized for long prompt lengths. longPrompt"}}},"placement":{"type":"object","description":"The desired geographic region where the deployment must be placed. Exactly one field will be\nspecified. placement","properties":{"region":{"type":"string","description":"region","enum":["REGION_UNSPECIFIED","US_IOWA_1","US_VIRGINIA_1","US_VIRGINIA_2","US_ILLINOIS_1","AP_TOKYO_1","US_ARIZONA_1","US_TEXAS_1","US_ILLINOIS_2","EU_FRANKFURT_1","US_TEXAS_2","EU_ICELAND_1","EU_ICELAND_2","US_WASHINGTON_1","US_WASHINGTON_2","US_WASHINGTON_3","AP_TOKYO_2","US_CALIFORNIA_1","US_UTAH_1","US_ARIZONA_3","US_GEORGIA_1","US_GEORGIA_2","US_WASHINGTON_4","US_GEORGIA_3","NA_BRITISHCOLUMBIA_1","US_GEORGIA_4","US_OHIO_1","US_NEWYORK_1","EU_NETHERLANDS_1","US_WASHINGTON_5","US_MINNESOTA_1","US_CALIFORNIA_2","NA_BRITISHCOLUMBIA_2","AP_MALAYSIA_2","US_OREGON_1","NA_BRITISHCOLUMBIA_3","AP_NEWSOUTHWALES_1"]},"multiRegion":{"type":"string","description":"multiRegion","enum":["MULTI_REGION_UNSPECIFIED","GLOBAL","US","EUROPE","APAC"]},"regions":{"type":"array","description":"The list of regions where the deployment must be placed regions"}}},"region":{"type":"string","description":"region","enum":["REGION_UNSPECIFIED","US_IOWA_1","US_VIRGINIA_1","US_VIRGINIA_2","US_ILLINOIS_1","AP_TOKYO_1","US_ARIZONA_1","US_TEXAS_1","US_ILLINOIS_2","EU_FRANKFURT_1","US_TEXAS_2","EU_ICELAND_1","EU_ICELAND_2","US_WASHINGTON_1","US_WASHINGTON_2","US_WASHINGTON_3","AP_TOKYO_2","US_CALIFORNIA_1","US_UTAH_1","US_ARIZONA_3","US_GEORGIA_1","US_GEORGIA_2","US_WASHINGTON_4","US_GEORGIA_3","NA_BRITISHCOLUMBIA_1","US_GEORGIA_4","US_OHIO_1","US_NEWYORK_1","EU_NETHERLANDS_1","US_WASHINGTON_5","US_MINNESOTA_1","US_CALIFORNIA_2","NA_BRITISHCOLUMBIA_2","AP_MALAYSIA_2","US_OREGON_1","NA_BRITISHCOLUMBIA_3","AP_NEWSOUTHWALES_1"]},"maxContextLength":{"type":"integer","description":"The maximum context length supported by the model (context window).\nIf set to 0 or not specified, the model's default maximum context length will be used. maxContextLength"},"updateTime":{"type":"string","description":"The update time for the deployment. updateTime"},"disableDeploymentSizeValidation":{"type":"boolean","description":"Whether the deployment size validation is disabled. disableDeploymentSizeValidation"},"enableHotLoad":{"type":"boolean","description":"Whether to use hot load for this deployment. enableHotLoad"},"hotLoadBucketType":{"type":"string","description":"- FW_HOSTED: Fireworks hosted bucket hotLoadBucketType","enum":["BUCKET_TYPE_UNSPECIFIED","MINIO","S3","NEBIUS","FW_HOSTED"]},"enableHotReloadLatestAddon":{"type":"boolean","description":"Allows up to 1 addon at a time to be loaded, and will merge it into the base model. enableHotReloadLatestAddon"},"deploymentShape":{"type":"string","description":"The name of the deployment shape that this deployment is using.\nOn the server side, this will be replaced with the deployment shape version name. deploymentShape"},"activeModelVersion":{"type":"string","description":"The model version that is currently active and applied to running replicas of a deployment. activeModelVersion"},"targetModelVersion":{"type":"string","description":"The target model version that is being rolled out to the deployment.\nIn a ready steady state, the target model version is the same as the active model version. targetModelVersion"},"replicaStats":{"type":"object","description":"replicaStats","properties":{"pendingSchedulingReplicaCount":{"type":"integer","description":"Number of replicas waiting to be scheduled to a node. pendingSchedulingReplicaCount"},"downloadingModelReplicaCount":{"type":"integer","description":"Number of replicas downloading model weights. downloadingModelReplicaCount"},"initializingReplicaCount":{"type":"integer","description":"Number of replicas initializing the model server. initializingReplicaCount"},"readyReplicaCount":{"type":"integer","description":"Number of replicas that are ready and serving traffic. readyReplicaCount"},"revocableReplicaCount":{"type":"integer","description":"The number of replicas that can be revoked revocableReplicaCount"},"effectiveReplicaCount":{"type":"number","description":"The effective number of replicas currently serving traffic, including\nfractional progress toward a replica that is not yet fully ready. Equals\nready_replica_count when no replica is partially ready. effectiveReplicaCount"}}},"hotLoadBucketUrl":{"type":"string","description":"For hot load bucket location\ne.g for s3: s3://mybucket/<object_path>; for GCS: gs://mybucket/<object_path>, no trailing slash hotLoadBucketUrl"},"pricingPlanId":{"type":"string","description":"Optional pricing plan ID for custom billing configuration.\nIf set, this deployment will use the pricing plan's billing rules\ninstead of default billing behavior. pricingPlanId"},"hotLoadTrainerJob":{"type":"string","description":"Trainer job whose hot_load_bucket_url this deployment should use.\nAt creation, the trainer's bucket URL is copied into this deployment's\nhot_load_bucket_url. The deployment continues working after the trainer\nis deleted (snapshot-at-creation semantics).\nFormat: accounts/{account}/rlorTrainerJobs/{job} hotLoadTrainerJob"},"hotLoadTransitionType":{"type":"string","description":"hotLoadTransitionType","enum":["HOT_LOAD_TRANSITION_TYPE_UNSPECIFIED","ASYNC","SYNC"]},"preemptible":{"type":"boolean","description":"When true, this deployment runs as preemptible. preemptible"}}},"example":{"name":"","displayName":"","description":"","createTime":"","expireTime":"","purgeTime":"","deleteTime":"","state":"","status":{},"annotations":{},"minReplicaCount":"","maxReplicaCount":"","maxWithRevocableReplicaCount":"","desiredReplicaCount":"","replicaCount":"","autoscalingPolicy":{},"baseModel":"","acceleratorCount":"","acceleratorType":"","precision":"","maxConcurrencyPerReplica":"","cluster":"","enableAddons":"","draftTokenCount":"","draftModel":"","ngramSpeculationLength":"","enableSessionAffinity":"","directRouteApiKeys":[],"numPeftDeviceCached":"","directRouteType":"","directRouteHandle":"","deploymentTemplate":"","autoTune":{},"placement":{},"region":"","maxContextLength":"","updateTime":"","disableDeploymentSizeValidation":"","enableHotLoad":"","hotLoadBucketType":"","enableHotReloadLatestAddon":"","deploymentShape":"","activeModelVersion":"","targetModelVersion":"","replicaStats":{},"hotLoadBucketUrl":"","pricingPlanId":"","hotLoadTrainerJob":"","hotLoadTransitionType":"","preemptible":""}}}}}},"/v1/accounts/{account_id}/deployments/{deployment_id}":{"get":{"tags":["Deployments"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"deployment_id","in":"path","description":"The Deployment Id","required":true,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/deployments/{deployment_id}"},"summary":"Get Deployment","description":"Get Deployment","security":[{"bearerAuth":[]}]},"patch":{"tags":["Deployments"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"deployment_id","in":"path","description":"The Deployment Id","required":true,"schema":{"type":"string","example":""}},{"name":"skipShapeValidation","in":"query","description":"By default, updating a deployment shape will ensure the new deployment shape provided is validated.\nIf true, we will not require the deployment shape to be validated.","required":false,"schema":{"type":"boolean","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/deployments/{deployment_id}"},"summary":"Update Deployment","description":"Update Deployment","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"displayName":{"type":"string","description":"Human-readable display name of the deployment. e.g. \"My Deployment\"\nMust be fewer than 64 characters long. displayName"},"description":{"type":"string","description":"Description of the deployment. description"},"createTime":{"type":"string","description":"The creation time of the deployment. createTime"},"expireTime":{"type":"string","description":"Deprecated: This field is deprecated and no longer causes auto-deletion.\nThe time at which this deployment will automatically be deleted. expireTime"},"purgeTime":{"type":"string","description":"The time at which the resource will be hard deleted. purgeTime"},"deleteTime":{"type":"string","description":"The time at which the resource will be soft deleted. deleteTime"},"state":{"type":"string","description":"- CREATING: The deployment is still being created.\n - READY: The deployment is ready to be used.\n - DELETING: The deployment is being deleted.\n - FAILED: The deployment failed to be created. See the `status` field for\nadditional details on why it failed.\n - UPDATING: There are in-progress updates happening with the deployment.\n - DELETED: The deployment is soft-deleted. state","enum":["STATE_UNSPECIFIED","CREATING","READY","DELETING","FAILED","UPDATING","DELETED"]},"status":{"type":"object","description":"Mimics [https://github.com/googleapis/googleapis/blob/master/google/rpc/status.proto] status","properties":{"code":{"type":"string","description":"- OK: Not an error; returned on success.\n\nHTTP Mapping: 200 OK\n - CANCELLED: The operation was cancelled, typically by the caller.\n\nHTTP Mapping: 499 Client Closed Request\n - UNKNOWN: Unknown error.  For example, this error may be returned when\na `Status` value received from another address space belongs to\nan error space that is not known in this address space.  Also\nerrors raised by APIs that do not return enough error information\nmay be converted to this error.\n\nHTTP Mapping: 500 Internal Server Error\n - INVALID_ARGUMENT: The client specified an invalid argument.  Note that this differs\nfrom `FAILED_PRECONDITION`.  `INVALID_ARGUMENT` indicates arguments\nthat are problematic regardless of the state of the system\n(e.g., a malformed file name).\n\nHTTP Mapping: 400 Bad Request\n - DEADLINE_EXCEEDED: The deadline expired before the operation could complete. For operations\nthat change the state of the system, this error may be returned\neven if the operation has completed successfully.  For example, a\nsuccessful response from a server could have been delayed long\nenough for the deadline to expire.\n\nHTTP Mapping: 504 Gateway Timeout\n - NOT_FOUND: Some requested entity (e.g., file or directory) was not found.\n\nNote to server developers: if a request is denied for an entire class\nof users, such as gradual feature rollout or undocumented allowlist,\n`NOT_FOUND` may be used. If a request is denied for some users within\na class of users, such as user-based access control, `PERMISSION_DENIED`\nmust be used.\n\nHTTP Mapping: 404 Not Found\n - ALREADY_EXISTS: The entity that a client attempted to create (e.g., file or directory)\nalready exists.\n\nHTTP Mapping: 409 Conflict\n - PERMISSION_DENIED: The caller does not have permission to execute the specified\noperation. `PERMISSION_DENIED` must not be used for rejections\ncaused by exhausting some resource (use `RESOURCE_EXHAUSTED`\ninstead for those errors). `PERMISSION_DENIED` must not be\nused if the caller can not be identified (use `UNAUTHENTICATED`\ninstead for those errors). This error code does not imply the\nrequest is valid or the requested entity exists or satisfies\nother pre-conditions.\n\nHTTP Mapping: 403 Forbidden\n - UNAUTHENTICATED: The request does not have valid authentication credentials for the\noperation.\n\nHTTP Mapping: 401 Unauthorized\n - RESOURCE_EXHAUSTED: Some resource has been exhausted, perhaps a per-user quota, or\nperhaps the entire file system is out of space.\n\nHTTP Mapping: 429 Too Many Requests\n - FAILED_PRECONDITION: The operation was rejected because the system is not in a state\nrequired for the operation's execution.  For example, the directory\nto be deleted is non-empty, an rmdir operation is applied to\na non-directory, etc.\n\nService implementors can use the following guidelines to decide\nbetween `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`:\n (a) Use `UNAVAILABLE` if the client can retry just the failing call.\n (b) Use `ABORTED` if the client should retry at a higher level. For\n     example, when a client-specified test-and-set fails, indicating the\n     client should restart a read-modify-write sequence.\n (c) Use `FAILED_PRECONDITION` if the client should not retry until\n     the system state has been explicitly fixed. For example, if an \"rmdir\"\n     fails because the directory is non-empty, `FAILED_PRECONDITION`\n     should be returned since the client should not retry unless\n     the files are deleted from the directory.\n\nHTTP Mapping: 400 Bad Request\n - ABORTED: The operation was aborted, typically due to a concurrency issue such as\na sequencer check failure or transaction abort.\n\nSee the guidelines above for deciding between `FAILED_PRECONDITION`,\n`ABORTED`, and `UNAVAILABLE`.\n\nHTTP Mapping: 409 Conflict\n - OUT_OF_RANGE: The operation was attempted past the valid range.  E.g., seeking or\nreading past end-of-file.\n\nUnlike `INVALID_ARGUMENT`, this error indicates a problem that may\nbe fixed if the system state changes. For example, a 32-bit file\nsystem will generate `INVALID_ARGUMENT` if asked to read at an\noffset that is not in the range [0,2^32-1], but it will generate\n`OUT_OF_RANGE` if asked to read from an offset past the current\nfile size.\n\nThere is a fair bit of overlap between `FAILED_PRECONDITION` and\n`OUT_OF_RANGE`.  We recommend using `OUT_OF_RANGE` (the more specific\nerror) when it applies so that callers who are iterating through\na space can easily look for an `OUT_OF_RANGE` error to detect when\nthey are done.\n\nHTTP Mapping: 400 Bad Request\n - UNIMPLEMENTED: The operation is not implemented or is not supported/enabled in this\nservice.\n\nHTTP Mapping: 501 Not Implemented\n - INTERNAL: Internal errors.  This means that some invariants expected by the\nunderlying system have been broken.  This error code is reserved\nfor serious errors.\n\nHTTP Mapping: 500 Internal Server Error\n - UNAVAILABLE: The service is currently unavailable.  This is most likely a\ntransient condition, which can be corrected by retrying with\na backoff. Note that it is not always safe to retry\nnon-idempotent operations.\n\nSee the guidelines above for deciding between `FAILED_PRECONDITION`,\n`ABORTED`, and `UNAVAILABLE`.\n\nHTTP Mapping: 503 Service Unavailable\n - DATA_LOSS: Unrecoverable data loss or corruption.\n\nHTTP Mapping: 500 Internal Server Error code","enum":["OK","CANCELLED","UNKNOWN","INVALID_ARGUMENT","DEADLINE_EXCEEDED","NOT_FOUND","ALREADY_EXISTS","PERMISSION_DENIED","UNAUTHENTICATED","RESOURCE_EXHAUSTED","FAILED_PRECONDITION","ABORTED","OUT_OF_RANGE","UNIMPLEMENTED","INTERNAL","UNAVAILABLE","DATA_LOSS"]},"message":{"type":"string","description":"A developer-facing error message in English. message"}}},"annotations":{"type":"object","description":"Annotations to identify deployment properties.\nKey/value pairs may be used by external tools or other services.\nThe \"image-tag-reason\" key is redacted from API responses for non-superuser principals. annotations"},"minReplicaCount":{"type":"integer","description":"The minimum number of replicas.\nIf not specified, the default is 0. minReplicaCount"},"maxReplicaCount":{"type":"integer","description":"The maximum number of replicas.\nIf not specified, the default is max(min_replica_count, 1).\nMay be set to 0 to downscale the deployment to 0. maxReplicaCount"},"maxWithRevocableReplicaCount":{"type":"integer","description":"max_with_revocable_replica_count is max replica count including revocable capacity.\nThe max revocable capacity will be max_with_revocable_replica_count - max_replica_count. maxWithRevocableReplicaCount"},"desiredReplicaCount":{"type":"integer","description":"The desired number of replicas for this deployment. This represents the target\nreplica count that the system is trying to achieve. desiredReplicaCount"},"replicaCount":{"type":"integer","description":"replicaCount"},"autoscalingPolicy":{"type":"object","description":"autoscalingPolicy","properties":{"scaleUpWindow":{"type":"string","description":"The duration the autoscaler will wait before scaling up a deployment after observing\nincreased load. Default is 30s. Must be less than or equal to 1 hour. scaleUpWindow"},"scaleDownWindow":{"type":"string","description":"The duration the autoscaler will wait before scaling down a deployment after observing\ndecreased load. Default is 10m. Must be less than or equal to 1 hour. scaleDownWindow"},"scaleToZeroWindow":{"type":"string","description":"The duration after which there are no requests that the deployment will be scaled down\nto zero replicas, if min_replica_count==0. Default is 1h.\nThis must be at least 5 minutes. scaleToZeroWindow"},"loadTargets":{"type":"object","description":"Map of load metric names to their target utilization factors.\nCurrently only the \"default\" key is supported, which specifies the default target for all metrics.\nIf not specified, the default target is 0.8 loadTargets"},"scalingSchedules":{"type":"object","description":"Named scaling schedules that override min_replica_count on a time-based cron schedule.\nWhen multiple schedules are active simultaneously, the highest min_replica_count\nacross all active schedules is used (\"max wins\"). When no schedule is active, the\ndeployment's base min_replica_count applies.\nMaximum 5 schedules per deployment. scalingSchedules"}}},"baseModel":{"type":"string","description":"The base model name. e.g. accounts/fireworks/models/falcon-7b baseModel","required":true},"acceleratorCount":{"type":"integer","description":"The number of accelerators used per replica.\nIf not specified, the default is the estimated minimum required by the\nbase model. acceleratorCount"},"acceleratorType":{"type":"string","description":"acceleratorType","enum":["ACCELERATOR_TYPE_UNSPECIFIED","NVIDIA_A100_80GB","NVIDIA_H100_80GB","AMD_MI300X_192GB","NVIDIA_A10G_24GB","NVIDIA_A100_40GB","NVIDIA_L4_24GB","NVIDIA_H200_141GB","NVIDIA_B200_180GB","AMD_MI325X_256GB","AMD_MI350X_288GB","NVIDIA_B300_288GB","NVIDIA_GB200","NVIDIA_GB300"]},"precision":{"type":"string","description":"- PRECISION_UNSPECIFIED: if left unspecified we will treat this as a legacy model created before\nself serve precision","enum":["PRECISION_UNSPECIFIED","FP16","FP8","FP8_MM","FP8_AR","FP8_MM_KV_ATTN","FP8_KV","FP8_MM_V2","FP8_V2","FP8_MM_KV_ATTN_V2","NF4","FP4","BF16","FP4_BLOCKSCALED_MM","FP4_MX_MOE"]},"maxConcurrencyPerReplica":{"type":"integer","description":"The maximum number of concurrent (in-flight) requests a single replica\nwill accept before shedding load. Requests that arrive while a replica is\nalready at this limit are rejected early with HTTP 429 instead of\nqueueing — a per-replica admission gate for controlling tail latency.\nWhen unset (0), the platform default is used. maxConcurrencyPerReplica"},"cluster":{"type":"string","description":"If set, this deployment is deployed to a cloud-premise cluster. cluster"},"enableAddons":{"type":"boolean","description":"If true, PEFT addons are enabled for this deployment. enableAddons"},"draftTokenCount":{"type":"integer","description":"The number of candidate tokens to generate per step for speculative\ndecoding.\nDefault is the base model's draft_token_count. Set\nCreateDeploymentRequest.disable_speculative_decoding to false to disable\nthis behavior. draftTokenCount"},"draftModel":{"type":"string","description":"The draft model name for speculative decoding. e.g. accounts/fireworks/models/my-draft-model\nIf empty, speculative decoding using a draft model is disabled.\nDefault is the base model's default_draft_model. Set\nCreateDeploymentRequest.disable_speculative_decoding to false to disable\nthis behavior. draftModel"},"ngramSpeculationLength":{"type":"integer","description":"The length of previous input sequence to be considered for N-gram speculation. ngramSpeculationLength"},"enableSessionAffinity":{"type":"boolean","description":"Whether to apply sticky routing based on `user` field.\nServerless will be set to true when creating deployment. enableSessionAffinity"},"directRouteApiKeys":{"type":"array","description":"The set of API keys used to access the direct route deployment. If direct routing is not enabled, this field is unused. directRouteApiKeys","items":{"type":"string"}},"numPeftDeviceCached":{"type":"integer","description":"How many peft adapters to keep on gpu side for caching numPeftDeviceCached"},"directRouteType":{"type":"string","description":"- DIRECT_ROUTE_TYPE_UNSPECIFIED: No direct routing\n - INTERNET: The direct route is exposed via the public internet\n - GCP_PRIVATE_SERVICE_CONNECT: The direct route is exposed via GCP Private Service Connect\n - AWS_PRIVATELINK: The direct route is exposed via AWS PrivateLink directRouteType","enum":["DIRECT_ROUTE_TYPE_UNSPECIFIED","INTERNET","GCP_PRIVATE_SERVICE_CONNECT","AWS_PRIVATELINK"]},"directRouteHandle":{"type":"string","description":"The handle for calling a direct route. The meaning of the handle depends on the\ndirect route type of the deployment:\n   INTERNET                    -> The host name for accessing the deployment\n   GCP_PRIVATE_SERVICE_CONNECT -> The service attachment name used to create the PSC endpoint.\n   AWS_PRIVATELINK             -> The service name used to create the VPC endpoint. directRouteHandle"},"deploymentTemplate":{"type":"string","description":"The name of the deployment template to use for this deployment. Only\navailable to enterprise accounts. deploymentTemplate"},"autoTune":{"type":"object","description":"autoTune","properties":{"longPrompt":{"type":"boolean","description":"If true, this deployment is optimized for long prompt lengths. longPrompt"}}},"placement":{"type":"object","description":"The desired geographic region where the deployment must be placed. Exactly one field will be\nspecified. placement","properties":{"region":{"type":"string","description":"region","enum":["REGION_UNSPECIFIED","US_IOWA_1","US_VIRGINIA_1","US_VIRGINIA_2","US_ILLINOIS_1","AP_TOKYO_1","US_ARIZONA_1","US_TEXAS_1","US_ILLINOIS_2","EU_FRANKFURT_1","US_TEXAS_2","EU_ICELAND_1","EU_ICELAND_2","US_WASHINGTON_1","US_WASHINGTON_2","US_WASHINGTON_3","AP_TOKYO_2","US_CALIFORNIA_1","US_UTAH_1","US_ARIZONA_3","US_GEORGIA_1","US_GEORGIA_2","US_WASHINGTON_4","US_GEORGIA_3","NA_BRITISHCOLUMBIA_1","US_GEORGIA_4","US_OHIO_1","US_NEWYORK_1","EU_NETHERLANDS_1","US_WASHINGTON_5","US_MINNESOTA_1","US_CALIFORNIA_2","NA_BRITISHCOLUMBIA_2","AP_MALAYSIA_2","US_OREGON_1","NA_BRITISHCOLUMBIA_3","AP_NEWSOUTHWALES_1"]},"multiRegion":{"type":"string","description":"multiRegion","enum":["MULTI_REGION_UNSPECIFIED","GLOBAL","US","EUROPE","APAC"]},"regions":{"type":"array","description":"The list of regions where the deployment must be placed regions"}}},"region":{"type":"string","description":"region","enum":["REGION_UNSPECIFIED","US_IOWA_1","US_VIRGINIA_1","US_VIRGINIA_2","US_ILLINOIS_1","AP_TOKYO_1","US_ARIZONA_1","US_TEXAS_1","US_ILLINOIS_2","EU_FRANKFURT_1","US_TEXAS_2","EU_ICELAND_1","EU_ICELAND_2","US_WASHINGTON_1","US_WASHINGTON_2","US_WASHINGTON_3","AP_TOKYO_2","US_CALIFORNIA_1","US_UTAH_1","US_ARIZONA_3","US_GEORGIA_1","US_GEORGIA_2","US_WASHINGTON_4","US_GEORGIA_3","NA_BRITISHCOLUMBIA_1","US_GEORGIA_4","US_OHIO_1","US_NEWYORK_1","EU_NETHERLANDS_1","US_WASHINGTON_5","US_MINNESOTA_1","US_CALIFORNIA_2","NA_BRITISHCOLUMBIA_2","AP_MALAYSIA_2","US_OREGON_1","NA_BRITISHCOLUMBIA_3","AP_NEWSOUTHWALES_1"]},"maxContextLength":{"type":"integer","description":"The maximum context length supported by the model (context window).\nIf set to 0 or not specified, the model's default maximum context length will be used. maxContextLength"},"updateTime":{"type":"string","description":"The update time for the deployment. updateTime"},"disableDeploymentSizeValidation":{"type":"boolean","description":"Whether the deployment size validation is disabled. disableDeploymentSizeValidation"},"enableHotLoad":{"type":"boolean","description":"Whether to use hot load for this deployment. enableHotLoad"},"hotLoadBucketType":{"type":"string","description":"- FW_HOSTED: Fireworks hosted bucket hotLoadBucketType","enum":["BUCKET_TYPE_UNSPECIFIED","MINIO","S3","NEBIUS","FW_HOSTED"]},"enableHotReloadLatestAddon":{"type":"boolean","description":"Allows up to 1 addon at a time to be loaded, and will merge it into the base model. enableHotReloadLatestAddon"},"deploymentShape":{"type":"string","description":"The name of the deployment shape that this deployment is using.\nOn the server side, this will be replaced with the deployment shape version name. deploymentShape"},"activeModelVersion":{"type":"string","description":"The model version that is currently active and applied to running replicas of a deployment. activeModelVersion"},"targetModelVersion":{"type":"string","description":"The target model version that is being rolled out to the deployment.\nIn a ready steady state, the target model version is the same as the active model version. targetModelVersion"},"replicaStats":{"type":"object","description":"replicaStats","properties":{"pendingSchedulingReplicaCount":{"type":"integer","description":"Number of replicas waiting to be scheduled to a node. pendingSchedulingReplicaCount"},"downloadingModelReplicaCount":{"type":"integer","description":"Number of replicas downloading model weights. downloadingModelReplicaCount"},"initializingReplicaCount":{"type":"integer","description":"Number of replicas initializing the model server. initializingReplicaCount"},"readyReplicaCount":{"type":"integer","description":"Number of replicas that are ready and serving traffic. readyReplicaCount"},"revocableReplicaCount":{"type":"integer","description":"The number of replicas that can be revoked revocableReplicaCount"},"effectiveReplicaCount":{"type":"number","description":"The effective number of replicas currently serving traffic, including\nfractional progress toward a replica that is not yet fully ready. Equals\nready_replica_count when no replica is partially ready. effectiveReplicaCount"}}},"hotLoadBucketUrl":{"type":"string","description":"For hot load bucket location\ne.g for s3: s3://mybucket/<object_path>; for GCS: gs://mybucket/<object_path>, no trailing slash hotLoadBucketUrl"},"pricingPlanId":{"type":"string","description":"Optional pricing plan ID for custom billing configuration.\nIf set, this deployment will use the pricing plan's billing rules\ninstead of default billing behavior. pricingPlanId"},"hotLoadTrainerJob":{"type":"string","description":"Trainer job whose hot_load_bucket_url this deployment should use.\nAt creation, the trainer's bucket URL is copied into this deployment's\nhot_load_bucket_url. The deployment continues working after the trainer\nis deleted (snapshot-at-creation semantics).\nFormat: accounts/{account}/rlorTrainerJobs/{job} hotLoadTrainerJob"},"hotLoadTransitionType":{"type":"string","description":"hotLoadTransitionType","enum":["HOT_LOAD_TRANSITION_TYPE_UNSPECIFIED","ASYNC","SYNC"]},"preemptible":{"type":"boolean","description":"When true, this deployment runs as preemptible. preemptible"}}},"example":{"displayName":"","description":"","createTime":"","expireTime":"","purgeTime":"","deleteTime":"","state":"","status":{},"annotations":{},"minReplicaCount":"","maxReplicaCount":"","maxWithRevocableReplicaCount":"","desiredReplicaCount":"","replicaCount":"","autoscalingPolicy":{},"baseModel":"","acceleratorCount":"","acceleratorType":"","precision":"","maxConcurrencyPerReplica":"","cluster":"","enableAddons":"","draftTokenCount":"","draftModel":"","ngramSpeculationLength":"","enableSessionAffinity":"","directRouteApiKeys":[],"numPeftDeviceCached":"","directRouteType":"","directRouteHandle":"","deploymentTemplate":"","autoTune":{},"placement":{},"region":"","maxContextLength":"","updateTime":"","disableDeploymentSizeValidation":"","enableHotLoad":"","hotLoadBucketType":"","enableHotReloadLatestAddon":"","deploymentShape":"","activeModelVersion":"","targetModelVersion":"","replicaStats":{},"hotLoadBucketUrl":"","pricingPlanId":"","hotLoadTrainerJob":"","hotLoadTransitionType":"","preemptible":""}}}}},"delete":{"tags":["Deployments"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"deployment_id","in":"path","description":"The Deployment Id","required":true,"schema":{"type":"string","example":""}},{"name":"hard","in":"query","description":"If true, this will perform a hard deletion.","required":false,"schema":{"type":"boolean","example":""}},{"name":"ignoreChecks","in":"query","description":"If true, this will ignore checks and force the deletion of a deployment that is currently\ndeployed and is in use.","required":false,"schema":{"type":"boolean","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/deployments/{deployment_id}"},"summary":"Delete Deployment","description":"Delete Deployment","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/v1/accounts/{account_id}/deployments/{deployment_id}/ledger":{"get":{"tags":["Ledger"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"deployment_id","in":"path","description":"The Deployment Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/deployments/{deployment_id}/ledger"},"summary":"Get ledger","description":"Get ledger","security":[{"bearerAuth":[]}]},"delete":{"tags":["Ledger"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"deployment_id","in":"path","description":"The Deployment Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/deployments/{deployment_id}/ledger"},"summary":"Reset ledger for hot load","description":"Reset ledger for hot load","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/v1/accounts/{account_id}/deployments/{deployment_id}/shards":{"get":{"tags":["Shards"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"deployment_id","in":"path","description":"The Deployment Id","required":true,"schema":{"type":"string","example":""}},{"name":"pageSize","in":"query","description":"The maximum number of deployment shards to return. The maximum page_size is 200,\nvalues above 200 will be coerced to 200.\nIf unspecified, the default is 50.","required":false,"schema":{"type":"integer","example":""}},{"name":"pageToken","in":"query","description":"A page token, received from a previous ListDeploymentShards call. Provide this\nto retrieve the subsequent page. When paginating, all other parameters\nprovided to ListDeploymentShards must match the call that provided the page\ntoken.","required":false,"schema":{"type":"string","example":""}},{"name":"filter","in":"query","description":"Only deployment shard satisfying the provided filter (if specified) will be\nreturned. See https://google.aip.dev/160 for the filter grammar.","required":false,"schema":{"type":"string","example":""}},{"name":"orderBy","in":"query","description":"A comma-separated list of fields to order by. e.g. \"foo,bar\"\nThe default sort order is ascending. To specify a descending order for a\nfield, append a \" desc\" suffix. e.g. \"foo desc,bar\"\nSubfields are specified with a \".\" character. e.g. \"foo.bar\"\nIf not specified, the default order is by \"create_time\".","required":false,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/deployments/{deployment_id}/shards"},"summary":"List Deployment Shards","description":"List Deployment Shards","security":[{"bearerAuth":[]}]}},"/v1/accounts/{account_id}/deployments/{deployment_id}/terminationMessage":{"get":{"tags":["Termination Message"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"deployment_id","in":"path","description":"The Deployment Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/deployments/{deployment_id}/terminationMessage"},"summary":"Get termination message from deployment","description":"Get termination message from deployment","security":[{"bearerAuth":[]}]}},"/v1/accounts/{account_id}/deployments/{deployment_id}:metrics":{"get":{"tags":["Deployments"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"deployment_id","in":"path","description":"The Deployment Id","required":true,"schema":{"type":"string","example":""}},{"name":"timeRange","in":"query","description":"The time range to fetch metrics for (e.g. \"1m\", \"10m\", \"2h\"). Defaults to 10m.","required":false,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/deployments/{deployment_id}:metrics"},"summary":"Get Deployment Metrics (Deprecated)","description":"Get Deployment Metrics (Deprecated)","security":[{"bearerAuth":[]}]}},"/v1/accounts/{account_id}/deployments/{deployment_id}:scale":{"patch":{"tags":["Deployments"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"deployment_id","in":"path","description":"The Deployment Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/deployments/{deployment_id}:scale"},"summary":"Scale Deployment to a specific number of replicas or to zero","description":"Scale Deployment to a specific number of replicas or to zero","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"replicaCount":{"type":"integer","description":"The desired number of replicas. replicaCount"}}},"example":{"replicaCount":""}}}}}},"/v1/accounts/{account_id}/deployments/{deployment_id}:undelete":{"post":{"tags":["Deployments"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"deployment_id","in":"path","description":"The Deployment Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/deployments/{deployment_id}:undelete"},"summary":"Undelete Deployment","description":"Undelete Deployment","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/v1/accounts/{account_id}/developerPasses":{"get":{"tags":["Developer Passes"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"pageSize","in":"query","description":"Maximum number of developer passes to return.","required":false,"schema":{"type":"integer","example":""}},{"name":"pageToken","in":"query","description":"Page token from a previous ListDeveloperPasses call.","required":false,"schema":{"type":"string","example":""}},{"name":"filter","in":"query","description":"Filter expression (e.g., \"state=ACTIVE\")","required":false,"schema":{"type":"string","example":""}},{"name":"orderBy","in":"query","description":"Order by expression (e.g., \"create_time desc\")","required":false,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/developerPasses"},"summary":"List Developer Passes","description":"List Developer Passes","security":[{"bearerAuth":[]}]},"post":{"tags":["Developer Passes"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/developerPasses"},"summary":"CRUD APIs for developer passes.\nCreate Developer Pass","description":"CRUD APIs for developer passes.\nCreate Developer Pass","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"The resource name of the developer pass.\nFormat: accounts/{account_id}/developerPasses/{developer_pass_id} name"},"autoRenew":{"type":"boolean","description":"Whether the developer pass will automatically renew upon expiry. autoRenew"},"endTime":{"type":"string","description":"The time at which the developer pass ends. endTime"},"createTime":{"type":"string","description":"Creation timestamp. createTime"},"updateTime":{"type":"string","description":"Last update timestamp. updateTime"},"state":{"type":"string","description":"state","enum":["STATE_UNSPECIFIED","ACTIVE","EXPIRED","FAILED","CREATING","ENABLING_AUTO_RENEW","DISABLING_AUTO_RENEW","PAYMENT_FAILED","UPDATING"]},"statusMessage":{"type":"string","description":"Additional context for the current state, such as a payment decline reason. statusMessage"},"lastRenewTime":{"type":"string","description":"The time at which the developer pass was last renewed. lastRenewTime"},"version":{"type":"string","description":"version","enum":["VERSION_UNSPECIFIED","VERSION_V1","VERSION_V2"]},"annotations":{"type":"object","description":"annotations","properties":{"requestedVersion":{"type":"string","description":"requestedVersion","enum":["VERSION_UNSPECIFIED","VERSION_V1","VERSION_V2"]},"promoCreditCode":{"type":"string","description":"User-facing promo code that created this pass. promoCreditCode"}}}}},"example":{"name":"","autoRenew":"","endTime":"","createTime":"","updateTime":"","state":"","statusMessage":"","lastRenewTime":"","version":"","annotations":{}}}}}}},"/v1/accounts/{account_id}/developerPasses/{developer_passe_id}":{"get":{"tags":["Developer Passes"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"developer_passe_id","in":"path","description":"The Developer Passe Id","required":true,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/developerPasses/{developer_passe_id}"},"summary":"Get Developer Pass","description":"Get Developer Pass","security":[{"bearerAuth":[]}]},"patch":{"tags":["Developer Passes"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"developer_passe_id","in":"path","description":"The Developer Passe Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/developerPasses/{developer_passe_id}"},"summary":"Update Developer Pass","description":"Update Developer Pass","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"autoRenew":{"type":"boolean","description":"Whether the developer pass will automatically renew upon expiry. autoRenew"},"endTime":{"type":"string","description":"The time at which the developer pass ends. endTime"},"createTime":{"type":"string","description":"Creation timestamp. createTime"},"updateTime":{"type":"string","description":"Last update timestamp. updateTime"},"state":{"type":"string","description":"state","enum":["STATE_UNSPECIFIED","ACTIVE","EXPIRED","FAILED","CREATING","ENABLING_AUTO_RENEW","DISABLING_AUTO_RENEW","PAYMENT_FAILED","UPDATING"]},"statusMessage":{"type":"string","description":"Additional context for the current state, such as a payment decline reason. statusMessage"},"lastRenewTime":{"type":"string","description":"The time at which the developer pass was last renewed. lastRenewTime"},"version":{"type":"string","description":"version","enum":["VERSION_UNSPECIFIED","VERSION_V1","VERSION_V2"]},"annotations":{"type":"object","description":"annotations","properties":{"requestedVersion":{"type":"string","description":"requestedVersion","enum":["VERSION_UNSPECIFIED","VERSION_V1","VERSION_V2"]},"promoCreditCode":{"type":"string","description":"User-facing promo code that created this pass. promoCreditCode"}}}}},"example":{"autoRenew":"","endTime":"","createTime":"","updateTime":"","state":"","statusMessage":"","lastRenewTime":"","version":"","annotations":{}}}}}}},"/v1/accounts/{account_id}/dpoJobs":{"get":{"tags":["Fine-Tuning"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"pageSize","in":"query","description":"The maximum number of dpo jobs to return. The maximum page_size is 200,\nvalues above 200 will be coerced to 200.\nIf unspecified, the default is 50.","required":false,"schema":{"type":"integer","example":""}},{"name":"pageToken","in":"query","description":"A page token, received from a previous ListDpoJobs call. Provide this\nto retrieve the subsequent page. When paginating, all other parameters\nprovided to ListDpoJobs must match the call that provided the page\ntoken.","required":false,"schema":{"type":"string","example":""}},{"name":"filter","in":"query","description":"Filter criteria for the returned jobs. See https://google.aip.dev/160 for the filter syntax specification.","required":false,"schema":{"type":"string","example":""}},{"name":"orderBy","in":"query","description":"A comma-separated list of fields to order by. e.g. \"foo,bar\"\nThe default sort order is ascending. To specify a descending order for a\nfield, append a \" desc\" suffix. e.g. \"foo desc,bar\"\nSubfields are specified with a \".\" character. e.g. \"foo.bar\"\nIf not specified, the default order is by \"name\".","required":false,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}},{"name":"includeArchived","in":"query","description":"If true, include archived (post-delete retention) jobs in the response.\nArchived jobs are inert (no resources running, no further billing) but\ntheir checkpoints remain promotable until the retention window expires.","required":false,"schema":{"type":"boolean","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/dpoJobs"},"summary":"Gateway_ListDpoJobs","description":"Gateway_ListDpoJobs","security":[{"bearerAuth":[]}]},"post":{"tags":["Fine-Tuning"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"dpoJobId","in":"query","description":"ID of the DPO job, a random ID will be generated if not specified.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/dpoJobs"},"summary":"Gateway_CreateDpoJob","description":"Gateway_CreateDpoJob","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"name"},"displayName":{"type":"string","description":"displayName"},"createTime":{"type":"string","description":"createTime"},"completedTime":{"type":"string","description":"completedTime"},"dataset":{"type":"string","description":"The name of the dataset used for training. dataset","required":true},"state":{"type":"string","description":"JobState represents the state an asynchronous job can be in.\n\n - JOB_STATE_PAUSED: Job is paused, typically due to account suspension or manual intervention.\n - JOB_STATE_DELETED: Job has been deleted.\n - JOB_STATE_ARCHIVED: User-facing state for jobs whose row is retained post-delete (e.g. RLOR\ntrainers within the checkpoint retention window). The internal row is\nstill in JOB_STATE_DELETED; the gateway translates it to ARCHIVED on\npublic responses. state","enum":["JOB_STATE_UNSPECIFIED","JOB_STATE_CREATING","JOB_STATE_RUNNING","JOB_STATE_COMPLETED","JOB_STATE_FAILED","JOB_STATE_CANCELLED","JOB_STATE_DELETING","JOB_STATE_WRITING_RESULTS","JOB_STATE_VALIDATING","JOB_STATE_DELETING_CLEANING_UP","JOB_STATE_PENDING","JOB_STATE_EXPIRED","JOB_STATE_RE_QUEUEING","JOB_STATE_CREATING_INPUT_DATASET","JOB_STATE_IDLE","JOB_STATE_CANCELLING","JOB_STATE_EARLY_STOPPED","JOB_STATE_PAUSED","JOB_STATE_DELETED","JOB_STATE_ARCHIVED"]},"status":{"type":"object","description":"Mimics [https://github.com/googleapis/googleapis/blob/master/google/rpc/status.proto] status","properties":{"code":{"type":"string","description":"- OK: Not an error; returned on success.\n\nHTTP Mapping: 200 OK\n - CANCELLED: The operation was cancelled, typically by the caller.\n\nHTTP Mapping: 499 Client Closed Request\n - UNKNOWN: Unknown error.  For example, this error may be returned when\na `Status` value received from another address space belongs to\nan error space that is not known in this address space.  Also\nerrors raised by APIs that do not return enough error information\nmay be converted to this error.\n\nHTTP Mapping: 500 Internal Server Error\n - INVALID_ARGUMENT: The client specified an invalid argument.  Note that this differs\nfrom `FAILED_PRECONDITION`.  `INVALID_ARGUMENT` indicates arguments\nthat are problematic regardless of the state of the system\n(e.g., a malformed file name).\n\nHTTP Mapping: 400 Bad Request\n - DEADLINE_EXCEEDED: The deadline expired before the operation could complete. For operations\nthat change the state of the system, this error may be returned\neven if the operation has completed successfully.  For example, a\nsuccessful response from a server could have been delayed long\nenough for the deadline to expire.\n\nHTTP Mapping: 504 Gateway Timeout\n - NOT_FOUND: Some requested entity (e.g., file or directory) was not found.\n\nNote to server developers: if a request is denied for an entire class\nof users, such as gradual feature rollout or undocumented allowlist,\n`NOT_FOUND` may be used. If a request is denied for some users within\na class of users, such as user-based access control, `PERMISSION_DENIED`\nmust be used.\n\nHTTP Mapping: 404 Not Found\n - ALREADY_EXISTS: The entity that a client attempted to create (e.g., file or directory)\nalready exists.\n\nHTTP Mapping: 409 Conflict\n - PERMISSION_DENIED: The caller does not have permission to execute the specified\noperation. `PERMISSION_DENIED` must not be used for rejections\ncaused by exhausting some resource (use `RESOURCE_EXHAUSTED`\ninstead for those errors). `PERMISSION_DENIED` must not be\nused if the caller can not be identified (use `UNAUTHENTICATED`\ninstead for those errors). This error code does not imply the\nrequest is valid or the requested entity exists or satisfies\nother pre-conditions.\n\nHTTP Mapping: 403 Forbidden\n - UNAUTHENTICATED: The request does not have valid authentication credentials for the\noperation.\n\nHTTP Mapping: 401 Unauthorized\n - RESOURCE_EXHAUSTED: Some resource has been exhausted, perhaps a per-user quota, or\nperhaps the entire file system is out of space.\n\nHTTP Mapping: 429 Too Many Requests\n - FAILED_PRECONDITION: The operation was rejected because the system is not in a state\nrequired for the operation's execution.  For example, the directory\nto be deleted is non-empty, an rmdir operation is applied to\na non-directory, etc.\n\nService implementors can use the following guidelines to decide\nbetween `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`:\n (a) Use `UNAVAILABLE` if the client can retry just the failing call.\n (b) Use `ABORTED` if the client should retry at a higher level. For\n     example, when a client-specified test-and-set fails, indicating the\n     client should restart a read-modify-write sequence.\n (c) Use `FAILED_PRECONDITION` if the client should not retry until\n     the system state has been explicitly fixed. For example, if an \"rmdir\"\n     fails because the directory is non-empty, `FAILED_PRECONDITION`\n     should be returned since the client should not retry unless\n     the files are deleted from the directory.\n\nHTTP Mapping: 400 Bad Request\n - ABORTED: The operation was aborted, typically due to a concurrency issue such as\na sequencer check failure or transaction abort.\n\nSee the guidelines above for deciding between `FAILED_PRECONDITION`,\n`ABORTED`, and `UNAVAILABLE`.\n\nHTTP Mapping: 409 Conflict\n - OUT_OF_RANGE: The operation was attempted past the valid range.  E.g., seeking or\nreading past end-of-file.\n\nUnlike `INVALID_ARGUMENT`, this error indicates a problem that may\nbe fixed if the system state changes. For example, a 32-bit file\nsystem will generate `INVALID_ARGUMENT` if asked to read at an\noffset that is not in the range [0,2^32-1], but it will generate\n`OUT_OF_RANGE` if asked to read from an offset past the current\nfile size.\n\nThere is a fair bit of overlap between `FAILED_PRECONDITION` and\n`OUT_OF_RANGE`.  We recommend using `OUT_OF_RANGE` (the more specific\nerror) when it applies so that callers who are iterating through\na space can easily look for an `OUT_OF_RANGE` error to detect when\nthey are done.\n\nHTTP Mapping: 400 Bad Request\n - UNIMPLEMENTED: The operation is not implemented or is not supported/enabled in this\nservice.\n\nHTTP Mapping: 501 Not Implemented\n - INTERNAL: Internal errors.  This means that some invariants expected by the\nunderlying system have been broken.  This error code is reserved\nfor serious errors.\n\nHTTP Mapping: 500 Internal Server Error\n - UNAVAILABLE: The service is currently unavailable.  This is most likely a\ntransient condition, which can be corrected by retrying with\na backoff. Note that it is not always safe to retry\nnon-idempotent operations.\n\nSee the guidelines above for deciding between `FAILED_PRECONDITION`,\n`ABORTED`, and `UNAVAILABLE`.\n\nHTTP Mapping: 503 Service Unavailable\n - DATA_LOSS: Unrecoverable data loss or corruption.\n\nHTTP Mapping: 500 Internal Server Error code","enum":["OK","CANCELLED","UNKNOWN","INVALID_ARGUMENT","DEADLINE_EXCEEDED","NOT_FOUND","ALREADY_EXISTS","PERMISSION_DENIED","UNAUTHENTICATED","RESOURCE_EXHAUSTED","FAILED_PRECONDITION","ABORTED","OUT_OF_RANGE","UNIMPLEMENTED","INTERNAL","UNAVAILABLE","DATA_LOSS"]},"message":{"type":"string","description":"A developer-facing error message in English. message"}}},"createdBy":{"type":"string","description":"The email address of the user who initiated this dpo job. createdBy"},"trainingConfig":{"type":"object","description":"BaseTrainingConfig contains common configuration fields shared across\ndifferent training job types. trainingConfig","properties":{"outputModel":{"type":"string","description":"The model ID to be assigned to the resulting fine-tuned model. If not specified, the job ID will be used. outputModel"},"baseModel":{"type":"string","description":"The name of the base model to be fine-tuned\nOnly one of 'base_model' or 'warm_start_from' should be specified. baseModel"},"warmStartFrom":{"type":"string","description":"The PEFT addon model in Fireworks format to be fine-tuned from\nOnly one of 'base_model' or 'warm_start_from' should be specified. warmStartFrom"},"jinjaTemplate":{"type":"string","description":"Deprecated: literal Jinja templates are not supported by Training V2.\nConversation rendering is selected from the base model's registered\nrenderer configuration instead. jinjaTemplate"},"learningRate":{"type":"number","description":"The learning rate used for training. learningRate"},"maxContextLength":{"type":"integer","description":"The maximum context length to use with the model. maxContextLength"},"loraRank":{"type":"integer","description":"The rank of the LoRA layers. loraRank"},"epochs":{"type":"integer","description":"The number of epochs to train for. epochs"},"batchSize":{"type":"integer","description":"Deprecated: legacy V1 token budget. Training V2 batches by samples via\nbatch_size_samples. batchSize"},"gradientAccumulationSteps":{"type":"integer","description":"Deprecated: legacy V1 gradient accumulation. Training V2 batches by\nsamples via batch_size_samples and rejects this field when set. gradientAccumulationSteps"}}},"wandbConfig":{"type":"object","description":"WandbConfig is the configuration for the Weights & Biases (wandb) logging which\nwill be used by a training job. wandbConfig","properties":{"enabled":{"type":"boolean","description":"Whether to enable wandb logging. enabled"},"apiKey":{"type":"string","description":"The API key for the wandb service. apiKey"},"project":{"type":"string","description":"The project name for the wandb service. project"},"entity":{"type":"string","description":"The entity name for the wandb service. entity"},"runId":{"type":"string","description":"The run ID for the wandb service. runId"},"url":{"type":"string","description":"The URL for the wandb service. url"}}},"trainerLogsSignedUrl":{"type":"string","description":"The signed URL for the trainer logs file (stdout/stderr).\nOnly populated if the account has trainer log reading enabled. trainerLogsSignedUrl"},"lossConfig":{"type":"object","description":"Loss method + hyperparameters for reinforcement-learning-style fine-tuning (e.g. RFT / RL trainers).\nFor preference jobs (DPO API), the default loss method is GRPO when METHOD_UNSPECIFIED. lossConfig","properties":{"method":{"type":"string","description":"- METHOD_UNSPECIFIED: Defaults to GRPO\n - GRPO: Group Relative Policy Optimization (default for preference jobs)\n - DAPO: Decoupled Alignment Preference Optimization\n - DPO: Direct Preference Optimization\n - ORPO: Odds Ratio Preference Optimization (reference-free)\n - GSPO_TOKEN: Group Sequence Policy Optimization (token-level) method","enum":["METHOD_UNSPECIFIED","GRPO","DAPO","DPO","ORPO","GSPO_TOKEN"]},"klBeta":{"type":"number","description":"KL coefficient (beta) override for GRPO-like methods.\nIf unset, the trainer default is used. klBeta"},"dpo":{"type":"object","description":"Hyperparameters for Direct Preference Optimization (DPO) training. dpo"},"orpo":{"type":"object","description":"Hyperparameters for Odds Ratio Preference Optimization (ORPO) training. orpo"}}},"awsS3Config":{"type":"object","description":"AwsS3Config is the configuration for AWS S3 dataset access which\nwill be used by a training job. awsS3Config","properties":{"credentialsSecret":{"type":"string","description":"Reference to a Secret resource containing AWS access key credentials.\nFormat: accounts/{account_id}/secrets/{secret_id}\nThe secret value must be JSON: {\"aws_access_key_id\": \"AKIA...\", \"aws_secret_access_key\": \"...\"} credentialsSecret"},"iamRoleArn":{"type":"string","description":"IAM role ARN to assume for accessing S3 datasets via GCP OIDC federation.\nFormat: arn:aws:iam::account-id:role/role-name iamRoleArn"}}},"azureBlobStorageConfig":{"type":"object","description":"AzureBlobStorageConfig is the configuration for Azure Blob Storage dataset access\nwhich will be used by a training job. azureBlobStorageConfig","properties":{"credentialsSecret":{"type":"string","description":"Reference to a Secret resource containing Azure credentials.\nFormat: accounts/{account_id}/secrets/{secret_id}\nThe secret value must be JSON: {\"connection_string\": \"...\"} or {\"sas_token\": \"...\"} or {\"account_key\": \"...\"}\nMutually exclusive with managed_identity_client_id. credentialsSecret"},"managedIdentityClientId":{"type":"string","description":"Managed Identity Client ID for GCP-to-Azure Workload Identity Federation.\nFormat: uuid\nMutually exclusive with credentials_secret. managedIdentityClientId"},"tenantId":{"type":"string","description":"Azure tenant ID for Workload Identity Federation.\nFormat: uuid tenantId"}}},"purpose":{"type":"string","description":"Scheduling purpose for training jobs and deployments. purpose","enum":["PURPOSE_UNSPECIFIED","PURPOSE_PILOT"]},"useReservation":{"type":"boolean","description":"Whether to try the account's reservation capacity before falling back to shared trainer capacity. useReservation"}}},"example":{"name":"","displayName":"","createTime":"","completedTime":"","dataset":"","state":"","status":{},"createdBy":"","trainingConfig":{},"wandbConfig":{},"trainerLogsSignedUrl":"","lossConfig":{},"awsS3Config":{},"azureBlobStorageConfig":{},"purpose":"","useReservation":""}}}}}},"/v1/accounts/{account_id}/dpoJobs/{dpo_job_id}":{"get":{"tags":["Fine-Tuning"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"dpo_job_id","in":"path","description":"The Dpo Job Id","required":true,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/dpoJobs/{dpo_job_id}"},"summary":"Gateway_GetDpoJob","description":"Gateway_GetDpoJob","security":[{"bearerAuth":[]}]},"delete":{"tags":["Fine-Tuning"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"dpo_job_id","in":"path","description":"The Dpo Job Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/dpoJobs/{dpo_job_id}"},"summary":"Gateway_DeleteDpoJob","description":"Gateway_DeleteDpoJob","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/v1/accounts/{account_id}/dpoJobs/{dpo_job_id}:cancel":{"post":{"tags":["Fine-Tuning"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"dpo_job_id","in":"path","description":"The Dpo Job Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/dpoJobs/{dpo_job_id}:cancel"},"summary":"Cancel Dpo Job","description":"Cancel Dpo Job","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/v1/accounts/{account_id}/dpoJobs/{dpo_job_id}:getMetricsFileEndpoint":{"get":{"tags":["Fine-Tuning"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"dpo_job_id","in":"path","description":"The Dpo Job Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/dpoJobs/{dpo_job_id}:getMetricsFileEndpoint"},"summary":"Gateway_GetDpoJobMetricsFileEndpoint","description":"Gateway_GetDpoJobMetricsFileEndpoint","security":[{"bearerAuth":[]}]}},"/v1/accounts/{account_id}/dpoJobs/{dpo_job_id}:resume":{"post":{"tags":["Fine-Tuning"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"dpo_job_id","in":"path","description":"The Dpo Job Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/dpoJobs/{dpo_job_id}:resume"},"summary":"Resume Dpo Job","description":"Resume Dpo Job","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/v1/accounts/{account_id}/evaluationJobs":{"get":{"tags":["Evaluations"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"pageSize","in":"query","description":"pageSize","required":false,"schema":{"type":"integer","example":""}},{"name":"pageToken","in":"query","description":"pageToken","required":false,"schema":{"type":"string","example":""}},{"name":"filter","in":"query","description":"filter","required":false,"schema":{"type":"string","example":""}},{"name":"orderBy","in":"query","description":"orderBy","required":false,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/evaluationJobs"},"summary":"List Evaluation Jobs","description":"List Evaluation Jobs","security":[{"bearerAuth":[]}]},"post":{"tags":["Evaluations"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/evaluationJobs"},"summary":"Create Evaluation Job","description":"Create Evaluation Job","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"evaluationJob":{"type":"object","description":"evaluationJob","required":true,"properties":{"name":{"type":"string","description":"name"},"displayName":{"type":"string","description":"displayName"},"createTime":{"type":"string","description":"createTime"},"createdBy":{"type":"string","description":"createdBy"},"state":{"type":"string","description":"JobState represents the state an asynchronous job can be in.\n\n - JOB_STATE_PAUSED: Job is paused, typically due to account suspension or manual intervention.\n - JOB_STATE_DELETED: Job has been deleted.\n - JOB_STATE_ARCHIVED: User-facing state for jobs whose row is retained post-delete (e.g. RLOR\ntrainers within the checkpoint retention window). The internal row is\nstill in JOB_STATE_DELETED; the gateway translates it to ARCHIVED on\npublic responses. state","enum":["JOB_STATE_UNSPECIFIED","JOB_STATE_CREATING","JOB_STATE_RUNNING","JOB_STATE_COMPLETED","JOB_STATE_FAILED","JOB_STATE_CANCELLED","JOB_STATE_DELETING","JOB_STATE_WRITING_RESULTS","JOB_STATE_VALIDATING","JOB_STATE_DELETING_CLEANING_UP","JOB_STATE_PENDING","JOB_STATE_EXPIRED","JOB_STATE_RE_QUEUEING","JOB_STATE_CREATING_INPUT_DATASET","JOB_STATE_IDLE","JOB_STATE_CANCELLING","JOB_STATE_EARLY_STOPPED","JOB_STATE_PAUSED","JOB_STATE_DELETED","JOB_STATE_ARCHIVED"]},"status":{"type":"object","description":"Mimics [https://github.com/googleapis/googleapis/blob/master/google/rpc/status.proto] status"},"evaluator":{"type":"string","description":"The fully-qualified resource name of the Evaluation used by this job.\n\nFormat: accounts/{account_id}/evaluators/{evaluator_id} evaluator"},"inputDataset":{"type":"string","description":"The fully-qualified resource name of the input Dataset used by this job.\n\nFormat: accounts/{account_id}/datasets/{dataset_id} inputDataset"},"outputDataset":{"type":"string","description":"The fully-qualified resource name of the output Dataset created by this job.\n\nFormat: accounts/{account_id}/datasets/{output_dataset_id} outputDataset"},"metrics":{"type":"object","description":"metrics"}}},"evaluationJobId":{"type":"string","description":"evaluationJobId"}}},"example":{"evaluationJob":{},"evaluationJobId":""}}}}}},"/v1/accounts/{account_id}/evaluationJobs/{evaluation_job_id}":{"get":{"tags":["Evaluations"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"evaluation_job_id","in":"path","description":"The Evaluation Job Id","required":true,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/evaluationJobs/{evaluation_job_id}"},"summary":"Get Evaluation Job","description":"Get Evaluation Job","security":[{"bearerAuth":[]}]},"delete":{"tags":["Evaluations"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"evaluation_job_id","in":"path","description":"The Evaluation Job Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/evaluationJobs/{evaluation_job_id}"},"summary":"Delete Evaluation Job","description":"Delete Evaluation Job","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/v1/accounts/{account_id}/evaluationJobs/{evaluation_job_id}:getExecutionLogEndpoint":{"get":{"tags":["Evaluations"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"evaluation_job_id","in":"path","description":"The Evaluation Job Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/evaluationJobs/{evaluation_job_id}:getExecutionLogEndpoint"},"summary":"Get Evaluation Job execution logs (stream log endpoint + tracing IDs).","description":"Get Evaluation Job execution logs (stream log endpoint + tracing IDs).","security":[{"bearerAuth":[]}]}},"/v1/accounts/{account_id}/evaluations":{"get":{"tags":["Evaluations"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"pageSize","in":"query","description":"pageSize","required":false,"schema":{"type":"integer","example":""}},{"name":"pageToken","in":"query","description":"pageToken","required":false,"schema":{"type":"string","example":""}},{"name":"filter","in":"query","description":"filter","required":false,"schema":{"type":"string","example":""}},{"name":"orderBy","in":"query","description":"orderBy","required":false,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/evaluations"},"summary":"List Evaluations","description":"List Evaluations","security":[{"bearerAuth":[]}]},"post":{"tags":["Evaluations"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/evaluations"},"summary":"Create Evaluation","description":"Create Evaluation","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"evaluation":{"type":"object","description":"evaluation","required":true,"properties":{"name":{"type":"string","description":"Current fields in your proto name"},"createTime":{"type":"string","description":"createTime"},"createdBy":{"type":"string","description":"createdBy"},"status":{"type":"object","description":"Mimics [https://github.com/googleapis/googleapis/blob/master/google/rpc/status.proto] status"},"evaluationType":{"type":"string","description":"string llm_evaluator_prompt = 6; evaluationType"},"description":{"type":"string","description":"Optional description of the evaluation description"},"providers":{"type":"array","description":"One or more providers to use providers"},"assertions":{"type":"array","description":"One or more assertions to evaluate assertions"},"updateTime":{"type":"string","description":"The update time for the evaluation. updateTime"}}},"evaluationId":{"type":"string","description":"evaluationId"}}},"example":{"evaluation":{},"evaluationId":""}}}}}},"/v1/accounts/{account_id}/evaluations/{evaluation_id}":{"get":{"tags":["Evaluations"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"evaluation_id","in":"path","description":"The Evaluation Id","required":true,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/evaluations/{evaluation_id}"},"summary":"Get Evaluation","description":"Get Evaluation","security":[{"bearerAuth":[]}]},"delete":{"tags":["Evaluations"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"evaluation_id","in":"path","description":"The Evaluation Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/evaluations/{evaluation_id}"},"summary":"TODO: Add Update Evaluation\nUpdate Evaluation\nrpc UpdateEvaluation(UpdateEvaluationRequest) returns (Evaluation) {\n  option (google.api.http) = {\n    patch: \"/v1/{evaluation.name=accounts/*/evaluations/*}\"\n    body: \"evaluation\"\n  };\n}\nDelete Evaluation","description":"TODO: Add Update Evaluation\nUpdate Evaluation\nrpc UpdateEvaluation(UpdateEvaluationRequest) returns (Evaluation) {\n  option (google.api.http) = {\n    patch: \"/v1/{evaluation.name=accounts/*/evaluations/*}\"\n    body: \"evaluation\"\n  };\n}\nDelete Evaluation","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/v1/accounts/{account_id}/evaluations/{evaluation_id}:preview":{"post":{"tags":["Evaluations"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"evaluation_id","in":"path","description":"The Evaluation Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/evaluations/{evaluation_id}:preview"},"summary":"Preview an evaluation with sample data","description":"Preview an evaluation with sample data","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"sampleData":{"type":"string","description":"Sample data in JSON format (array of samples) sampleData","required":true},"maxSamples":{"type":"integer","description":"Maximum number of samples to evaluate (optional, default will be a small number like 5) maxSamples"}}},"example":{"sampleData":"","maxSamples":""}}}}}},"/v1/accounts/{account_id}/evaluations:validateAssertions":{"post":{"tags":["Evaluations"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/evaluations:validateAssertions"},"summary":"Validate evaluation assertions","description":"Validate evaluation assertions","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"assertions":{"type":"array","description":"assertions","required":true,"items":{"type":"object","properties":{"assertionType":{"type":"string","description":"assertionType","enum":["ASSERTION_TYPE_UNSPECIFIED","ASSERTION_TYPE_LLM","ASSERTION_TYPE_CODE"]},"llmAssertion":{"type":"object","description":"llmAssertion"},"codeAssertion":{"type":"object","description":"codeAssertion"},"metricName":{"type":"string","description":"metricName"}}}}}},"example":{"assertions":[]}}}}}},"/v1/accounts/{account_id}/evaluators":{"get":{"tags":["Evaluations"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"pageSize","in":"query","description":"pageSize","required":false,"schema":{"type":"integer","example":""}},{"name":"pageToken","in":"query","description":"pageToken","required":false,"schema":{"type":"string","example":""}},{"name":"filter","in":"query","description":"filter","required":false,"schema":{"type":"string","example":""}},{"name":"orderBy","in":"query","description":"orderBy","required":false,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/evaluators"},"summary":"List Evaluators","description":"List Evaluators","security":[{"bearerAuth":[]}]},"post":{"tags":["Evaluations"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/evaluators"},"summary":"Create Evaluator (Deprecated)","description":"Create Evaluator (Deprecated)","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"evaluator":{"type":"object","description":"evaluator","required":true,"properties":{"name":{"type":"string","description":"name"},"displayName":{"type":"string","description":"displayName"},"description":{"type":"string","description":"description"},"createTime":{"type":"string","description":"createTime"},"createdBy":{"type":"string","description":"createdBy"},"updateTime":{"type":"string","description":"updateTime"},"state":{"type":"string","description":"- ACTIVE: The evaluator is ready to use for evaluation\n - BUILDING: The evaluator is being built, i.e. building the e2b template\n - BUILD_FAILED: The evaluator build failed, and it cannot be used for evaluation state","enum":["STATE_UNSPECIFIED","ACTIVE","BUILDING","BUILD_FAILED"]},"criteria":{"type":"array","description":"Criteria for the evaluator, it should produce a score for the metric (name of criteria)\nUsed for eval3 with UI upload path criteria"},"requirements":{"type":"string","description":"Content for the requirements.txt for package installation requirements"},"entryPoint":{"type":"string","description":"entry point of the evaluator inside the codebase. In module::function or path::function format entryPoint"}}},"evaluatorId":{"type":"string","description":"evaluatorId"}}},"example":{"evaluator":{},"evaluatorId":""}}}}}},"/v1/accounts/{account_id}/evaluators/{evaluator_id}":{"get":{"tags":["Evaluations"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"evaluator_id","in":"path","description":"The Evaluator Id","required":true,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/evaluators/{evaluator_id}"},"summary":"Get Evaluator","description":"Get Evaluator","security":[{"bearerAuth":[]}]},"patch":{"tags":["Evaluations"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"evaluator_id","in":"path","description":"The Evaluator Id","required":true,"schema":{"type":"string","example":""}},{"name":"prepareCodeUpload","in":"query","description":"If true, prepare a new code upload/build attempt by transitioning the\nevaluator to BUILDING state. Can be used without update_mask.","required":false,"schema":{"type":"boolean","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/evaluators/{evaluator_id}"},"summary":"Update Evaluator","description":"Update Evaluator","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"displayName":{"type":"string","description":"displayName"},"description":{"type":"string","description":"description"},"createTime":{"type":"string","description":"createTime"},"createdBy":{"type":"string","description":"createdBy"},"updateTime":{"type":"string","description":"updateTime"},"state":{"type":"string","description":"- ACTIVE: The evaluator is ready to use for evaluation\n - BUILDING: The evaluator is being built, i.e. building the e2b template\n - BUILD_FAILED: The evaluator build failed, and it cannot be used for evaluation state","enum":["STATE_UNSPECIFIED","ACTIVE","BUILDING","BUILD_FAILED"]},"criteria":{"type":"array","description":"Criteria for the evaluator, it should produce a score for the metric (name of criteria)\nUsed for eval3 with UI upload path criteria","items":{"type":"object","properties":{"type":{"type":"string","description":"- CODE_SNIPPETS: Code snippets for Sandbox based evaluation type","enum":["TYPE_UNSPECIFIED","CODE_SNIPPETS"]},"name":{"type":"string","description":"name"},"description":{"type":"string","description":"description"},"codeSnippets":{"type":"object","description":"codeSnippets"}}}},"requirements":{"type":"string","description":"Content for the requirements.txt for package installation requirements"},"entryPoint":{"type":"string","description":"entry point of the evaluator inside the codebase. In module::function or path::function format entryPoint"},"status":{"type":"object","description":"Mimics [https://github.com/googleapis/googleapis/blob/master/google/rpc/status.proto] status","properties":{"code":{"type":"string","description":"- OK: Not an error; returned on success.\n\nHTTP Mapping: 200 OK\n - CANCELLED: The operation was cancelled, typically by the caller.\n\nHTTP Mapping: 499 Client Closed Request\n - UNKNOWN: Unknown error.  For example, this error may be returned when\na `Status` value received from another address space belongs to\nan error space that is not known in this address space.  Also\nerrors raised by APIs that do not return enough error information\nmay be converted to this error.\n\nHTTP Mapping: 500 Internal Server Error\n - INVALID_ARGUMENT: The client specified an invalid argument.  Note that this differs\nfrom `FAILED_PRECONDITION`.  `INVALID_ARGUMENT` indicates arguments\nthat are problematic regardless of the state of the system\n(e.g., a malformed file name).\n\nHTTP Mapping: 400 Bad Request\n - DEADLINE_EXCEEDED: The deadline expired before the operation could complete. For operations\nthat change the state of the system, this error may be returned\neven if the operation has completed successfully.  For example, a\nsuccessful response from a server could have been delayed long\nenough for the deadline to expire.\n\nHTTP Mapping: 504 Gateway Timeout\n - NOT_FOUND: Some requested entity (e.g., file or directory) was not found.\n\nNote to server developers: if a request is denied for an entire class\nof users, such as gradual feature rollout or undocumented allowlist,\n`NOT_FOUND` may be used. If a request is denied for some users within\na class of users, such as user-based access control, `PERMISSION_DENIED`\nmust be used.\n\nHTTP Mapping: 404 Not Found\n - ALREADY_EXISTS: The entity that a client attempted to create (e.g., file or directory)\nalready exists.\n\nHTTP Mapping: 409 Conflict\n - PERMISSION_DENIED: The caller does not have permission to execute the specified\noperation. `PERMISSION_DENIED` must not be used for rejections\ncaused by exhausting some resource (use `RESOURCE_EXHAUSTED`\ninstead for those errors). `PERMISSION_DENIED` must not be\nused if the caller can not be identified (use `UNAUTHENTICATED`\ninstead for those errors). This error code does not imply the\nrequest is valid or the requested entity exists or satisfies\nother pre-conditions.\n\nHTTP Mapping: 403 Forbidden\n - UNAUTHENTICATED: The request does not have valid authentication credentials for the\noperation.\n\nHTTP Mapping: 401 Unauthorized\n - RESOURCE_EXHAUSTED: Some resource has been exhausted, perhaps a per-user quota, or\nperhaps the entire file system is out of space.\n\nHTTP Mapping: 429 Too Many Requests\n - FAILED_PRECONDITION: The operation was rejected because the system is not in a state\nrequired for the operation's execution.  For example, the directory\nto be deleted is non-empty, an rmdir operation is applied to\na non-directory, etc.\n\nService implementors can use the following guidelines to decide\nbetween `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`:\n (a) Use `UNAVAILABLE` if the client can retry just the failing call.\n (b) Use `ABORTED` if the client should retry at a higher level. For\n     example, when a client-specified test-and-set fails, indicating the\n     client should restart a read-modify-write sequence.\n (c) Use `FAILED_PRECONDITION` if the client should not retry until\n     the system state has been explicitly fixed. For example, if an \"rmdir\"\n     fails because the directory is non-empty, `FAILED_PRECONDITION`\n     should be returned since the client should not retry unless\n     the files are deleted from the directory.\n\nHTTP Mapping: 400 Bad Request\n - ABORTED: The operation was aborted, typically due to a concurrency issue such as\na sequencer check failure or transaction abort.\n\nSee the guidelines above for deciding between `FAILED_PRECONDITION`,\n`ABORTED`, and `UNAVAILABLE`.\n\nHTTP Mapping: 409 Conflict\n - OUT_OF_RANGE: The operation was attempted past the valid range.  E.g., seeking or\nreading past end-of-file.\n\nUnlike `INVALID_ARGUMENT`, this error indicates a problem that may\nbe fixed if the system state changes. For example, a 32-bit file\nsystem will generate `INVALID_ARGUMENT` if asked to read at an\noffset that is not in the range [0,2^32-1], but it will generate\n`OUT_OF_RANGE` if asked to read from an offset past the current\nfile size.\n\nThere is a fair bit of overlap between `FAILED_PRECONDITION` and\n`OUT_OF_RANGE`.  We recommend using `OUT_OF_RANGE` (the more specific\nerror) when it applies so that callers who are iterating through\na space can easily look for an `OUT_OF_RANGE` error to detect when\nthey are done.\n\nHTTP Mapping: 400 Bad Request\n - UNIMPLEMENTED: The operation is not implemented or is not supported/enabled in this\nservice.\n\nHTTP Mapping: 501 Not Implemented\n - INTERNAL: Internal errors.  This means that some invariants expected by the\nunderlying system have been broken.  This error code is reserved\nfor serious errors.\n\nHTTP Mapping: 500 Internal Server Error\n - UNAVAILABLE: The service is currently unavailable.  This is most likely a\ntransient condition, which can be corrected by retrying with\na backoff. Note that it is not always safe to retry\nnon-idempotent operations.\n\nSee the guidelines above for deciding between `FAILED_PRECONDITION`,\n`ABORTED`, and `UNAVAILABLE`.\n\nHTTP Mapping: 503 Service Unavailable\n - DATA_LOSS: Unrecoverable data loss or corruption.\n\nHTTP Mapping: 500 Internal Server Error code","enum":["OK","CANCELLED","UNKNOWN","INVALID_ARGUMENT","DEADLINE_EXCEEDED","NOT_FOUND","ALREADY_EXISTS","PERMISSION_DENIED","UNAUTHENTICATED","RESOURCE_EXHAUSTED","FAILED_PRECONDITION","ABORTED","OUT_OF_RANGE","UNIMPLEMENTED","INTERNAL","UNAVAILABLE","DATA_LOSS"]},"message":{"type":"string","description":"A developer-facing error message in English. message"}}},"commitHash":{"type":"string","description":"Commit hash of this evaluator from the user's original codebase commitHash"},"source":{"type":"object","description":"source","properties":{"type":{"type":"string","description":"- TYPE_UPLOAD: Source code is uploaded by the user\n - TYPE_GITHUB: Source code is from a GitHub repository\n - TYPE_TEMPORARY: Source code is a temporary UI uploaded code type","enum":["TYPE_UNSPECIFIED","TYPE_UPLOAD","TYPE_GITHUB","TYPE_TEMPORARY"]},"githubRepositoryName":{"type":"string","description":"Normalized GitHub repository name (e.g. owner/repository) when the source is GitHub. githubRepositoryName"}}},"defaultDataset":{"type":"string","description":"Default dataset that is associated with the evaluator defaultDataset"},"encryptionState":{"type":"string","description":"EncryptionState is the authoritative, per-resource CMEK marker: the single\nsource of truth for whether a resource's customer-data artifacts are\nencrypted. It is stamped at resource creation from the owning account's CMEK\nconfig and is immutable for the resource's life, so a resource always reads\nback with the state it was created under regardless of the account's current\nflag. The encrypt-on-write / decrypt-on-read decision for the resource's\ndata keys off this field.\n\n - ENCRYPTION_STATE_UNSPECIFIED: Unstamped/legacy rows that predate CMEK. Treated as PLAINTEXT.\n - ENCRYPTION_STATE_PLAINTEXT: Customer-data artifacts are stored as plaintext (Fireworks-owned, no CMEK).\n - ENCRYPTION_STATE_CMEK: Customer-data artifacts are CMEK-encrypted; reads MUST decrypt (fail-closed). encryptionState","enum":["ENCRYPTION_STATE_UNSPECIFIED","ENCRYPTION_STATE_PLAINTEXT","ENCRYPTION_STATE_CMEK"]}}},"example":{"displayName":"","description":"","createTime":"","createdBy":"","updateTime":"","state":"","criteria":[],"requirements":"","entryPoint":"","status":{},"commitHash":"","source":{},"defaultDataset":"","encryptionState":""}}}}},"delete":{"tags":["Evaluations"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"evaluator_id","in":"path","description":"The Evaluator Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/evaluators/{evaluator_id}"},"summary":"Delete Evaluator","description":"Delete Evaluator","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/v1/accounts/{account_id}/evaluators/{evaluator_id}/versions":{"get":{"tags":["Model Versions"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"evaluator_id","in":"path","description":"The Evaluator Id","required":true,"schema":{"type":"string","example":""}},{"name":"pageSize","in":"query","description":"pageSize","required":false,"schema":{"type":"integer","example":""}},{"name":"pageToken","in":"query","description":"pageToken","required":false,"schema":{"type":"string","example":""}},{"name":"filter","in":"query","description":"filter","required":false,"schema":{"type":"string","example":""}},{"name":"orderBy","in":"query","description":"Default order should be reverse chronological (newest first) per AIP-162.","required":false,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/evaluators/{evaluator_id}/versions"},"summary":"List Evaluator Revisions","description":"List Evaluator Revisions","security":[{"bearerAuth":[]}]}},"/v1/accounts/{account_id}/evaluators/{evaluator_id}/versions/{version_id}":{"get":{"tags":["Model Versions"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"evaluator_id","in":"path","description":"The Evaluator Id","required":true,"schema":{"type":"string","example":""}},{"name":"version_id","in":"path","description":"The Version Id","required":true,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/evaluators/{evaluator_id}/versions/{version_id}"},"summary":"CRUD APIs for evaluator revisions (AIP-162).\nGet Evaluator Revision","description":"CRUD APIs for evaluator revisions (AIP-162).\nGet Evaluator Revision","security":[{"bearerAuth":[]}]},"delete":{"tags":["Model Versions"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"evaluator_id","in":"path","description":"The Evaluator Id","required":true,"schema":{"type":"string","example":""}},{"name":"version_id","in":"path","description":"The Version Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/evaluators/{evaluator_id}/versions/{version_id}"},"summary":"Delete Evaluator Revision (deletes alias if name is an alias per AIP-162)","description":"Delete Evaluator Revision (deletes alias if name is an alias per AIP-162)","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/v1/accounts/{account_id}/evaluators/{evaluator_id}/versions/{version_id}:alias":{"post":{"tags":["Model Versions"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"evaluator_id","in":"path","description":"The Evaluator Id","required":true,"schema":{"type":"string","example":""}},{"name":"version_id","in":"path","description":"The Version Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/evaluators/{evaluator_id}/versions/{version_id}:alias"},"summary":"Alias Evaluator Revision - assign or update a user-specified alias","description":"Alias Evaluator Revision - assign or update a user-specified alias","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"aliasId":{"type":"string","description":"The alias ID (e.g., \"current\", a semver tag, etc.). aliasId","required":true}}},"example":{"aliasId":""}}}}}},"/v1/accounts/{account_id}/evaluators/{evaluator_id}/versions/{version_id}:rollback":{"post":{"tags":["Model Versions"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"evaluator_id","in":"path","description":"The Evaluator Id","required":true,"schema":{"type":"string","example":""}},{"name":"version_id","in":"path","description":"The Version Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/evaluators/{evaluator_id}/versions/{version_id}:rollback"},"summary":"Rollback Evaluator to a specific revision","description":"Rollback Evaluator to a specific revision","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/v1/accounts/{account_id}/evaluators/{evaluator_id}:getBuildLogEndpoint":{"get":{"tags":["Evaluations"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"evaluator_id","in":"path","description":"The Evaluator Id","required":true,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/evaluators/{evaluator_id}:getBuildLogEndpoint"},"summary":"Get Evaluator Build Log Endpoint","description":"Get Evaluator Build Log Endpoint","security":[{"bearerAuth":[]}]}},"/v1/accounts/{account_id}/evaluators/{evaluator_id}:getSourceCodeSignedUrl":{"get":{"tags":["Evaluations"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"evaluator_id","in":"path","description":"The Evaluator Id","required":true,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/evaluators/{evaluator_id}:getSourceCodeSignedUrl"},"summary":"Get Evaluator Source Code Endpoint","description":"Get Evaluator Source Code Endpoint","security":[{"bearerAuth":[]}]}},"/v1/accounts/{account_id}/evaluators/{evaluator_id}:getUploadEndpoint":{"post":{"tags":["Evaluations"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"evaluator_id","in":"path","description":"The Evaluator Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/evaluators/{evaluator_id}:getUploadEndpoint"},"summary":"Get Evaluator Upload Endpoint","description":"Get Evaluator Upload Endpoint","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"filenameToSize":{"type":"object","description":"filenameToSize","required":true},"readMask":{"type":"string","description":"readMask"}}},"example":{"filenameToSize":{},"readMask":""}}}}}},"/v1/accounts/{account_id}/evaluators/{evaluator_id}:validateUpload":{"post":{"tags":["Evaluations"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"evaluator_id","in":"path","description":"The Evaluator Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/evaluators/{evaluator_id}:validateUpload"},"summary":"Validate Evaluator Upload","description":"Validate Evaluator Upload","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/v1/accounts/{account_id}/evaluators:previewEvaluator":{"post":{"tags":["Evaluations"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/evaluators:previewEvaluator"},"summary":"Gateway_PreviewEvaluator","description":"Gateway_PreviewEvaluator","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"evaluator":{"type":"object","description":"evaluator","required":true,"properties":{"name":{"type":"string","description":"name"},"displayName":{"type":"string","description":"displayName"},"description":{"type":"string","description":"description"},"createTime":{"type":"string","description":"createTime"},"createdBy":{"type":"string","description":"createdBy"},"updateTime":{"type":"string","description":"updateTime"},"state":{"type":"string","description":"- ACTIVE: The evaluator is ready to use for evaluation\n - BUILDING: The evaluator is being built, i.e. building the e2b template\n - BUILD_FAILED: The evaluator build failed, and it cannot be used for evaluation state","enum":["STATE_UNSPECIFIED","ACTIVE","BUILDING","BUILD_FAILED"]},"criteria":{"type":"array","description":"Criteria for the evaluator, it should produce a score for the metric (name of criteria)\nUsed for eval3 with UI upload path criteria"},"requirements":{"type":"string","description":"Content for the requirements.txt for package installation requirements"},"entryPoint":{"type":"string","description":"entry point of the evaluator inside the codebase. In module::function or path::function format entryPoint"}}},"sampleData":{"type":"array","description":"Sample data in JSON format (array of json formated samples) sampleData","required":true,"items":{"type":"string"}},"maxSamples":{"type":"integer","description":"Maximum number of samples to evaluate, default is 10 maxSamples"}}},"example":{"evaluator":{},"sampleData":[],"maxSamples":""}}}}}},"/v1/accounts/{account_id}/evaluatorsV2":{"post":{"tags":["Evaluations"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/evaluatorsV2"},"summary":"Create Evaluator","description":"Create Evaluator","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"evaluator":{"type":"object","description":"evaluator","required":true,"properties":{"name":{"type":"string","description":"name"},"displayName":{"type":"string","description":"displayName"},"description":{"type":"string","description":"description"},"createTime":{"type":"string","description":"createTime"},"createdBy":{"type":"string","description":"createdBy"},"updateTime":{"type":"string","description":"updateTime"},"state":{"type":"string","description":"- ACTIVE: The evaluator is ready to use for evaluation\n - BUILDING: The evaluator is being built, i.e. building the e2b template\n - BUILD_FAILED: The evaluator build failed, and it cannot be used for evaluation state","enum":["STATE_UNSPECIFIED","ACTIVE","BUILDING","BUILD_FAILED"]},"criteria":{"type":"array","description":"Criteria for the evaluator, it should produce a score for the metric (name of criteria)\nUsed for eval3 with UI upload path criteria"},"requirements":{"type":"string","description":"Content for the requirements.txt for package installation requirements"},"entryPoint":{"type":"string","description":"entry point of the evaluator inside the codebase. In module::function or path::function format entryPoint"}}},"evaluatorId":{"type":"string","description":"evaluatorId"}}},"example":{"evaluator":{},"evaluatorId":""}}}}}},"/v1/accounts/{account_id}/externalKeys":{"get":{"tags":["External Keys"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"pageSize","in":"query","description":"Page size.","required":false,"schema":{"type":"integer","example":""}},{"name":"pageToken","in":"query","description":"Page token.","required":false,"schema":{"type":"string","example":""}},{"name":"filter","in":"query","description":"Filter expression.","required":false,"schema":{"type":"string","example":""}},{"name":"orderBy","in":"query","description":"Order by.","required":false,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/externalKeys"},"summary":"List External Keys","description":"List External Keys","security":[{"bearerAuth":[]}]},"post":{"tags":["External Keys"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/externalKeys"},"summary":"Create External Key","description":"Create External Key","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"The resource name of the external key.\nFormat: accounts/{account}/externalKeys/{external_key} name"},"displayName":{"type":"string","description":"Display name for the external key. displayName"},"createTime":{"type":"string","description":"Creation timestamp. createTime"},"updateTime":{"type":"string","description":"Last update timestamp. updateTime"},"state":{"type":"string","description":"State of the external key. state","enum":["STATE_UNSPECIFIED","CREATING","READY","UPDATING","DELETING"]},"status":{"type":"object","description":"Mimics [https://github.com/googleapis/googleapis/blob/master/google/rpc/status.proto] status","properties":{"code":{"type":"string","description":"- OK: Not an error; returned on success.\n\nHTTP Mapping: 200 OK\n - CANCELLED: The operation was cancelled, typically by the caller.\n\nHTTP Mapping: 499 Client Closed Request\n - UNKNOWN: Unknown error.  For example, this error may be returned when\na `Status` value received from another address space belongs to\nan error space that is not known in this address space.  Also\nerrors raised by APIs that do not return enough error information\nmay be converted to this error.\n\nHTTP Mapping: 500 Internal Server Error\n - INVALID_ARGUMENT: The client specified an invalid argument.  Note that this differs\nfrom `FAILED_PRECONDITION`.  `INVALID_ARGUMENT` indicates arguments\nthat are problematic regardless of the state of the system\n(e.g., a malformed file name).\n\nHTTP Mapping: 400 Bad Request\n - DEADLINE_EXCEEDED: The deadline expired before the operation could complete. For operations\nthat change the state of the system, this error may be returned\neven if the operation has completed successfully.  For example, a\nsuccessful response from a server could have been delayed long\nenough for the deadline to expire.\n\nHTTP Mapping: 504 Gateway Timeout\n - NOT_FOUND: Some requested entity (e.g., file or directory) was not found.\n\nNote to server developers: if a request is denied for an entire class\nof users, such as gradual feature rollout or undocumented allowlist,\n`NOT_FOUND` may be used. If a request is denied for some users within\na class of users, such as user-based access control, `PERMISSION_DENIED`\nmust be used.\n\nHTTP Mapping: 404 Not Found\n - ALREADY_EXISTS: The entity that a client attempted to create (e.g., file or directory)\nalready exists.\n\nHTTP Mapping: 409 Conflict\n - PERMISSION_DENIED: The caller does not have permission to execute the specified\noperation. `PERMISSION_DENIED` must not be used for rejections\ncaused by exhausting some resource (use `RESOURCE_EXHAUSTED`\ninstead for those errors). `PERMISSION_DENIED` must not be\nused if the caller can not be identified (use `UNAUTHENTICATED`\ninstead for those errors). This error code does not imply the\nrequest is valid or the requested entity exists or satisfies\nother pre-conditions.\n\nHTTP Mapping: 403 Forbidden\n - UNAUTHENTICATED: The request does not have valid authentication credentials for the\noperation.\n\nHTTP Mapping: 401 Unauthorized\n - RESOURCE_EXHAUSTED: Some resource has been exhausted, perhaps a per-user quota, or\nperhaps the entire file system is out of space.\n\nHTTP Mapping: 429 Too Many Requests\n - FAILED_PRECONDITION: The operation was rejected because the system is not in a state\nrequired for the operation's execution.  For example, the directory\nto be deleted is non-empty, an rmdir operation is applied to\na non-directory, etc.\n\nService implementors can use the following guidelines to decide\nbetween `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`:\n (a) Use `UNAVAILABLE` if the client can retry just the failing call.\n (b) Use `ABORTED` if the client should retry at a higher level. For\n     example, when a client-specified test-and-set fails, indicating the\n     client should restart a read-modify-write sequence.\n (c) Use `FAILED_PRECONDITION` if the client should not retry until\n     the system state has been explicitly fixed. For example, if an \"rmdir\"\n     fails because the directory is non-empty, `FAILED_PRECONDITION`\n     should be returned since the client should not retry unless\n     the files are deleted from the directory.\n\nHTTP Mapping: 400 Bad Request\n - ABORTED: The operation was aborted, typically due to a concurrency issue such as\na sequencer check failure or transaction abort.\n\nSee the guidelines above for deciding between `FAILED_PRECONDITION`,\n`ABORTED`, and `UNAVAILABLE`.\n\nHTTP Mapping: 409 Conflict\n - OUT_OF_RANGE: The operation was attempted past the valid range.  E.g., seeking or\nreading past end-of-file.\n\nUnlike `INVALID_ARGUMENT`, this error indicates a problem that may\nbe fixed if the system state changes. For example, a 32-bit file\nsystem will generate `INVALID_ARGUMENT` if asked to read at an\noffset that is not in the range [0,2^32-1], but it will generate\n`OUT_OF_RANGE` if asked to read from an offset past the current\nfile size.\n\nThere is a fair bit of overlap between `FAILED_PRECONDITION` and\n`OUT_OF_RANGE`.  We recommend using `OUT_OF_RANGE` (the more specific\nerror) when it applies so that callers who are iterating through\na space can easily look for an `OUT_OF_RANGE` error to detect when\nthey are done.\n\nHTTP Mapping: 400 Bad Request\n - UNIMPLEMENTED: The operation is not implemented or is not supported/enabled in this\nservice.\n\nHTTP Mapping: 501 Not Implemented\n - INTERNAL: Internal errors.  This means that some invariants expected by the\nunderlying system have been broken.  This error code is reserved\nfor serious errors.\n\nHTTP Mapping: 500 Internal Server Error\n - UNAVAILABLE: The service is currently unavailable.  This is most likely a\ntransient condition, which can be corrected by retrying with\na backoff. Note that it is not always safe to retry\nnon-idempotent operations.\n\nSee the guidelines above for deciding between `FAILED_PRECONDITION`,\n`ABORTED`, and `UNAVAILABLE`.\n\nHTTP Mapping: 503 Service Unavailable\n - DATA_LOSS: Unrecoverable data loss or corruption.\n\nHTTP Mapping: 500 Internal Server Error code","enum":["OK","CANCELLED","UNKNOWN","INVALID_ARGUMENT","DEADLINE_EXCEEDED","NOT_FOUND","ALREADY_EXISTS","PERMISSION_DENIED","UNAUTHENTICATED","RESOURCE_EXHAUSTED","FAILED_PRECONDITION","ABORTED","OUT_OF_RANGE","UNIMPLEMENTED","INTERNAL","UNAVAILABLE","DATA_LOSS"]},"message":{"type":"string","description":"A developer-facing error message in English. message"}}}}},"example":{"name":"","displayName":"","createTime":"","updateTime":"","state":"","status":{}}}}}}},"/v1/accounts/{account_id}/externalKeys/{external_key_id}":{"get":{"tags":["External Keys"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"external_key_id","in":"path","description":"The External Key Id","required":true,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/externalKeys/{external_key_id}"},"summary":"Get External Key","description":"Get External Key","security":[{"bearerAuth":[]}]},"patch":{"tags":["External Keys"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"external_key_id","in":"path","description":"The External Key Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/externalKeys/{external_key_id}"},"summary":"Update External Key","description":"Update External Key","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"displayName":{"type":"string","description":"Display name for the external key. displayName"},"createTime":{"type":"string","description":"Creation timestamp. createTime"},"updateTime":{"type":"string","description":"Last update timestamp. updateTime"},"state":{"type":"string","description":"State of the external key. state","enum":["STATE_UNSPECIFIED","CREATING","READY","UPDATING","DELETING"]},"status":{"type":"object","description":"Mimics [https://github.com/googleapis/googleapis/blob/master/google/rpc/status.proto] status","properties":{"code":{"type":"string","description":"- OK: Not an error; returned on success.\n\nHTTP Mapping: 200 OK\n - CANCELLED: The operation was cancelled, typically by the caller.\n\nHTTP Mapping: 499 Client Closed Request\n - UNKNOWN: Unknown error.  For example, this error may be returned when\na `Status` value received from another address space belongs to\nan error space that is not known in this address space.  Also\nerrors raised by APIs that do not return enough error information\nmay be converted to this error.\n\nHTTP Mapping: 500 Internal Server Error\n - INVALID_ARGUMENT: The client specified an invalid argument.  Note that this differs\nfrom `FAILED_PRECONDITION`.  `INVALID_ARGUMENT` indicates arguments\nthat are problematic regardless of the state of the system\n(e.g., a malformed file name).\n\nHTTP Mapping: 400 Bad Request\n - DEADLINE_EXCEEDED: The deadline expired before the operation could complete. For operations\nthat change the state of the system, this error may be returned\neven if the operation has completed successfully.  For example, a\nsuccessful response from a server could have been delayed long\nenough for the deadline to expire.\n\nHTTP Mapping: 504 Gateway Timeout\n - NOT_FOUND: Some requested entity (e.g., file or directory) was not found.\n\nNote to server developers: if a request is denied for an entire class\nof users, such as gradual feature rollout or undocumented allowlist,\n`NOT_FOUND` may be used. If a request is denied for some users within\na class of users, such as user-based access control, `PERMISSION_DENIED`\nmust be used.\n\nHTTP Mapping: 404 Not Found\n - ALREADY_EXISTS: The entity that a client attempted to create (e.g., file or directory)\nalready exists.\n\nHTTP Mapping: 409 Conflict\n - PERMISSION_DENIED: The caller does not have permission to execute the specified\noperation. `PERMISSION_DENIED` must not be used for rejections\ncaused by exhausting some resource (use `RESOURCE_EXHAUSTED`\ninstead for those errors). `PERMISSION_DENIED` must not be\nused if the caller can not be identified (use `UNAUTHENTICATED`\ninstead for those errors). This error code does not imply the\nrequest is valid or the requested entity exists or satisfies\nother pre-conditions.\n\nHTTP Mapping: 403 Forbidden\n - UNAUTHENTICATED: The request does not have valid authentication credentials for the\noperation.\n\nHTTP Mapping: 401 Unauthorized\n - RESOURCE_EXHAUSTED: Some resource has been exhausted, perhaps a per-user quota, or\nperhaps the entire file system is out of space.\n\nHTTP Mapping: 429 Too Many Requests\n - FAILED_PRECONDITION: The operation was rejected because the system is not in a state\nrequired for the operation's execution.  For example, the directory\nto be deleted is non-empty, an rmdir operation is applied to\na non-directory, etc.\n\nService implementors can use the following guidelines to decide\nbetween `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`:\n (a) Use `UNAVAILABLE` if the client can retry just the failing call.\n (b) Use `ABORTED` if the client should retry at a higher level. For\n     example, when a client-specified test-and-set fails, indicating the\n     client should restart a read-modify-write sequence.\n (c) Use `FAILED_PRECONDITION` if the client should not retry until\n     the system state has been explicitly fixed. For example, if an \"rmdir\"\n     fails because the directory is non-empty, `FAILED_PRECONDITION`\n     should be returned since the client should not retry unless\n     the files are deleted from the directory.\n\nHTTP Mapping: 400 Bad Request\n - ABORTED: The operation was aborted, typically due to a concurrency issue such as\na sequencer check failure or transaction abort.\n\nSee the guidelines above for deciding between `FAILED_PRECONDITION`,\n`ABORTED`, and `UNAVAILABLE`.\n\nHTTP Mapping: 409 Conflict\n - OUT_OF_RANGE: The operation was attempted past the valid range.  E.g., seeking or\nreading past end-of-file.\n\nUnlike `INVALID_ARGUMENT`, this error indicates a problem that may\nbe fixed if the system state changes. For example, a 32-bit file\nsystem will generate `INVALID_ARGUMENT` if asked to read at an\noffset that is not in the range [0,2^32-1], but it will generate\n`OUT_OF_RANGE` if asked to read from an offset past the current\nfile size.\n\nThere is a fair bit of overlap between `FAILED_PRECONDITION` and\n`OUT_OF_RANGE`.  We recommend using `OUT_OF_RANGE` (the more specific\nerror) when it applies so that callers who are iterating through\na space can easily look for an `OUT_OF_RANGE` error to detect when\nthey are done.\n\nHTTP Mapping: 400 Bad Request\n - UNIMPLEMENTED: The operation is not implemented or is not supported/enabled in this\nservice.\n\nHTTP Mapping: 501 Not Implemented\n - INTERNAL: Internal errors.  This means that some invariants expected by the\nunderlying system have been broken.  This error code is reserved\nfor serious errors.\n\nHTTP Mapping: 500 Internal Server Error\n - UNAVAILABLE: The service is currently unavailable.  This is most likely a\ntransient condition, which can be corrected by retrying with\na backoff. Note that it is not always safe to retry\nnon-idempotent operations.\n\nSee the guidelines above for deciding between `FAILED_PRECONDITION`,\n`ABORTED`, and `UNAVAILABLE`.\n\nHTTP Mapping: 503 Service Unavailable\n - DATA_LOSS: Unrecoverable data loss or corruption.\n\nHTTP Mapping: 500 Internal Server Error code","enum":["OK","CANCELLED","UNKNOWN","INVALID_ARGUMENT","DEADLINE_EXCEEDED","NOT_FOUND","ALREADY_EXISTS","PERMISSION_DENIED","UNAUTHENTICATED","RESOURCE_EXHAUSTED","FAILED_PRECONDITION","ABORTED","OUT_OF_RANGE","UNIMPLEMENTED","INTERNAL","UNAVAILABLE","DATA_LOSS"]},"message":{"type":"string","description":"A developer-facing error message in English. message"}}}}},"example":{"displayName":"","createTime":"","updateTime":"","state":"","status":{}}}}}},"delete":{"tags":["External Keys"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"external_key_id","in":"path","description":"The External Key Id","required":true,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/externalKeys/{external_key_id}"},"summary":"Delete External Key","description":"Delete External Key","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/v1/accounts/{account_id}/identityProviders":{"get":{"tags":["Identity Providers"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"pageSize","in":"query","description":"Page size","required":false,"schema":{"type":"integer","example":""}},{"name":"pageToken","in":"query","description":"Page token","required":false,"schema":{"type":"string","example":""}},{"name":"filter","in":"query","description":"Filter expression","required":false,"schema":{"type":"string","example":""}},{"name":"orderBy","in":"query","description":"Order by","required":false,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/identityProviders"},"summary":"List Identity Providers","description":"List Identity Providers","security":[{"bearerAuth":[]}]},"post":{"tags":["Identity Providers"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/identityProviders"},"summary":"Create Identity Provider","description":"Create Identity Provider","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"The resource name of the identity provider.\nFormat: accounts/{account}/identityProviders/{identity_provider} name"},"displayName":{"type":"string","description":"Display name for the identity provider displayName"},"createTime":{"type":"string","description":"Creation timestamp createTime"},"updateTime":{"type":"string","description":"Last update timestamp updateTime"},"samlConfig":{"type":"object","description":"SAML Configuration\nExactly one of metadata_url or metadata_xml must be provided. samlConfig","properties":{"metadataUrl":{"type":"string","description":"SAML metadata URL (must be publicly accessible) metadataUrl"},"metadataXml":{"type":"string","description":"SAML metadata XML content (use when metadata URL is not publicly accessible) metadataXml"},"samlEmailAttribute":{"type":"string","description":"The SAML attribute name that contains the user's email address.\nDifferent identity providers use different attribute names for email:\n  - Azure AD / ADFS / Okta: \"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress\" (default)\n  - Rippling / some SAML IdPs: \"email\"\n  - X.500 / LDAP-based IdPs: \"urn:oid:1.2.840.113549.1.9.1\"\nIf not set, defaults to \"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress\". samlEmailAttribute"}}},"oidcConfig":{"type":"object","description":"OIDC Configuration oidcConfig","properties":{"issuerUrl":{"type":"string","description":"OIDC issuer URL issuerUrl"},"clientId":{"type":"string","description":"Client ID clientId"},"clientSecret":{"type":"string","description":"Client secret clientSecret"}}},"tenantDomains":{"type":"array","description":"List of allowed domains for this identity provider\nExample: [\"example.com\", \"example.co.uk\", \"example.de\"]\nIf not provided, domain will be derived from the account email tenantDomains","items":{"type":"string"}},"state":{"type":"string","description":"State of the identity provider state","enum":["STATE_UNSPECIFIED","CREATING","READY","UPDATING","DELETING"]},"status":{"type":"object","description":"Mimics [https://github.com/googleapis/googleapis/blob/master/google/rpc/status.proto] status","properties":{"code":{"type":"string","description":"- OK: Not an error; returned on success.\n\nHTTP Mapping: 200 OK\n - CANCELLED: The operation was cancelled, typically by the caller.\n\nHTTP Mapping: 499 Client Closed Request\n - UNKNOWN: Unknown error.  For example, this error may be returned when\na `Status` value received from another address space belongs to\nan error space that is not known in this address space.  Also\nerrors raised by APIs that do not return enough error information\nmay be converted to this error.\n\nHTTP Mapping: 500 Internal Server Error\n - INVALID_ARGUMENT: The client specified an invalid argument.  Note that this differs\nfrom `FAILED_PRECONDITION`.  `INVALID_ARGUMENT` indicates arguments\nthat are problematic regardless of the state of the system\n(e.g., a malformed file name).\n\nHTTP Mapping: 400 Bad Request\n - DEADLINE_EXCEEDED: The deadline expired before the operation could complete. For operations\nthat change the state of the system, this error may be returned\neven if the operation has completed successfully.  For example, a\nsuccessful response from a server could have been delayed long\nenough for the deadline to expire.\n\nHTTP Mapping: 504 Gateway Timeout\n - NOT_FOUND: Some requested entity (e.g., file or directory) was not found.\n\nNote to server developers: if a request is denied for an entire class\nof users, such as gradual feature rollout or undocumented allowlist,\n`NOT_FOUND` may be used. If a request is denied for some users within\na class of users, such as user-based access control, `PERMISSION_DENIED`\nmust be used.\n\nHTTP Mapping: 404 Not Found\n - ALREADY_EXISTS: The entity that a client attempted to create (e.g., file or directory)\nalready exists.\n\nHTTP Mapping: 409 Conflict\n - PERMISSION_DENIED: The caller does not have permission to execute the specified\noperation. `PERMISSION_DENIED` must not be used for rejections\ncaused by exhausting some resource (use `RESOURCE_EXHAUSTED`\ninstead for those errors). `PERMISSION_DENIED` must not be\nused if the caller can not be identified (use `UNAUTHENTICATED`\ninstead for those errors). This error code does not imply the\nrequest is valid or the requested entity exists or satisfies\nother pre-conditions.\n\nHTTP Mapping: 403 Forbidden\n - UNAUTHENTICATED: The request does not have valid authentication credentials for the\noperation.\n\nHTTP Mapping: 401 Unauthorized\n - RESOURCE_EXHAUSTED: Some resource has been exhausted, perhaps a per-user quota, or\nperhaps the entire file system is out of space.\n\nHTTP Mapping: 429 Too Many Requests\n - FAILED_PRECONDITION: The operation was rejected because the system is not in a state\nrequired for the operation's execution.  For example, the directory\nto be deleted is non-empty, an rmdir operation is applied to\na non-directory, etc.\n\nService implementors can use the following guidelines to decide\nbetween `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`:\n (a) Use `UNAVAILABLE` if the client can retry just the failing call.\n (b) Use `ABORTED` if the client should retry at a higher level. For\n     example, when a client-specified test-and-set fails, indicating the\n     client should restart a read-modify-write sequence.\n (c) Use `FAILED_PRECONDITION` if the client should not retry until\n     the system state has been explicitly fixed. For example, if an \"rmdir\"\n     fails because the directory is non-empty, `FAILED_PRECONDITION`\n     should be returned since the client should not retry unless\n     the files are deleted from the directory.\n\nHTTP Mapping: 400 Bad Request\n - ABORTED: The operation was aborted, typically due to a concurrency issue such as\na sequencer check failure or transaction abort.\n\nSee the guidelines above for deciding between `FAILED_PRECONDITION`,\n`ABORTED`, and `UNAVAILABLE`.\n\nHTTP Mapping: 409 Conflict\n - OUT_OF_RANGE: The operation was attempted past the valid range.  E.g., seeking or\nreading past end-of-file.\n\nUnlike `INVALID_ARGUMENT`, this error indicates a problem that may\nbe fixed if the system state changes. For example, a 32-bit file\nsystem will generate `INVALID_ARGUMENT` if asked to read at an\noffset that is not in the range [0,2^32-1], but it will generate\n`OUT_OF_RANGE` if asked to read from an offset past the current\nfile size.\n\nThere is a fair bit of overlap between `FAILED_PRECONDITION` and\n`OUT_OF_RANGE`.  We recommend using `OUT_OF_RANGE` (the more specific\nerror) when it applies so that callers who are iterating through\na space can easily look for an `OUT_OF_RANGE` error to detect when\nthey are done.\n\nHTTP Mapping: 400 Bad Request\n - UNIMPLEMENTED: The operation is not implemented or is not supported/enabled in this\nservice.\n\nHTTP Mapping: 501 Not Implemented\n - INTERNAL: Internal errors.  This means that some invariants expected by the\nunderlying system have been broken.  This error code is reserved\nfor serious errors.\n\nHTTP Mapping: 500 Internal Server Error\n - UNAVAILABLE: The service is currently unavailable.  This is most likely a\ntransient condition, which can be corrected by retrying with\na backoff. Note that it is not always safe to retry\nnon-idempotent operations.\n\nSee the guidelines above for deciding between `FAILED_PRECONDITION`,\n`ABORTED`, and `UNAVAILABLE`.\n\nHTTP Mapping: 503 Service Unavailable\n - DATA_LOSS: Unrecoverable data loss or corruption.\n\nHTTP Mapping: 500 Internal Server Error code","enum":["OK","CANCELLED","UNKNOWN","INVALID_ARGUMENT","DEADLINE_EXCEEDED","NOT_FOUND","ALREADY_EXISTS","PERMISSION_DENIED","UNAUTHENTICATED","RESOURCE_EXHAUSTED","FAILED_PRECONDITION","ABORTED","OUT_OF_RANGE","UNIMPLEMENTED","INTERNAL","UNAVAILABLE","DATA_LOSS"]},"message":{"type":"string","description":"A developer-facing error message in English. message"}}},"domainUrl":{"type":"string","description":"The domain URL. domainUrl"},"issuerUrl":{"type":"string","description":"The OIDC issuer URL. issuerUrl"},"clientId":{"type":"string","description":"The OIDC client ID. clientId"},"enableJitUserProvisioning":{"type":"boolean","description":"Enable Just-In-Time (JIT) user provisioning.\nWhen enabled, users are automatically created in the account on first SSO login\nif they don't already exist. When disabled, users must be pre-provisioned\nbefore they can authenticate via SSO. enableJitUserProvisioning"},"jitDefaultRole":{"type":"string","description":"Default role assigned to JIT-provisioned users.\nValid values: \"admin\", \"user\", \"contributor\", \"inference-user\".\nOnly applies when enable_jit_user_provisioning is true and RBAC V2 is enabled.\nIf empty or unset, defaults to \"inference-user\" (least privilege).\nIf RBAC V2 is not enabled for the account, JIT users always get \"user\" role. jitDefaultRole"},"enforceSso":{"type":"boolean","description":"Enforce SSO authentication and restrict account access to users with approved email domains.\nWhen enabled:\n- Users with email domains matching tenant_domains must authenticate via this identity provider\n- Users with other email domains are blocked (tenant_domains becomes an allowlist)\n- Superusers and API keys are exempt from this enforcement enforceSso"},"enableIdpInitiatedSso":{"type":"boolean","description":"Enable IdP-initiated SAML (Security Assertion Markup Language) single sign-on.\nWhen enabled, users can start the login flow from their identity provider's\nportal (e.g., Okta app launcher) instead of from the Fireworks login page.\nOnly supported for SAML identity providers. enableIdpInitiatedSso"}}},"example":{"name":"","displayName":"","createTime":"","updateTime":"","samlConfig":{},"oidcConfig":{},"tenantDomains":[],"state":"","status":{},"domainUrl":"","issuerUrl":"","clientId":"","enableJitUserProvisioning":"","jitDefaultRole":"","enforceSso":"","enableIdpInitiatedSso":""}}}}}},"/v1/accounts/{account_id}/identityProviders/{identity_provider_id}":{"get":{"tags":["Identity Providers"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"identity_provider_id","in":"path","description":"The Identity Provider Id","required":true,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/identityProviders/{identity_provider_id}"},"summary":"Get Identity Provider","description":"Get Identity Provider","security":[{"bearerAuth":[]}]},"patch":{"tags":["Identity Providers"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"identity_provider_id","in":"path","description":"The Identity Provider Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/identityProviders/{identity_provider_id}"},"summary":"Update Identity Provider","description":"Update Identity Provider","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"displayName":{"type":"string","description":"Display name for the identity provider displayName"},"createTime":{"type":"string","description":"Creation timestamp createTime"},"updateTime":{"type":"string","description":"Last update timestamp updateTime"},"samlConfig":{"type":"object","description":"SAML Configuration\nExactly one of metadata_url or metadata_xml must be provided. samlConfig","properties":{"metadataUrl":{"type":"string","description":"SAML metadata URL (must be publicly accessible) metadataUrl"},"metadataXml":{"type":"string","description":"SAML metadata XML content (use when metadata URL is not publicly accessible) metadataXml"},"samlEmailAttribute":{"type":"string","description":"The SAML attribute name that contains the user's email address.\nDifferent identity providers use different attribute names for email:\n  - Azure AD / ADFS / Okta: \"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress\" (default)\n  - Rippling / some SAML IdPs: \"email\"\n  - X.500 / LDAP-based IdPs: \"urn:oid:1.2.840.113549.1.9.1\"\nIf not set, defaults to \"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress\". samlEmailAttribute"}}},"oidcConfig":{"type":"object","description":"OIDC Configuration oidcConfig","properties":{"issuerUrl":{"type":"string","description":"OIDC issuer URL issuerUrl"},"clientId":{"type":"string","description":"Client ID clientId"},"clientSecret":{"type":"string","description":"Client secret clientSecret"}}},"tenantDomains":{"type":"array","description":"List of allowed domains for this identity provider\nExample: [\"example.com\", \"example.co.uk\", \"example.de\"]\nIf not provided, domain will be derived from the account email tenantDomains","items":{"type":"string"}},"state":{"type":"string","description":"State of the identity provider state","enum":["STATE_UNSPECIFIED","CREATING","READY","UPDATING","DELETING"]},"status":{"type":"object","description":"Mimics [https://github.com/googleapis/googleapis/blob/master/google/rpc/status.proto] status","properties":{"code":{"type":"string","description":"- OK: Not an error; returned on success.\n\nHTTP Mapping: 200 OK\n - CANCELLED: The operation was cancelled, typically by the caller.\n\nHTTP Mapping: 499 Client Closed Request\n - UNKNOWN: Unknown error.  For example, this error may be returned when\na `Status` value received from another address space belongs to\nan error space that is not known in this address space.  Also\nerrors raised by APIs that do not return enough error information\nmay be converted to this error.\n\nHTTP Mapping: 500 Internal Server Error\n - INVALID_ARGUMENT: The client specified an invalid argument.  Note that this differs\nfrom `FAILED_PRECONDITION`.  `INVALID_ARGUMENT` indicates arguments\nthat are problematic regardless of the state of the system\n(e.g., a malformed file name).\n\nHTTP Mapping: 400 Bad Request\n - DEADLINE_EXCEEDED: The deadline expired before the operation could complete. For operations\nthat change the state of the system, this error may be returned\neven if the operation has completed successfully.  For example, a\nsuccessful response from a server could have been delayed long\nenough for the deadline to expire.\n\nHTTP Mapping: 504 Gateway Timeout\n - NOT_FOUND: Some requested entity (e.g., file or directory) was not found.\n\nNote to server developers: if a request is denied for an entire class\nof users, such as gradual feature rollout or undocumented allowlist,\n`NOT_FOUND` may be used. If a request is denied for some users within\na class of users, such as user-based access control, `PERMISSION_DENIED`\nmust be used.\n\nHTTP Mapping: 404 Not Found\n - ALREADY_EXISTS: The entity that a client attempted to create (e.g., file or directory)\nalready exists.\n\nHTTP Mapping: 409 Conflict\n - PERMISSION_DENIED: The caller does not have permission to execute the specified\noperation. `PERMISSION_DENIED` must not be used for rejections\ncaused by exhausting some resource (use `RESOURCE_EXHAUSTED`\ninstead for those errors). `PERMISSION_DENIED` must not be\nused if the caller can not be identified (use `UNAUTHENTICATED`\ninstead for those errors). This error code does not imply the\nrequest is valid or the requested entity exists or satisfies\nother pre-conditions.\n\nHTTP Mapping: 403 Forbidden\n - UNAUTHENTICATED: The request does not have valid authentication credentials for the\noperation.\n\nHTTP Mapping: 401 Unauthorized\n - RESOURCE_EXHAUSTED: Some resource has been exhausted, perhaps a per-user quota, or\nperhaps the entire file system is out of space.\n\nHTTP Mapping: 429 Too Many Requests\n - FAILED_PRECONDITION: The operation was rejected because the system is not in a state\nrequired for the operation's execution.  For example, the directory\nto be deleted is non-empty, an rmdir operation is applied to\na non-directory, etc.\n\nService implementors can use the following guidelines to decide\nbetween `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`:\n (a) Use `UNAVAILABLE` if the client can retry just the failing call.\n (b) Use `ABORTED` if the client should retry at a higher level. For\n     example, when a client-specified test-and-set fails, indicating the\n     client should restart a read-modify-write sequence.\n (c) Use `FAILED_PRECONDITION` if the client should not retry until\n     the system state has been explicitly fixed. For example, if an \"rmdir\"\n     fails because the directory is non-empty, `FAILED_PRECONDITION`\n     should be returned since the client should not retry unless\n     the files are deleted from the directory.\n\nHTTP Mapping: 400 Bad Request\n - ABORTED: The operation was aborted, typically due to a concurrency issue such as\na sequencer check failure or transaction abort.\n\nSee the guidelines above for deciding between `FAILED_PRECONDITION`,\n`ABORTED`, and `UNAVAILABLE`.\n\nHTTP Mapping: 409 Conflict\n - OUT_OF_RANGE: The operation was attempted past the valid range.  E.g., seeking or\nreading past end-of-file.\n\nUnlike `INVALID_ARGUMENT`, this error indicates a problem that may\nbe fixed if the system state changes. For example, a 32-bit file\nsystem will generate `INVALID_ARGUMENT` if asked to read at an\noffset that is not in the range [0,2^32-1], but it will generate\n`OUT_OF_RANGE` if asked to read from an offset past the current\nfile size.\n\nThere is a fair bit of overlap between `FAILED_PRECONDITION` and\n`OUT_OF_RANGE`.  We recommend using `OUT_OF_RANGE` (the more specific\nerror) when it applies so that callers who are iterating through\na space can easily look for an `OUT_OF_RANGE` error to detect when\nthey are done.\n\nHTTP Mapping: 400 Bad Request\n - UNIMPLEMENTED: The operation is not implemented or is not supported/enabled in this\nservice.\n\nHTTP Mapping: 501 Not Implemented\n - INTERNAL: Internal errors.  This means that some invariants expected by the\nunderlying system have been broken.  This error code is reserved\nfor serious errors.\n\nHTTP Mapping: 500 Internal Server Error\n - UNAVAILABLE: The service is currently unavailable.  This is most likely a\ntransient condition, which can be corrected by retrying with\na backoff. Note that it is not always safe to retry\nnon-idempotent operations.\n\nSee the guidelines above for deciding between `FAILED_PRECONDITION`,\n`ABORTED`, and `UNAVAILABLE`.\n\nHTTP Mapping: 503 Service Unavailable\n - DATA_LOSS: Unrecoverable data loss or corruption.\n\nHTTP Mapping: 500 Internal Server Error code","enum":["OK","CANCELLED","UNKNOWN","INVALID_ARGUMENT","DEADLINE_EXCEEDED","NOT_FOUND","ALREADY_EXISTS","PERMISSION_DENIED","UNAUTHENTICATED","RESOURCE_EXHAUSTED","FAILED_PRECONDITION","ABORTED","OUT_OF_RANGE","UNIMPLEMENTED","INTERNAL","UNAVAILABLE","DATA_LOSS"]},"message":{"type":"string","description":"A developer-facing error message in English. message"}}},"domainUrl":{"type":"string","description":"The domain URL. domainUrl"},"issuerUrl":{"type":"string","description":"The OIDC issuer URL. issuerUrl"},"clientId":{"type":"string","description":"The OIDC client ID. clientId"},"enableJitUserProvisioning":{"type":"boolean","description":"Enable Just-In-Time (JIT) user provisioning.\nWhen enabled, users are automatically created in the account on first SSO login\nif they don't already exist. When disabled, users must be pre-provisioned\nbefore they can authenticate via SSO. enableJitUserProvisioning"},"jitDefaultRole":{"type":"string","description":"Default role assigned to JIT-provisioned users.\nValid values: \"admin\", \"user\", \"contributor\", \"inference-user\".\nOnly applies when enable_jit_user_provisioning is true and RBAC V2 is enabled.\nIf empty or unset, defaults to \"inference-user\" (least privilege).\nIf RBAC V2 is not enabled for the account, JIT users always get \"user\" role. jitDefaultRole"},"enforceSso":{"type":"boolean","description":"Enforce SSO authentication and restrict account access to users with approved email domains.\nWhen enabled:\n- Users with email domains matching tenant_domains must authenticate via this identity provider\n- Users with other email domains are blocked (tenant_domains becomes an allowlist)\n- Superusers and API keys are exempt from this enforcement enforceSso"},"enableIdpInitiatedSso":{"type":"boolean","description":"Enable IdP-initiated SAML (Security Assertion Markup Language) single sign-on.\nWhen enabled, users can start the login flow from their identity provider's\nportal (e.g., Okta app launcher) instead of from the Fireworks login page.\nOnly supported for SAML identity providers. enableIdpInitiatedSso"}}},"example":{"displayName":"","createTime":"","updateTime":"","samlConfig":{},"oidcConfig":{},"tenantDomains":[],"state":"","status":{},"domainUrl":"","issuerUrl":"","clientId":"","enableJitUserProvisioning":"","jitDefaultRole":"","enforceSso":"","enableIdpInitiatedSso":""}}}}},"delete":{"tags":["Identity Providers"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"identity_provider_id","in":"path","description":"The Identity Provider Id","required":true,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/identityProviders/{identity_provider_id}"},"summary":"Delete Identity Provider","description":"Delete Identity Provider","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/v1/accounts/{account_id}/models":{"get":{"tags":["Models"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"pageSize","in":"query","description":"The maximum number of models to return. The maximum page_size is 200,\nvalues above 200 will be coerced to 200.\nIf unspecified, the default is 50.","required":false,"schema":{"type":"integer","example":""}},{"name":"pageToken","in":"query","description":"A page token, received from a previous ListModels call. Provide this\nto retrieve the subsequent page. When paginating, all other parameters\nprovided to ListModels must match the call that provided the page\ntoken.","required":false,"schema":{"type":"string","example":""}},{"name":"filter","in":"query","description":"Only model satisfying the provided filter (if specified) will be\nreturned. See https://google.aip.dev/160 for the filter grammar.","required":false,"schema":{"type":"string","example":""}},{"name":"orderBy","in":"query","description":"A comma-separated list of fields to order by. e.g. \"foo,bar\"\nThe default sort order is ascending. To specify a descending order for a\nfield, append a \" desc\" suffix. e.g. \"foo desc,bar\"\nSubfields are specified with a \".\" character. e.g. \"foo.bar\"\nIf not specified, the default order is by \"name\".","required":false,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/models"},"summary":"List Models","description":"List Models","security":[{"bearerAuth":[]}]},"post":{"tags":["Models"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/models"},"summary":"Create Model","description":"Create Model","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"model":{"type":"object","description":"model","properties":{"name":{"type":"string","description":"The resource name of the model. e.g. accounts/my-account/models/my-model name"},"displayName":{"type":"string","description":"Human-readable display name of the model. e.g. \"My Model\"\nMust be fewer than 64 characters long. displayName"},"description":{"type":"string","description":"The description of the model. Must be fewer than 1000 characters long. description"},"createTime":{"type":"string","description":"The creation time of the model. createTime"},"state":{"type":"string","description":"- UPLOADING: The model is still being uploaded (upload is asynchronous).\n - READY: The model is ready to be used. state","enum":["STATE_UNSPECIFIED","UPLOADING","READY"]},"status":{"type":"object","description":"Mimics [https://github.com/googleapis/googleapis/blob/master/google/rpc/status.proto] status"},"kind":{"type":"string","description":"- HF_BASE_MODEL: An LLM base model.\n - HF_PEFT_ADDON: A parameter-efficent fine-tuned addon.\n - HF_TEFT_ADDON: A token-eficient fine-tuned addon.\n - FLUMINA_BASE_MODEL: A Flumina base model.\n - FLUMINA_ADDON: A Flumina addon.\n - DRAFT_ADDON: A draft model used for speculative decoding in a deployment.\n - LIVE_MERGE: A live-merge model.\n - CUSTOM_MODEL: A customized model\n - EMBEDDING_MODEL: An Embedding model.\n - SNAPSHOT_MODEL: A snapshot model. kind","enum":["KIND_UNSPECIFIED","HF_BASE_MODEL","HF_PEFT_ADDON","HF_TEFT_ADDON","FLUMINA_BASE_MODEL","FLUMINA_ADDON","DRAFT_ADDON","LIVE_MERGE","CUSTOM_MODEL","EMBEDDING_MODEL","SNAPSHOT_MODEL"]},"githubUrl":{"type":"string","description":"The URL to GitHub repository of the model. githubUrl"},"huggingFaceUrl":{"type":"string","description":"The URL to the Hugging Face model. huggingFaceUrl"},"baseModelDetails":{"type":"object","description":"baseModelDetails"}}},"modelId":{"type":"string","description":"ID of the model. modelId","required":true},"cluster":{"type":"string","description":"The resource name of the BYOC cluster to which this model belongs.\ne.g. accounts/my-account/clusters/my-cluster. Empty if it belongs to\na Fireworks cluster. cluster"}}},"example":{"model":{},"modelId":"","cluster":""}}}}}},"/v1/accounts/{account_id}/models/{model_id}":{"get":{"tags":["Models"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"model_id","in":"path","description":"The Model Id","required":true,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/models/{model_id}"},"summary":"Get Model","description":"Get Model","security":[{"bearerAuth":[]}]},"patch":{"tags":["Models"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"model_id","in":"path","description":"The Model Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/models/{model_id}"},"summary":"Update Model","description":"Update Model","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"displayName":{"type":"string","description":"Human-readable display name of the model. e.g. \"My Model\"\nMust be fewer than 64 characters long. displayName"},"description":{"type":"string","description":"The description of the model. Must be fewer than 1000 characters long. description"},"createTime":{"type":"string","description":"The creation time of the model. createTime"},"state":{"type":"string","description":"- UPLOADING: The model is still being uploaded (upload is asynchronous).\n - READY: The model is ready to be used. state","enum":["STATE_UNSPECIFIED","UPLOADING","READY"]},"status":{"type":"object","description":"Mimics [https://github.com/googleapis/googleapis/blob/master/google/rpc/status.proto] status","properties":{"code":{"type":"string","description":"- OK: Not an error; returned on success.\n\nHTTP Mapping: 200 OK\n - CANCELLED: The operation was cancelled, typically by the caller.\n\nHTTP Mapping: 499 Client Closed Request\n - UNKNOWN: Unknown error.  For example, this error may be returned when\na `Status` value received from another address space belongs to\nan error space that is not known in this address space.  Also\nerrors raised by APIs that do not return enough error information\nmay be converted to this error.\n\nHTTP Mapping: 500 Internal Server Error\n - INVALID_ARGUMENT: The client specified an invalid argument.  Note that this differs\nfrom `FAILED_PRECONDITION`.  `INVALID_ARGUMENT` indicates arguments\nthat are problematic regardless of the state of the system\n(e.g., a malformed file name).\n\nHTTP Mapping: 400 Bad Request\n - DEADLINE_EXCEEDED: The deadline expired before the operation could complete. For operations\nthat change the state of the system, this error may be returned\neven if the operation has completed successfully.  For example, a\nsuccessful response from a server could have been delayed long\nenough for the deadline to expire.\n\nHTTP Mapping: 504 Gateway Timeout\n - NOT_FOUND: Some requested entity (e.g., file or directory) was not found.\n\nNote to server developers: if a request is denied for an entire class\nof users, such as gradual feature rollout or undocumented allowlist,\n`NOT_FOUND` may be used. If a request is denied for some users within\na class of users, such as user-based access control, `PERMISSION_DENIED`\nmust be used.\n\nHTTP Mapping: 404 Not Found\n - ALREADY_EXISTS: The entity that a client attempted to create (e.g., file or directory)\nalready exists.\n\nHTTP Mapping: 409 Conflict\n - PERMISSION_DENIED: The caller does not have permission to execute the specified\noperation. `PERMISSION_DENIED` must not be used for rejections\ncaused by exhausting some resource (use `RESOURCE_EXHAUSTED`\ninstead for those errors). `PERMISSION_DENIED` must not be\nused if the caller can not be identified (use `UNAUTHENTICATED`\ninstead for those errors). This error code does not imply the\nrequest is valid or the requested entity exists or satisfies\nother pre-conditions.\n\nHTTP Mapping: 403 Forbidden\n - UNAUTHENTICATED: The request does not have valid authentication credentials for the\noperation.\n\nHTTP Mapping: 401 Unauthorized\n - RESOURCE_EXHAUSTED: Some resource has been exhausted, perhaps a per-user quota, or\nperhaps the entire file system is out of space.\n\nHTTP Mapping: 429 Too Many Requests\n - FAILED_PRECONDITION: The operation was rejected because the system is not in a state\nrequired for the operation's execution.  For example, the directory\nto be deleted is non-empty, an rmdir operation is applied to\na non-directory, etc.\n\nService implementors can use the following guidelines to decide\nbetween `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`:\n (a) Use `UNAVAILABLE` if the client can retry just the failing call.\n (b) Use `ABORTED` if the client should retry at a higher level. For\n     example, when a client-specified test-and-set fails, indicating the\n     client should restart a read-modify-write sequence.\n (c) Use `FAILED_PRECONDITION` if the client should not retry until\n     the system state has been explicitly fixed. For example, if an \"rmdir\"\n     fails because the directory is non-empty, `FAILED_PRECONDITION`\n     should be returned since the client should not retry unless\n     the files are deleted from the directory.\n\nHTTP Mapping: 400 Bad Request\n - ABORTED: The operation was aborted, typically due to a concurrency issue such as\na sequencer check failure or transaction abort.\n\nSee the guidelines above for deciding between `FAILED_PRECONDITION`,\n`ABORTED`, and `UNAVAILABLE`.\n\nHTTP Mapping: 409 Conflict\n - OUT_OF_RANGE: The operation was attempted past the valid range.  E.g., seeking or\nreading past end-of-file.\n\nUnlike `INVALID_ARGUMENT`, this error indicates a problem that may\nbe fixed if the system state changes. For example, a 32-bit file\nsystem will generate `INVALID_ARGUMENT` if asked to read at an\noffset that is not in the range [0,2^32-1], but it will generate\n`OUT_OF_RANGE` if asked to read from an offset past the current\nfile size.\n\nThere is a fair bit of overlap between `FAILED_PRECONDITION` and\n`OUT_OF_RANGE`.  We recommend using `OUT_OF_RANGE` (the more specific\nerror) when it applies so that callers who are iterating through\na space can easily look for an `OUT_OF_RANGE` error to detect when\nthey are done.\n\nHTTP Mapping: 400 Bad Request\n - UNIMPLEMENTED: The operation is not implemented or is not supported/enabled in this\nservice.\n\nHTTP Mapping: 501 Not Implemented\n - INTERNAL: Internal errors.  This means that some invariants expected by the\nunderlying system have been broken.  This error code is reserved\nfor serious errors.\n\nHTTP Mapping: 500 Internal Server Error\n - UNAVAILABLE: The service is currently unavailable.  This is most likely a\ntransient condition, which can be corrected by retrying with\na backoff. Note that it is not always safe to retry\nnon-idempotent operations.\n\nSee the guidelines above for deciding between `FAILED_PRECONDITION`,\n`ABORTED`, and `UNAVAILABLE`.\n\nHTTP Mapping: 503 Service Unavailable\n - DATA_LOSS: Unrecoverable data loss or corruption.\n\nHTTP Mapping: 500 Internal Server Error code","enum":["OK","CANCELLED","UNKNOWN","INVALID_ARGUMENT","DEADLINE_EXCEEDED","NOT_FOUND","ALREADY_EXISTS","PERMISSION_DENIED","UNAUTHENTICATED","RESOURCE_EXHAUSTED","FAILED_PRECONDITION","ABORTED","OUT_OF_RANGE","UNIMPLEMENTED","INTERNAL","UNAVAILABLE","DATA_LOSS"]},"message":{"type":"string","description":"A developer-facing error message in English. message"}}},"kind":{"type":"string","description":"- HF_BASE_MODEL: An LLM base model.\n - HF_PEFT_ADDON: A parameter-efficent fine-tuned addon.\n - HF_TEFT_ADDON: A token-eficient fine-tuned addon.\n - FLUMINA_BASE_MODEL: A Flumina base model.\n - FLUMINA_ADDON: A Flumina addon.\n - DRAFT_ADDON: A draft model used for speculative decoding in a deployment.\n - LIVE_MERGE: A live-merge model.\n - CUSTOM_MODEL: A customized model\n - EMBEDDING_MODEL: An Embedding model.\n - SNAPSHOT_MODEL: A snapshot model. kind","enum":["KIND_UNSPECIFIED","HF_BASE_MODEL","HF_PEFT_ADDON","HF_TEFT_ADDON","FLUMINA_BASE_MODEL","FLUMINA_ADDON","DRAFT_ADDON","LIVE_MERGE","CUSTOM_MODEL","EMBEDDING_MODEL","SNAPSHOT_MODEL"]},"githubUrl":{"type":"string","description":"The URL to GitHub repository of the model. githubUrl"},"huggingFaceUrl":{"type":"string","description":"The URL to the Hugging Face model. huggingFaceUrl"},"baseModelDetails":{"type":"object","description":"baseModelDetails","properties":{"worldSize":{"type":"integer","description":"The default number of GPUs the model is served with.\nIf not specified, the default is 1. worldSize"},"checkpointFormat":{"type":"string","description":"checkpointFormat","enum":["CHECKPOINT_FORMAT_UNSPECIFIED","NATIVE","HUGGINGFACE","UNINITIALIZED"]},"huggingfaceFiles":{"type":"array","description":"A list of Hugging Face files associated with this model. Specified if and only if\nthe checkpoint_format is HUGGINGFACE. huggingfaceFiles"},"parameterCount":{"type":"string","description":"The number of model parameters. For serverless models, this determines the\nprice per token. parameterCount"},"moe":{"type":"boolean","description":"If true, this is a Mixture of Experts (MoE) model. For serverless models,\nthis affects the price per token. moe"},"tunable":{"type":"boolean","description":"Deprecated: V1 training stack only. Use per-category tunable flags on Model instead. tunable"},"modelType":{"type":"string","description":"The type of the model. modelType"},"supportsFireattention":{"type":"boolean","description":"Whether this model supports fireattention. supportsFireattention"},"defaultPrecision":{"type":"string","description":"- PRECISION_UNSPECIFIED: if left unspecified we will treat this as a legacy model created before\nself serve defaultPrecision","enum":["PRECISION_UNSPECIFIED","FP16","FP8","FP8_MM","FP8_AR","FP8_MM_KV_ATTN","FP8_KV","FP8_MM_V2","FP8_V2","FP8_MM_KV_ATTN_V2","NF4","FP4","BF16","FP4_BLOCKSCALED_MM","FP4_MX_MOE"]},"supportsMtp":{"type":"boolean","description":"If true, this model supports MTP. supportsMtp"}}},"peftDetails":{"type":"object","description":"PEFT addon details. peftDetails","properties":{"baseModel":{"type":"string","description":"The base model name. e.g. accounts/fireworks/models/falcon-7b baseModel"},"r":{"type":"integer","description":"The rank of the update matrices.\nMust be between 4 and 64, inclusive. r"},"targetModules":{"type":"array","description":"This is the target modules for an adapter that we extract from\nfor more information what target module means, check out\nhttps://huggingface.co/docs/peft/conceptual_guides/lora#common-lora-parameters-in-peft targetModules"},"baseModelType":{"type":"string","description":"The type of the model. baseModelType"},"mergeAddonModelName":{"type":"string","description":"The resource name of the model to merge with base model, e.g accounts/fireworks/models/falcon-7b-lora mergeAddonModelName"}}},"teftDetails":{"type":"object","description":"teftDetails"},"public":{"type":"boolean","description":"If true, the model will be publicly readable. public"},"conversationConfig":{"type":"object","description":"conversationConfig","properties":{"style":{"type":"string","description":"The chat template to use. style"},"system":{"type":"string","description":"The system prompt (if the chat style supports it). system"},"template":{"type":"string","description":"The Jinja template (if style is \"jinja\"). template"}}},"contextLength":{"type":"integer","description":"The maximum context length supported by the model. contextLength"},"supportsImageInput":{"type":"boolean","description":"If set, images can be provided as input to the model. supportsImageInput"},"supportsTools":{"type":"boolean","description":"If set, tools (i.e. functions) can be provided as input to the model,\nand the model may respond with one or more tool calls. supportsTools"},"importedFrom":{"type":"string","description":"The name of the the model from which this was imported. This field is empty\nif the model was not imported. importedFrom"},"fineTuningJob":{"type":"string","description":"If the model was created from a fine-tuning job, this is the fine-tuning\njob name. fineTuningJob"},"defaultDraftModel":{"type":"string","description":"The default draft model to use when creating a deployment. If empty,\nspeculative decoding is disabled by default. defaultDraftModel"},"defaultDraftTokenCount":{"type":"integer","description":"The default draft token count to use when creating a deployment.\nMust be specified if default_draft_model is specified. defaultDraftTokenCount"},"deployedModelRefs":{"type":"array","description":"Populated from GetModel API call only. deployedModelRefs","items":{"type":"object","properties":{"name":{"type":"string","description":"The resource name. e.g. accounts/my-account/deployedModels/my-deployed-model name"},"deployment":{"type":"string","description":"The resource name of the base deployment the model is deployed to. deployment"},"state":{"type":"string","description":"- UNDEPLOYING: The model is being undeployed.\n - DEPLOYING: The model is being deployed.\n - DEPLOYED: The model is deployed and ready for inference.\n - UPDATING: there are updates happening with the deployed model state","enum":["STATE_UNSPECIFIED","UNDEPLOYING","DEPLOYING","DEPLOYED","UPDATING"]},"default":{"type":"boolean","description":"If true, this is the default target when querying this model without\nthe `#<deployment>` suffix.\nThe first deployment a model is deployed to will have this field set to\ntrue automatically. default"},"public":{"type":"boolean","description":"If true, the deployed model will be publicly reachable. public"}}}},"cluster":{"type":"string","description":"The resource name of the BYOC cluster to which this model belongs.\ne.g. accounts/my-account/clusters/my-cluster. Empty if it belongs to\na Fireworks cluster. cluster"},"deprecationDate":{"type":"object","description":"* A full date, with non-zero year, month, and day values\n* A month and day value, with a zero year, such as an anniversary\n* A year on its own, with zero month and day values\n* A year and month value, with a zero day, such as a credit card expiration\ndate\n\nRelated types are [google.type.TimeOfDay][google.type.TimeOfDay] and\n`google.protobuf.Timestamp`. deprecationDate","properties":{"year":{"type":"integer","description":"Year of the date. Must be from 1 to 9999, or 0 to specify a date without\na year. year"},"month":{"type":"integer","description":"Month of a year. Must be from 1 to 12, or 0 to specify a year without a\nmonth and day. month"},"day":{"type":"integer","description":"Day of a month. Must be from 1 to 31 and valid for the year and month, or 0\nto specify a year by itself or a year and month where the day isn't\nsignificant. day"}}},"calibrated":{"type":"boolean","description":"If true, the model is calibrated and can be deployed to non-FP16 precisions. calibrated"},"tunable":{"type":"boolean","description":"Deprecated: V1 training stack only — LoRA only, limited architecture support.\nIf the model has use_training_v2=true, use supervised_lora_tunable and\nsupervised_full_parameter_tunable instead. tunable"},"supportsLora":{"type":"boolean","description":"Whether this model supports LoRA. supportsLora"},"useHfApplyChatTemplate":{"type":"boolean","description":"If true, the model will use the Hugging Face apply_chat_template API to apply the chat template. useHfApplyChatTemplate"},"updateTime":{"type":"string","description":"The update time for the model. updateTime"},"defaultSamplingParams":{"type":"object","description":"A json object that contains the default sampling parameters for the model. defaultSamplingParams"},"rlTunable":{"type":"boolean","description":"Deprecated: V1 training stack only — LoRA only, limited architecture support.\nIf the model has use_training_v2=true, use rl_lora_tunable and\nrl_full_parameter_tunable instead. rlTunable"},"trainingContextLength":{"type":"integer","description":"The maximum context length supported by the model. trainingContextLength"},"snapshotType":{"type":"string","description":"snapshotType","enum":["FULL_SNAPSHOT","INCREMENTAL_SNAPSHOT"]},"supportsServerless":{"type":"boolean","description":"If true, the model has a serverless deployment. supportsServerless"},"useTrainingV2":{"type":"boolean","description":"If true, SFT jobs for this base model use service-mode (StatefulSet +\norchestration sidecar) instead of the legacy batch Job path. useTrainingV2"},"supervisedLoraTunable":{"type":"boolean","description":"V2 only. Whether the model supports LoRA supervised fine-tuning and DPO (lora_rank > 0).\nTrue when a validated LORA_TRAINER training shape exists. supervisedLoraTunable"},"supervisedFullParameterTunable":{"type":"boolean","description":"V2 only. Whether the model supports full-parameter supervised fine-tuning and DPO (lora_rank = 0).\nTrue when a validated POLICY_TRAINER training shape exists. supervisedFullParameterTunable"},"rlLoraTunable":{"type":"boolean","description":"V2 only. Whether the model supports LoRA reinforcement learning (lora_rank > 0).\nTrue when a validated LORA_TRAINER training shape exists plus a deployment shape. rlLoraTunable"},"rlFullParameterTunable":{"type":"boolean","description":"V2 only. Whether the model supports full-parameter reinforcement learning (lora_rank = 0).\nTrue when validated POLICY_TRAINER + LORA_TRAINER training shapes exist plus a deployment shape. rlFullParameterTunable"},"encryptionState":{"type":"string","description":"EncryptionState is the authoritative, per-resource CMEK marker: the single\nsource of truth for whether a resource's customer-data artifacts are\nencrypted. It is stamped at resource creation from the owning account's CMEK\nconfig and is immutable for the resource's life, so a resource always reads\nback with the state it was created under regardless of the account's current\nflag. The encrypt-on-write / decrypt-on-read decision for the resource's\ndata keys off this field.\n\n - ENCRYPTION_STATE_UNSPECIFIED: Unstamped/legacy rows that predate CMEK. Treated as PLAINTEXT.\n - ENCRYPTION_STATE_PLAINTEXT: Customer-data artifacts are stored as plaintext (Fireworks-owned, no CMEK).\n - ENCRYPTION_STATE_CMEK: Customer-data artifacts are CMEK-encrypted; reads MUST decrypt (fail-closed). encryptionState","enum":["ENCRYPTION_STATE_UNSPECIFIED","ENCRYPTION_STATE_PLAINTEXT","ENCRYPTION_STATE_CMEK"]},"serverlessModes":{"type":"array","description":"The serverless modes this base model is available on — the serverless read\nshape. Populated on read (e.g. the serverless catalog read path); one entry\nper serving mode. Empty for non-serverless models. serverlessModes","items":{"type":"object","properties":{"name":{"type":"string","description":"The resource name, e.g.\naccounts/fireworks/models/kimi-k2p6/serverlessModes/fast.\n{AccountId} must be a serverless account (fireworks, ...);\n{ModelId} is the base model's id; {ServerlessModeId} is the mode name\n(default | priority | fast | spot). name"},"usageIdentifier":{"type":"string","description":"Invocation recipe: the value to pass as \"model\" in inference requests.\nEmpty means use the base model id. May reference a DIFFERENT resource\nthan the base model — a model OR a router, e.g.\naccounts/fireworks/routers/kimi-k2p6-fast for fast. usageIdentifier"},"serviceTier":{"type":"string","description":"Invocation recipe: the service_tier request-body flag layered on top of the\nmodel id (e.g. \"priority\"). Only the priority mode sets this today. serviceTier"},"skuInfos":{"type":"array","description":"Per-path token pricing, sourced live from Orb on the read path. Reuses the\nsame SKUInfo type as Model.sku_infos (e.g. \"LLM input tokens (uncached)\",\n\"LLM input tokens (cached)\", \"LLM output tokens\"; google.type.Money at\nunit=\"1M tokens\"). Resolved per tier (DEFAULT/PRIORITY/FAST/...). Empty on\nthe stored config; only populated by ListServerlessModels.\n\n(api_only) keeps this derived field out of the database entirely (like\nModel.sku_infos): it is never persisted by the admin write path and never\nread back from storage, only computed live at read time. skuInfos"},"useCases":{"type":"array","description":"Curated use-case tags driving discovery filters (e.g. \"coding\"). useCases"},"updatedBy":{"type":"string","description":"The user who last mutated this mode (audit). updatedBy"},"createTime":{"type":"string","description":"createTime"},"updateTime":{"type":"string","description":"updateTime"}}}}}},"example":{"displayName":"","description":"","createTime":"","state":"","status":{},"kind":"","githubUrl":"","huggingFaceUrl":"","baseModelDetails":{},"peftDetails":{},"teftDetails":{},"public":"","conversationConfig":{},"contextLength":"","supportsImageInput":"","supportsTools":"","importedFrom":"","fineTuningJob":"","defaultDraftModel":"","defaultDraftTokenCount":"","deployedModelRefs":[],"cluster":"","deprecationDate":{},"calibrated":"","tunable":"","supportsLora":"","useHfApplyChatTemplate":"","updateTime":"","defaultSamplingParams":{},"rlTunable":"","trainingContextLength":"","snapshotType":"","supportsServerless":"","useTrainingV2":"","supervisedLoraTunable":"","supervisedFullParameterTunable":"","rlLoraTunable":"","rlFullParameterTunable":"","encryptionState":"","serverlessModes":[]}}}}},"delete":{"tags":["Models"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"model_id","in":"path","description":"The Model Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/models/{model_id}"},"summary":"Delete Model","description":"Delete Model","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/v1/accounts/{account_id}/models/{model_id}/versions":{"post":{"tags":["Model Versions"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"model_id","in":"path","description":"The Model Id","required":true,"schema":{"type":"string","example":""}},{"name":"versionId","in":"query","description":"versionId","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/models/{model_id}/versions"},"summary":"CRUD APIs for model versions.\nCreate Model Version","description":"CRUD APIs for model versions.\nCreate Model Version","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"The resource name of the deployment snapshot. name"},"createTime":{"type":"string","description":"createTime"},"snapshot":{"type":"object","description":"snapshot","properties":{"name":{"type":"string","description":"The resource name of the model. e.g. accounts/my-account/models/my-model name"},"displayName":{"type":"string","description":"Human-readable display name of the model. e.g. \"My Model\"\nMust be fewer than 64 characters long. displayName"},"description":{"type":"string","description":"The description of the model. Must be fewer than 1000 characters long. description"},"createTime":{"type":"string","description":"The creation time of the model. createTime"},"state":{"type":"string","description":"- UPLOADING: The model is still being uploaded (upload is asynchronous).\n - READY: The model is ready to be used. state","enum":["STATE_UNSPECIFIED","UPLOADING","READY"]},"status":{"type":"object","description":"Mimics [https://github.com/googleapis/googleapis/blob/master/google/rpc/status.proto] status"},"kind":{"type":"string","description":"- HF_BASE_MODEL: An LLM base model.\n - HF_PEFT_ADDON: A parameter-efficent fine-tuned addon.\n - HF_TEFT_ADDON: A token-eficient fine-tuned addon.\n - FLUMINA_BASE_MODEL: A Flumina base model.\n - FLUMINA_ADDON: A Flumina addon.\n - DRAFT_ADDON: A draft model used for speculative decoding in a deployment.\n - LIVE_MERGE: A live-merge model.\n - CUSTOM_MODEL: A customized model\n - EMBEDDING_MODEL: An Embedding model.\n - SNAPSHOT_MODEL: A snapshot model. kind","enum":["KIND_UNSPECIFIED","HF_BASE_MODEL","HF_PEFT_ADDON","HF_TEFT_ADDON","FLUMINA_BASE_MODEL","FLUMINA_ADDON","DRAFT_ADDON","LIVE_MERGE","CUSTOM_MODEL","EMBEDDING_MODEL","SNAPSHOT_MODEL"]},"githubUrl":{"type":"string","description":"The URL to GitHub repository of the model. githubUrl"},"huggingFaceUrl":{"type":"string","description":"The URL to the Hugging Face model. huggingFaceUrl"},"baseModelDetails":{"type":"object","description":"baseModelDetails"}}}}},"example":{"name":"","createTime":"","snapshot":{}}}}}}},"/v1/accounts/{account_id}/models/{model_id}/versions/{version_id}:deploy":{"post":{"tags":["Model Versions"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"model_id","in":"path","description":"The Model Id","required":true,"schema":{"type":"string","example":""}},{"name":"version_id","in":"path","description":"The Version Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/models/{model_id}/versions/{version_id}:deploy"},"summary":"Deploy Model Version","description":"Deploy Model Version","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"deployment":{"type":"string","description":"The deployment name to deploy the model version to deployment","required":true},"rolloutStrategy":{"type":"string","description":"The rollout strategy to use when deploying the model version.\n\n - ROLLOUT_STRATEGY_STANDARD: Standard rollout strategy updates the deployment using a normal k8s rolling restart\n - ROLLOUT_STRATEGY_HOT_RELOAD: Hot reload rollout strategy updates the deployment by hot reloading the model version on the existing replicas of the deployment rolloutStrategy","required":true,"enum":["ROLLOUT_STRATEGY_UNSPECIFIED","ROLLOUT_STRATEGY_STANDARD","ROLLOUT_STRATEGY_HOT_RELOAD"]}}},"example":{"deployment":"","rolloutStrategy":""}}}}}},"/v1/accounts/{account_id}/models/{model_id}/versions:count":{"get":{"tags":["Model Versions"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"model_id","in":"path","description":"The Model Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/models/{model_id}/versions:count"},"summary":"Returns the number of model versions.","description":"Returns the number of model versions.","security":[{"bearerAuth":[]}]}},"/v1/accounts/{account_id}/models/{model_id}:getDownloadEndpoint":{"get":{"tags":["Models"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"model_id","in":"path","description":"The Model Id","required":true,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/models/{model_id}:getDownloadEndpoint"},"summary":"Get Model Download Endpoint","description":"Get Model Download Endpoint","security":[{"bearerAuth":[]}]}},"/v1/accounts/{account_id}/models/{model_id}:getUploadEndpoint":{"post":{"tags":["Models"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"model_id","in":"path","description":"The Model Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/models/{model_id}:getUploadEndpoint"},"summary":"Get Model Upload Endpoint","description":"Get Model Upload Endpoint","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"filenameToSize":{"type":"object","description":"A mapping from the file name to its size in bytes. filenameToSize","required":true},"enableResumableUpload":{"type":"boolean","description":"If true, enable resumable upload instead of PUT. enableResumableUpload"},"readMask":{"type":"string","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned. readMask"}}},"example":{"filenameToSize":{},"enableResumableUpload":"","readMask":""}}}}}},"/v1/accounts/{account_id}/models/{model_id}:import":{"post":{"tags":["Models"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"model_id","in":"path","description":"The Model Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/models/{model_id}:import"},"summary":"Transfer model from S3 to GCP storage","description":"Transfer model from S3 to GCP storage","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"awsS3Source":{"type":"object","description":"awsS3Source","properties":{"s3Bucket":{"type":"string","description":"The S3 bucket name. s3Bucket"},"s3Path":{"type":"string","description":"The S3 path prefix. s3Path"},"roleArn":{"type":"string","description":"AWS role ARN for authentication roleArn"},"accessKeyId":{"type":"string","description":"AWS access key ID for authentication accessKeyId"},"accessSecret":{"type":"string","description":"AWS access secret for authentication accessSecret"}}},"azureBlobSource":{"type":"object","description":"azureBlobSource","properties":{"storageAccount":{"type":"string","description":"The Azure storage account name. storageAccount"},"container":{"type":"string","description":"The Azure blob container name. container"},"path":{"type":"string","description":"The path prefix within the container. path"},"sasTokenSecret":{"type":"string","description":"Reference to a Fireworks secret containing the Azure SAS token.\nFormat: accounts/{account}/secrets/{secret_id}\nThe secret's value should contain the SAS token.\nCreate a secret first using the Secrets API, then reference it here. sasTokenSecret"},"clientId":{"type":"string","description":"Azure AD client ID for authentication.\nIf set, tenant_id must also be set. clientId"},"tenantId":{"type":"string","description":"Azure AD tenant ID for authentication.\nIf set, client_id must also be set. tenantId"}}}}},"example":{"awsS3Source":{},"azureBlobSource":{}}}}}}},"/v1/accounts/{account_id}/models/{model_id}:prepare":{"post":{"tags":["Models"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"model_id","in":"path","description":"The Model Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/models/{model_id}:prepare"},"summary":"Prepare Model for different precisions","description":"Prepare Model for different precisions","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"precision":{"type":"string","description":"- PRECISION_UNSPECIFIED: if left unspecified we will treat this as a legacy model created before\nself serve precision","enum":["PRECISION_UNSPECIFIED","FP16","FP8","FP8_MM","FP8_AR","FP8_MM_KV_ATTN","FP8_KV","FP8_MM_V2","FP8_V2","FP8_MM_KV_ATTN_V2","NF4","FP4","BF16","FP4_BLOCKSCALED_MM","FP4_MX_MOE"]},"readMask":{"type":"string","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.\nThis is added as is used in getResource() readMask"},"acceleratorCount":{"type":"integer","description":"Number of accelerators (GPUs) to use for quantization. Defaults to 8 if unset. acceleratorCount"},"abort":{"type":"boolean","description":"If true, abort an active prepare job and clear prepare tracking state.\nNo new prepare job is launched in this request. abort"}}},"example":{"precision":"","readMask":"","acceleratorCount":"","abort":""}}}}}},"/v1/accounts/{account_id}/models/{model_id}:validateUpload":{"get":{"tags":["Models"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"model_id","in":"path","description":"The Model Id","required":true,"schema":{"type":"string","example":""}},{"name":"skipHfConfigValidation","in":"query","description":"If true, skip the Hugging Face config validation.","required":false,"schema":{"type":"boolean","example":""}},{"name":"trustRemoteCode","in":"query","description":"If true, trusts remote code when validating the Hugging Face config.","required":false,"schema":{"type":"boolean","example":""}},{"name":"configOnly","in":"query","description":"If true, skip tokenizer and parameter name validation.","required":false,"schema":{"type":"boolean","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/models/{model_id}:validateUpload"},"summary":"Validate Model Upload","description":"Validate Model Upload","security":[{"bearerAuth":[]}]}},"/v1/accounts/{account_id}/policySettings":{"get":{"tags":["Policy"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/policySettings"},"summary":"Returns the singleton PolicySettings for the given account.","description":"Returns the singleton PolicySettings for the given account.","security":[{"bearerAuth":[]}]},"patch":{"tags":["Policy"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/policySettings"},"summary":"Updates the per-account PolicySettings singleton.","description":"Updates the per-account PolicySettings singleton.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"defaultPermissions":{"type":"object","description":"Each boolean is required when ModelPermissions is sent. Using `optional`\ngives the field presence tracking, and `(buf.validate.field).required`\nmakes server-side validation reject messages with any unset boolean. This\nforces callers (frontend, firectl, scripts) to always send all four\npermissions explicitly, instead of silently relying on bool's default of\n`false`. It also causes proto3 JSON to emit explicit `false` values on\noutput, so a Get response always shows the full picture. defaultPermissions","properties":{"allowServerless":{"type":"boolean","description":"allowServerless"},"allowCoding":{"type":"boolean","description":"allowCoding"},"allowDedicatedDeployments":{"type":"boolean","description":"allowDedicatedDeployments"},"allowTraining":{"type":"boolean","description":"allowTraining"}}},"rules":{"type":"array","description":"Per-model override rows. A model not listed here uses default_permissions. rules","items":{"type":"object","properties":{"model":{"type":"string","description":"model"},"permissions":{"type":"object","description":"Each boolean is required when ModelPermissions is sent. Using `optional`\ngives the field presence tracking, and `(buf.validate.field).required`\nmakes server-side validation reject messages with any unset boolean. This\nforces callers (frontend, firectl, scripts) to always send all four\npermissions explicitly, instead of silently relying on bool's default of\n`false`. It also causes proto3 JSON to emit explicit `false` values on\noutput, so a Get response always shows the full picture. permissions"}}}},"updateTime":{"type":"string","description":"updateTime"},"cmekRequired":{"type":"boolean","description":"Whether new customer-data resources for this account must be CMEK-encrypted.\nReadable by the account, but only a Fireworks superuser can change it (the\nwrite path gates this explicitly). Enabling requires a READY primary\nExternalKey. cmekRequired"}}},"example":{"defaultPermissions":{},"rules":[],"updateTime":"","cmekRequired":""}}}}}},"/v1/accounts/{account_id}/pricingPlans":{"get":{"tags":["Billing"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"pageSize","in":"query","description":"Maximum number of pricing plans to return","required":false,"schema":{"type":"integer","example":""}},{"name":"pageToken","in":"query","description":"Page token from a previous ListPricingPlans call","required":false,"schema":{"type":"string","example":""}},{"name":"filter","in":"query","description":"Filter expression (e.g., \"state=READY\")","required":false,"schema":{"type":"string","example":""}},{"name":"orderBy","in":"query","description":"Order by expression (e.g., \"create_time desc\")","required":false,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/pricingPlans"},"summary":"List Pricing Plans","description":"List Pricing Plans","security":[{"bearerAuth":[]}]}},"/v1/accounts/{account_id}/pricingPlans/{pricing_plan_id}":{"get":{"tags":["Billing"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"pricing_plan_id","in":"path","description":"The Pricing Plan Id","required":true,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/pricingPlans/{pricing_plan_id}"},"summary":"CRUD APIs for pricing plans.\nGet Pricing Plan","description":"CRUD APIs for pricing plans.\nGet Pricing Plan","security":[{"bearerAuth":[]}]}},"/v1/accounts/{account_id}/quotas":{"get":{"tags":["Usage And Quotas"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"pageSize","in":"query","description":"The maximum number of quotas to return. The maximum page_size is 200,\nvalues above 200 will be coerced to 200.\nIf unspecified, the default is 50.","required":false,"schema":{"type":"integer","example":""}},{"name":"pageToken","in":"query","description":"A page token, received from a previous ListQuotas call. Provide this\nto retrieve the subsequent page. When paginating, all other parameters\nprovided to ListQuotas must match the call that provided the page\ntoken.","required":false,"schema":{"type":"string","example":""}},{"name":"filter","in":"query","description":"Only quota satisfying the provided filter (if specified) will be\nreturned. See https://google.aip.dev/160 for the filter grammar.","required":false,"schema":{"type":"string","example":""}},{"name":"orderBy","in":"query","description":"A comma-separated list of fields to order by. e.g. \"foo,bar\"\nThe default sort order is ascending. To specify a descending order for a\nfield, append a \" desc\" suffix. e.g. \"foo desc,bar\"\nSubfields are specified with a \".\" character. e.g. \"foo.bar\"\nIf not specified, the default order is by \"name\".","required":false,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/quotas"},"summary":"List Quotas","description":"List Quotas","security":[{"bearerAuth":[]}]}},"/v1/accounts/{account_id}/quotas/{quota_id}":{"get":{"tags":["Usage And Quotas"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"quota_id","in":"path","description":"The Quota Id","required":true,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/quotas/{quota_id}"},"summary":"Get Quota","description":"Get Quota","security":[{"bearerAuth":[]}]},"patch":{"tags":["Usage And Quotas"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"quota_id","in":"path","description":"The Quota Id","required":true,"schema":{"type":"string","example":""}},{"name":"allowMissing","in":"query","description":"If true, and the quota does not exist, it will be created.","required":false,"schema":{"type":"boolean","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/quotas/{quota_id}"},"summary":"Update Quota","description":"Update Quota","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"value":{"type":"string","description":"The value of the quota being enforced. This may be lower than the max_value\nif the user manually lowers it. value"},"maxValue":{"type":"string","description":"The maximum approved value. maxValue"},"usage":{"type":"number","description":"The usage of the quota. usage"},"updateTime":{"type":"string","description":"The update time for the quota. updateTime"}}},"example":{"value":"","maxValue":"","usage":"","updateTime":""}}}}}},"/v1/accounts/{account_id}/reinforcementFineTuningJobs":{"get":{"tags":["Reinforcement Fine Tuning Jobs"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"pageSize","in":"query","description":"The maximum number of fine-tuning jobs to return. The maximum page_size is 200,\nvalues above 200 will be coerced to 200.\nIf unspecified, the default is 50.","required":false,"schema":{"type":"integer","example":""}},{"name":"pageToken","in":"query","description":"A page token, received from a previous ListReinforcementLearningFineTuningJobs call. Provide this\nto retrieve the subsequent page. When paginating, all other parameters\nprovided to ListReinforcementLearningFineTuningJobs must match the call that provided the page\ntoken.","required":false,"schema":{"type":"string","example":""}},{"name":"filter","in":"query","description":"Filter criteria for the returned jobs. See https://google.aip.dev/160 for the filter syntax specification.","required":false,"schema":{"type":"string","example":""}},{"name":"orderBy","in":"query","description":"A comma-separated list of fields to order by. e.g. \"foo,bar\"\nThe default sort order is ascending. To specify a descending order for a\nfield, append a \" desc\" suffix. e.g. \"foo desc,bar\"\nSubfields are specified with a \".\" character. e.g. \"foo.bar\"\nIf not specified, the default order is by \"name\".","required":false,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/reinforcementFineTuningJobs"},"summary":"List Reinforcement Fine-tuning Jobs","description":"List Reinforcement Fine-tuning Jobs","security":[{"bearerAuth":[]}]},"post":{"tags":["Reinforcement Fine Tuning Jobs"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"reinforcementFineTuningJobId","in":"query","description":"ID of the reinforcement fine-tuning job, a random UUID will be generated if not specified.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/reinforcementFineTuningJobs"},"summary":"Create Reinforcement Fine-tuning Job","description":"Create Reinforcement Fine-tuning Job","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"name"},"displayName":{"type":"string","description":"displayName"},"createTime":{"type":"string","description":"createTime"},"completedTime":{"type":"string","description":"The completed time for the reinforcement fine-tuning job. completedTime"},"dataset":{"type":"string","description":"The name of the dataset used for training. dataset","required":true},"evaluationDataset":{"type":"string","description":"The name of a separate dataset to use for evaluation. evaluationDataset"},"evalAutoCarveout":{"type":"boolean","description":"Whether to auto-carve the dataset for eval. evalAutoCarveout"},"state":{"type":"string","description":"JobState represents the state an asynchronous job can be in.\n\n - JOB_STATE_PAUSED: Job is paused, typically due to account suspension or manual intervention.\n - JOB_STATE_DELETED: Job has been deleted.\n - JOB_STATE_ARCHIVED: User-facing state for jobs whose row is retained post-delete (e.g. RLOR\ntrainers within the checkpoint retention window). The internal row is\nstill in JOB_STATE_DELETED; the gateway translates it to ARCHIVED on\npublic responses. state","enum":["JOB_STATE_UNSPECIFIED","JOB_STATE_CREATING","JOB_STATE_RUNNING","JOB_STATE_COMPLETED","JOB_STATE_FAILED","JOB_STATE_CANCELLED","JOB_STATE_DELETING","JOB_STATE_WRITING_RESULTS","JOB_STATE_VALIDATING","JOB_STATE_DELETING_CLEANING_UP","JOB_STATE_PENDING","JOB_STATE_EXPIRED","JOB_STATE_RE_QUEUEING","JOB_STATE_CREATING_INPUT_DATASET","JOB_STATE_IDLE","JOB_STATE_CANCELLING","JOB_STATE_EARLY_STOPPED","JOB_STATE_PAUSED","JOB_STATE_DELETED","JOB_STATE_ARCHIVED"]},"status":{"type":"object","description":"Mimics [https://github.com/googleapis/googleapis/blob/master/google/rpc/status.proto] status","properties":{"code":{"type":"string","description":"- OK: Not an error; returned on success.\n\nHTTP Mapping: 200 OK\n - CANCELLED: The operation was cancelled, typically by the caller.\n\nHTTP Mapping: 499 Client Closed Request\n - UNKNOWN: Unknown error.  For example, this error may be returned when\na `Status` value received from another address space belongs to\nan error space that is not known in this address space.  Also\nerrors raised by APIs that do not return enough error information\nmay be converted to this error.\n\nHTTP Mapping: 500 Internal Server Error\n - INVALID_ARGUMENT: The client specified an invalid argument.  Note that this differs\nfrom `FAILED_PRECONDITION`.  `INVALID_ARGUMENT` indicates arguments\nthat are problematic regardless of the state of the system\n(e.g., a malformed file name).\n\nHTTP Mapping: 400 Bad Request\n - DEADLINE_EXCEEDED: The deadline expired before the operation could complete. For operations\nthat change the state of the system, this error may be returned\neven if the operation has completed successfully.  For example, a\nsuccessful response from a server could have been delayed long\nenough for the deadline to expire.\n\nHTTP Mapping: 504 Gateway Timeout\n - NOT_FOUND: Some requested entity (e.g., file or directory) was not found.\n\nNote to server developers: if a request is denied for an entire class\nof users, such as gradual feature rollout or undocumented allowlist,\n`NOT_FOUND` may be used. If a request is denied for some users within\na class of users, such as user-based access control, `PERMISSION_DENIED`\nmust be used.\n\nHTTP Mapping: 404 Not Found\n - ALREADY_EXISTS: The entity that a client attempted to create (e.g., file or directory)\nalready exists.\n\nHTTP Mapping: 409 Conflict\n - PERMISSION_DENIED: The caller does not have permission to execute the specified\noperation. `PERMISSION_DENIED` must not be used for rejections\ncaused by exhausting some resource (use `RESOURCE_EXHAUSTED`\ninstead for those errors). `PERMISSION_DENIED` must not be\nused if the caller can not be identified (use `UNAUTHENTICATED`\ninstead for those errors). This error code does not imply the\nrequest is valid or the requested entity exists or satisfies\nother pre-conditions.\n\nHTTP Mapping: 403 Forbidden\n - UNAUTHENTICATED: The request does not have valid authentication credentials for the\noperation.\n\nHTTP Mapping: 401 Unauthorized\n - RESOURCE_EXHAUSTED: Some resource has been exhausted, perhaps a per-user quota, or\nperhaps the entire file system is out of space.\n\nHTTP Mapping: 429 Too Many Requests\n - FAILED_PRECONDITION: The operation was rejected because the system is not in a state\nrequired for the operation's execution.  For example, the directory\nto be deleted is non-empty, an rmdir operation is applied to\na non-directory, etc.\n\nService implementors can use the following guidelines to decide\nbetween `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`:\n (a) Use `UNAVAILABLE` if the client can retry just the failing call.\n (b) Use `ABORTED` if the client should retry at a higher level. For\n     example, when a client-specified test-and-set fails, indicating the\n     client should restart a read-modify-write sequence.\n (c) Use `FAILED_PRECONDITION` if the client should not retry until\n     the system state has been explicitly fixed. For example, if an \"rmdir\"\n     fails because the directory is non-empty, `FAILED_PRECONDITION`\n     should be returned since the client should not retry unless\n     the files are deleted from the directory.\n\nHTTP Mapping: 400 Bad Request\n - ABORTED: The operation was aborted, typically due to a concurrency issue such as\na sequencer check failure or transaction abort.\n\nSee the guidelines above for deciding between `FAILED_PRECONDITION`,\n`ABORTED`, and `UNAVAILABLE`.\n\nHTTP Mapping: 409 Conflict\n - OUT_OF_RANGE: The operation was attempted past the valid range.  E.g., seeking or\nreading past end-of-file.\n\nUnlike `INVALID_ARGUMENT`, this error indicates a problem that may\nbe fixed if the system state changes. For example, a 32-bit file\nsystem will generate `INVALID_ARGUMENT` if asked to read at an\noffset that is not in the range [0,2^32-1], but it will generate\n`OUT_OF_RANGE` if asked to read from an offset past the current\nfile size.\n\nThere is a fair bit of overlap between `FAILED_PRECONDITION` and\n`OUT_OF_RANGE`.  We recommend using `OUT_OF_RANGE` (the more specific\nerror) when it applies so that callers who are iterating through\na space can easily look for an `OUT_OF_RANGE` error to detect when\nthey are done.\n\nHTTP Mapping: 400 Bad Request\n - UNIMPLEMENTED: The operation is not implemented or is not supported/enabled in this\nservice.\n\nHTTP Mapping: 501 Not Implemented\n - INTERNAL: Internal errors.  This means that some invariants expected by the\nunderlying system have been broken.  This error code is reserved\nfor serious errors.\n\nHTTP Mapping: 500 Internal Server Error\n - UNAVAILABLE: The service is currently unavailable.  This is most likely a\ntransient condition, which can be corrected by retrying with\na backoff. Note that it is not always safe to retry\nnon-idempotent operations.\n\nSee the guidelines above for deciding between `FAILED_PRECONDITION`,\n`ABORTED`, and `UNAVAILABLE`.\n\nHTTP Mapping: 503 Service Unavailable\n - DATA_LOSS: Unrecoverable data loss or corruption.\n\nHTTP Mapping: 500 Internal Server Error code","enum":["OK","CANCELLED","UNKNOWN","INVALID_ARGUMENT","DEADLINE_EXCEEDED","NOT_FOUND","ALREADY_EXISTS","PERMISSION_DENIED","UNAUTHENTICATED","RESOURCE_EXHAUSTED","FAILED_PRECONDITION","ABORTED","OUT_OF_RANGE","UNIMPLEMENTED","INTERNAL","UNAVAILABLE","DATA_LOSS"]},"message":{"type":"string","description":"A developer-facing error message in English. message"}}},"createdBy":{"type":"string","description":"The email address of the user who initiated this fine-tuning job. createdBy"},"trainingConfig":{"type":"object","description":"BaseTrainingConfig contains common configuration fields shared across\ndifferent training job types. trainingConfig","properties":{"outputModel":{"type":"string","description":"The model ID to be assigned to the resulting fine-tuned model. If not specified, the job ID will be used. outputModel"},"baseModel":{"type":"string","description":"The name of the base model to be fine-tuned\nOnly one of 'base_model' or 'warm_start_from' should be specified. baseModel"},"warmStartFrom":{"type":"string","description":"The PEFT addon model in Fireworks format to be fine-tuned from\nOnly one of 'base_model' or 'warm_start_from' should be specified. warmStartFrom"},"jinjaTemplate":{"type":"string","description":"Deprecated: literal Jinja templates are not supported by Training V2.\nConversation rendering is selected from the base model's registered\nrenderer configuration instead. jinjaTemplate"},"learningRate":{"type":"number","description":"The learning rate used for training. learningRate"},"maxContextLength":{"type":"integer","description":"The maximum context length to use with the model. maxContextLength"},"loraRank":{"type":"integer","description":"The rank of the LoRA layers. loraRank"},"epochs":{"type":"integer","description":"The number of epochs to train for. epochs"},"batchSize":{"type":"integer","description":"Deprecated: legacy V1 token budget. Training V2 batches by samples via\nbatch_size_samples. batchSize"},"gradientAccumulationSteps":{"type":"integer","description":"Deprecated: legacy V1 gradient accumulation. Training V2 batches by\nsamples via batch_size_samples and rejects this field when set. gradientAccumulationSteps"}}},"evaluator":{"type":"string","description":"The evaluator resource name to use for RLOR fine-tuning job. evaluator","required":true},"wandbConfig":{"type":"object","description":"WandbConfig is the configuration for the Weights & Biases (wandb) logging which\nwill be used by a training job. wandbConfig","properties":{"enabled":{"type":"boolean","description":"Whether to enable wandb logging. enabled"},"apiKey":{"type":"string","description":"The API key for the wandb service. apiKey"},"project":{"type":"string","description":"The project name for the wandb service. project"},"entity":{"type":"string","description":"The entity name for the wandb service. entity"},"runId":{"type":"string","description":"The run ID for the wandb service. runId"},"url":{"type":"string","description":"The URL for the wandb service. url"}}},"awsS3Config":{"type":"object","description":"AwsS3Config is the configuration for AWS S3 dataset access which\nwill be used by a training job. awsS3Config","properties":{"credentialsSecret":{"type":"string","description":"Reference to a Secret resource containing AWS access key credentials.\nFormat: accounts/{account_id}/secrets/{secret_id}\nThe secret value must be JSON: {\"aws_access_key_id\": \"AKIA...\", \"aws_secret_access_key\": \"...\"} credentialsSecret"},"iamRoleArn":{"type":"string","description":"IAM role ARN to assume for accessing S3 datasets via GCP OIDC federation.\nFormat: arn:aws:iam::account-id:role/role-name iamRoleArn"}}},"azureBlobStorageConfig":{"type":"object","description":"AzureBlobStorageConfig is the configuration for Azure Blob Storage dataset access\nwhich will be used by a training job. azureBlobStorageConfig","properties":{"credentialsSecret":{"type":"string","description":"Reference to a Secret resource containing Azure credentials.\nFormat: accounts/{account_id}/secrets/{secret_id}\nThe secret value must be JSON: {\"connection_string\": \"...\"} or {\"sas_token\": \"...\"} or {\"account_key\": \"...\"}\nMutually exclusive with managed_identity_client_id. credentialsSecret"},"managedIdentityClientId":{"type":"string","description":"Managed Identity Client ID for GCP-to-Azure Workload Identity Federation.\nFormat: uuid\nMutually exclusive with credentials_secret. managedIdentityClientId"},"tenantId":{"type":"string","description":"Azure tenant ID for Workload Identity Federation.\nFormat: uuid tenantId"}}},"outputStats":{"type":"string","description":"The output dataset's aggregated stats for the evaluation job. outputStats"},"jobProgress":{"type":"object","description":"Progress of a job, e.g. RLOR, EVJ, BIJ etc. jobProgress","properties":{"percent":{"type":"integer","description":"Progress percent, within the range from 0 to 100. percent"},"epoch":{"type":"integer","description":"The epoch for which the progress percent is reported, usually starting from 0.\nThis is optional for jobs that don't run in an epoch fasion, e.g. BIJ, EVJ. epoch"},"totalInputRequests":{"type":"integer","description":"Total number of input requests/rows in the job. totalInputRequests"},"totalProcessedRequests":{"type":"integer","description":"Total number of requests that have been processed (successfully or failed). totalProcessedRequests"},"successfullyProcessedRequests":{"type":"integer","description":"Number of requests that were processed successfully. successfullyProcessedRequests"},"failedRequests":{"type":"integer","description":"Number of requests that failed to process. failedRequests"},"outputRows":{"type":"integer","description":"Number of output rows generated. outputRows"},"inputTokens":{"type":"integer","description":"Total number of input tokens processed. inputTokens"},"outputTokens":{"type":"integer","description":"Total number of output tokens generated. outputTokens"},"cachedInputTokenCount":{"type":"integer","description":"The number of input tokens that hit the prompt cache. cachedInputTokenCount"}}},"inferenceParameters":{"type":"object","description":"RFT inference parameters inferenceParameters","properties":{"maxOutputTokens":{"type":"integer","description":"Maximum number of tokens to generate per response. maxOutputTokens"},"temperature":{"type":"number","description":"Sampling temperature, typically between 0 and 2. temperature"},"topP":{"type":"number","description":"Top-p sampling parameter, typically between 0 and 1. topP"},"responseCandidatesCount":{"type":"integer","description":"Number of response candidates to generate per input. RFT requires at least 2 candidates responseCandidatesCount"},"extraBody":{"type":"string","description":"Additional parameters for the inference request as a JSON string.\nFor example: \"{\\\"stop\\\": [\\\"\\\\n\\\"]}\". extraBody"},"topK":{"type":"integer","description":"Top-k sampling parameter, limits the token selection to the top k tokens. topK"}}},"chunkSize":{"type":"integer","description":"Data chunking for rollout, default size 200, enabled when dataset > 300. Valid range is 1-10,000. chunkSize"},"outputMetrics":{"type":"string","description":"outputMetrics"},"maxInferenceReplicaCount":{"type":"integer","description":"Maximum number of replicas to use for the deployment.\nDefault is 1 maxInferenceReplicaCount"},"nodeCount":{"type":"integer","description":"The number of nodes to use for the fine-tuning job.\nIf not specified, the default is 1. nodeCount"},"lossConfig":{"type":"object","description":"Loss method + hyperparameters for reinforcement-learning-style fine-tuning (e.g. RFT / RL trainers).\nFor preference jobs (DPO API), the default loss method is GRPO when METHOD_UNSPECIFIED. lossConfig","properties":{"method":{"type":"string","description":"- METHOD_UNSPECIFIED: Defaults to GRPO\n - GRPO: Group Relative Policy Optimization (default for preference jobs)\n - DAPO: Decoupled Alignment Preference Optimization\n - DPO: Direct Preference Optimization\n - ORPO: Odds Ratio Preference Optimization (reference-free)\n - GSPO_TOKEN: Group Sequence Policy Optimization (token-level) method","enum":["METHOD_UNSPECIFIED","GRPO","DAPO","DPO","ORPO","GSPO_TOKEN"]},"klBeta":{"type":"number","description":"KL coefficient (beta) override for GRPO-like methods.\nIf unset, the trainer default is used. klBeta"},"dpo":{"type":"object","description":"Hyperparameters for Direct Preference Optimization (DPO) training. dpo"},"orpo":{"type":"object","description":"Hyperparameters for Odds Ratio Preference Optimization (ORPO) training. orpo"}}},"trainerLogsSignedUrl":{"type":"string","description":"The signed URL for the trainer logs file (stdout/stderr).\nOnly populated if the account has trainer log reading enabled. trainerLogsSignedUrl"},"acceleratorSeconds":{"type":"object","description":"Accelerator seconds used by the job, keyed by accelerator type (e.g., \"NVIDIA_H100_80GB\"). Updated when job completes or is cancelled. acceleratorSeconds"},"maxConcurrentRollouts":{"type":"integer","description":"Maximum number of concurrent rollouts during the RFT job. maxConcurrentRollouts"},"maxConcurrentEvaluations":{"type":"integer","description":"Maximum number of concurrent evaluations during the RFT job. maxConcurrentEvaluations"},"purpose":{"type":"string","description":"Scheduling purpose for training jobs and deployments. purpose","enum":["PURPOSE_UNSPECIFIED","PURPOSE_PILOT"]},"useReservation":{"type":"boolean","description":"Whether to try the account's reservation capacity before falling back to shared trainer capacity. useReservation"},"encryptionState":{"type":"string","description":"EncryptionState is the authoritative, per-resource CMEK marker: the single\nsource of truth for whether a resource's customer-data artifacts are\nencrypted. It is stamped at resource creation from the owning account's CMEK\nconfig and is immutable for the resource's life, so a resource always reads\nback with the state it was created under regardless of the account's current\nflag. The encrypt-on-write / decrypt-on-read decision for the resource's\ndata keys off this field.\n\n - ENCRYPTION_STATE_UNSPECIFIED: Unstamped/legacy rows that predate CMEK. Treated as PLAINTEXT.\n - ENCRYPTION_STATE_PLAINTEXT: Customer-data artifacts are stored as plaintext (Fireworks-owned, no CMEK).\n - ENCRYPTION_STATE_CMEK: Customer-data artifacts are CMEK-encrypted; reads MUST decrypt (fail-closed). encryptionState","enum":["ENCRYPTION_STATE_UNSPECIFIED","ENCRYPTION_STATE_PLAINTEXT","ENCRYPTION_STATE_CMEK"]}}},"example":{"name":"","displayName":"","createTime":"","completedTime":"","dataset":"","evaluationDataset":"","evalAutoCarveout":"","state":"","status":{},"createdBy":"","trainingConfig":{},"evaluator":"","wandbConfig":{},"awsS3Config":{},"azureBlobStorageConfig":{},"outputStats":"","jobProgress":{},"inferenceParameters":{},"chunkSize":"","outputMetrics":"","maxInferenceReplicaCount":"","nodeCount":"","lossConfig":{},"trainerLogsSignedUrl":"","acceleratorSeconds":{},"maxConcurrentRollouts":"","maxConcurrentEvaluations":"","purpose":"","useReservation":"","encryptionState":""}}}}}},"/v1/accounts/{account_id}/reinforcementFineTuningJobs/{reinforcement_fine_tuning_job_id}":{"get":{"tags":["Reinforcement Fine Tuning Jobs"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"reinforcement_fine_tuning_job_id","in":"path","description":"The Reinforcement Fine-tuning Job Id","required":true,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/reinforcementFineTuningJobs/{reinforcement_fine_tuning_job_id}"},"summary":"Get Reinforcement Fine-tuning Job","description":"Get Reinforcement Fine-tuning Job","security":[{"bearerAuth":[]}]},"patch":{"tags":["Reinforcement Fine Tuning Jobs"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"reinforcement_fine_tuning_job_id","in":"path","description":"The Reinforcement Fine-tuning Job Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/reinforcementFineTuningJobs/{reinforcement_fine_tuning_job_id}"},"summary":"Update Reinforcement Fine-tuning Job","description":"Update Reinforcement Fine-tuning Job","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"displayName":{"type":"string","description":"displayName"},"createTime":{"type":"string","description":"createTime"},"completedTime":{"type":"string","description":"The completed time for the reinforcement fine-tuning job. completedTime"},"dataset":{"type":"string","description":"The name of the dataset used for training. dataset","required":true},"evaluationDataset":{"type":"string","description":"The name of a separate dataset to use for evaluation. evaluationDataset"},"evalAutoCarveout":{"type":"boolean","description":"Whether to auto-carve the dataset for eval. evalAutoCarveout"},"state":{"type":"string","description":"JobState represents the state an asynchronous job can be in.\n\n - JOB_STATE_PAUSED: Job is paused, typically due to account suspension or manual intervention.\n - JOB_STATE_DELETED: Job has been deleted.\n - JOB_STATE_ARCHIVED: User-facing state for jobs whose row is retained post-delete (e.g. RLOR\ntrainers within the checkpoint retention window). The internal row is\nstill in JOB_STATE_DELETED; the gateway translates it to ARCHIVED on\npublic responses. state","enum":["JOB_STATE_UNSPECIFIED","JOB_STATE_CREATING","JOB_STATE_RUNNING","JOB_STATE_COMPLETED","JOB_STATE_FAILED","JOB_STATE_CANCELLED","JOB_STATE_DELETING","JOB_STATE_WRITING_RESULTS","JOB_STATE_VALIDATING","JOB_STATE_DELETING_CLEANING_UP","JOB_STATE_PENDING","JOB_STATE_EXPIRED","JOB_STATE_RE_QUEUEING","JOB_STATE_CREATING_INPUT_DATASET","JOB_STATE_IDLE","JOB_STATE_CANCELLING","JOB_STATE_EARLY_STOPPED","JOB_STATE_PAUSED","JOB_STATE_DELETED","JOB_STATE_ARCHIVED"]},"status":{"type":"object","description":"Mimics [https://github.com/googleapis/googleapis/blob/master/google/rpc/status.proto] status","properties":{"code":{"type":"string","description":"- OK: Not an error; returned on success.\n\nHTTP Mapping: 200 OK\n - CANCELLED: The operation was cancelled, typically by the caller.\n\nHTTP Mapping: 499 Client Closed Request\n - UNKNOWN: Unknown error.  For example, this error may be returned when\na `Status` value received from another address space belongs to\nan error space that is not known in this address space.  Also\nerrors raised by APIs that do not return enough error information\nmay be converted to this error.\n\nHTTP Mapping: 500 Internal Server Error\n - INVALID_ARGUMENT: The client specified an invalid argument.  Note that this differs\nfrom `FAILED_PRECONDITION`.  `INVALID_ARGUMENT` indicates arguments\nthat are problematic regardless of the state of the system\n(e.g., a malformed file name).\n\nHTTP Mapping: 400 Bad Request\n - DEADLINE_EXCEEDED: The deadline expired before the operation could complete. For operations\nthat change the state of the system, this error may be returned\neven if the operation has completed successfully.  For example, a\nsuccessful response from a server could have been delayed long\nenough for the deadline to expire.\n\nHTTP Mapping: 504 Gateway Timeout\n - NOT_FOUND: Some requested entity (e.g., file or directory) was not found.\n\nNote to server developers: if a request is denied for an entire class\nof users, such as gradual feature rollout or undocumented allowlist,\n`NOT_FOUND` may be used. If a request is denied for some users within\na class of users, such as user-based access control, `PERMISSION_DENIED`\nmust be used.\n\nHTTP Mapping: 404 Not Found\n - ALREADY_EXISTS: The entity that a client attempted to create (e.g., file or directory)\nalready exists.\n\nHTTP Mapping: 409 Conflict\n - PERMISSION_DENIED: The caller does not have permission to execute the specified\noperation. `PERMISSION_DENIED` must not be used for rejections\ncaused by exhausting some resource (use `RESOURCE_EXHAUSTED`\ninstead for those errors). `PERMISSION_DENIED` must not be\nused if the caller can not be identified (use `UNAUTHENTICATED`\ninstead for those errors). This error code does not imply the\nrequest is valid or the requested entity exists or satisfies\nother pre-conditions.\n\nHTTP Mapping: 403 Forbidden\n - UNAUTHENTICATED: The request does not have valid authentication credentials for the\noperation.\n\nHTTP Mapping: 401 Unauthorized\n - RESOURCE_EXHAUSTED: Some resource has been exhausted, perhaps a per-user quota, or\nperhaps the entire file system is out of space.\n\nHTTP Mapping: 429 Too Many Requests\n - FAILED_PRECONDITION: The operation was rejected because the system is not in a state\nrequired for the operation's execution.  For example, the directory\nto be deleted is non-empty, an rmdir operation is applied to\na non-directory, etc.\n\nService implementors can use the following guidelines to decide\nbetween `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`:\n (a) Use `UNAVAILABLE` if the client can retry just the failing call.\n (b) Use `ABORTED` if the client should retry at a higher level. For\n     example, when a client-specified test-and-set fails, indicating the\n     client should restart a read-modify-write sequence.\n (c) Use `FAILED_PRECONDITION` if the client should not retry until\n     the system state has been explicitly fixed. For example, if an \"rmdir\"\n     fails because the directory is non-empty, `FAILED_PRECONDITION`\n     should be returned since the client should not retry unless\n     the files are deleted from the directory.\n\nHTTP Mapping: 400 Bad Request\n - ABORTED: The operation was aborted, typically due to a concurrency issue such as\na sequencer check failure or transaction abort.\n\nSee the guidelines above for deciding between `FAILED_PRECONDITION`,\n`ABORTED`, and `UNAVAILABLE`.\n\nHTTP Mapping: 409 Conflict\n - OUT_OF_RANGE: The operation was attempted past the valid range.  E.g., seeking or\nreading past end-of-file.\n\nUnlike `INVALID_ARGUMENT`, this error indicates a problem that may\nbe fixed if the system state changes. For example, a 32-bit file\nsystem will generate `INVALID_ARGUMENT` if asked to read at an\noffset that is not in the range [0,2^32-1], but it will generate\n`OUT_OF_RANGE` if asked to read from an offset past the current\nfile size.\n\nThere is a fair bit of overlap between `FAILED_PRECONDITION` and\n`OUT_OF_RANGE`.  We recommend using `OUT_OF_RANGE` (the more specific\nerror) when it applies so that callers who are iterating through\na space can easily look for an `OUT_OF_RANGE` error to detect when\nthey are done.\n\nHTTP Mapping: 400 Bad Request\n - UNIMPLEMENTED: The operation is not implemented or is not supported/enabled in this\nservice.\n\nHTTP Mapping: 501 Not Implemented\n - INTERNAL: Internal errors.  This means that some invariants expected by the\nunderlying system have been broken.  This error code is reserved\nfor serious errors.\n\nHTTP Mapping: 500 Internal Server Error\n - UNAVAILABLE: The service is currently unavailable.  This is most likely a\ntransient condition, which can be corrected by retrying with\na backoff. Note that it is not always safe to retry\nnon-idempotent operations.\n\nSee the guidelines above for deciding between `FAILED_PRECONDITION`,\n`ABORTED`, and `UNAVAILABLE`.\n\nHTTP Mapping: 503 Service Unavailable\n - DATA_LOSS: Unrecoverable data loss or corruption.\n\nHTTP Mapping: 500 Internal Server Error code","enum":["OK","CANCELLED","UNKNOWN","INVALID_ARGUMENT","DEADLINE_EXCEEDED","NOT_FOUND","ALREADY_EXISTS","PERMISSION_DENIED","UNAUTHENTICATED","RESOURCE_EXHAUSTED","FAILED_PRECONDITION","ABORTED","OUT_OF_RANGE","UNIMPLEMENTED","INTERNAL","UNAVAILABLE","DATA_LOSS"]},"message":{"type":"string","description":"A developer-facing error message in English. message"}}},"createdBy":{"type":"string","description":"The email address of the user who initiated this fine-tuning job. createdBy"},"trainingConfig":{"type":"object","description":"BaseTrainingConfig contains common configuration fields shared across\ndifferent training job types. trainingConfig","properties":{"outputModel":{"type":"string","description":"The model ID to be assigned to the resulting fine-tuned model. If not specified, the job ID will be used. outputModel"},"baseModel":{"type":"string","description":"The name of the base model to be fine-tuned\nOnly one of 'base_model' or 'warm_start_from' should be specified. baseModel"},"warmStartFrom":{"type":"string","description":"The PEFT addon model in Fireworks format to be fine-tuned from\nOnly one of 'base_model' or 'warm_start_from' should be specified. warmStartFrom"},"jinjaTemplate":{"type":"string","description":"Deprecated: literal Jinja templates are not supported by Training V2.\nConversation rendering is selected from the base model's registered\nrenderer configuration instead. jinjaTemplate"},"learningRate":{"type":"number","description":"The learning rate used for training. learningRate"},"maxContextLength":{"type":"integer","description":"The maximum context length to use with the model. maxContextLength"},"loraRank":{"type":"integer","description":"The rank of the LoRA layers. loraRank"},"epochs":{"type":"integer","description":"The number of epochs to train for. epochs"},"batchSize":{"type":"integer","description":"Deprecated: legacy V1 token budget. Training V2 batches by samples via\nbatch_size_samples. batchSize"},"gradientAccumulationSteps":{"type":"integer","description":"Deprecated: legacy V1 gradient accumulation. Training V2 batches by\nsamples via batch_size_samples and rejects this field when set. gradientAccumulationSteps"}}},"evaluator":{"type":"string","description":"The evaluator resource name to use for RLOR fine-tuning job. evaluator","required":true},"wandbConfig":{"type":"object","description":"WandbConfig is the configuration for the Weights & Biases (wandb) logging which\nwill be used by a training job. wandbConfig","properties":{"enabled":{"type":"boolean","description":"Whether to enable wandb logging. enabled"},"apiKey":{"type":"string","description":"The API key for the wandb service. apiKey"},"project":{"type":"string","description":"The project name for the wandb service. project"},"entity":{"type":"string","description":"The entity name for the wandb service. entity"},"runId":{"type":"string","description":"The run ID for the wandb service. runId"},"url":{"type":"string","description":"The URL for the wandb service. url"}}},"awsS3Config":{"type":"object","description":"AwsS3Config is the configuration for AWS S3 dataset access which\nwill be used by a training job. awsS3Config","properties":{"credentialsSecret":{"type":"string","description":"Reference to a Secret resource containing AWS access key credentials.\nFormat: accounts/{account_id}/secrets/{secret_id}\nThe secret value must be JSON: {\"aws_access_key_id\": \"AKIA...\", \"aws_secret_access_key\": \"...\"} credentialsSecret"},"iamRoleArn":{"type":"string","description":"IAM role ARN to assume for accessing S3 datasets via GCP OIDC federation.\nFormat: arn:aws:iam::account-id:role/role-name iamRoleArn"}}},"azureBlobStorageConfig":{"type":"object","description":"AzureBlobStorageConfig is the configuration for Azure Blob Storage dataset access\nwhich will be used by a training job. azureBlobStorageConfig","properties":{"credentialsSecret":{"type":"string","description":"Reference to a Secret resource containing Azure credentials.\nFormat: accounts/{account_id}/secrets/{secret_id}\nThe secret value must be JSON: {\"connection_string\": \"...\"} or {\"sas_token\": \"...\"} or {\"account_key\": \"...\"}\nMutually exclusive with managed_identity_client_id. credentialsSecret"},"managedIdentityClientId":{"type":"string","description":"Managed Identity Client ID for GCP-to-Azure Workload Identity Federation.\nFormat: uuid\nMutually exclusive with credentials_secret. managedIdentityClientId"},"tenantId":{"type":"string","description":"Azure tenant ID for Workload Identity Federation.\nFormat: uuid tenantId"}}},"outputStats":{"type":"string","description":"The output dataset's aggregated stats for the evaluation job. outputStats"},"jobProgress":{"type":"object","description":"Progress of a job, e.g. RLOR, EVJ, BIJ etc. jobProgress","properties":{"percent":{"type":"integer","description":"Progress percent, within the range from 0 to 100. percent"},"epoch":{"type":"integer","description":"The epoch for which the progress percent is reported, usually starting from 0.\nThis is optional for jobs that don't run in an epoch fasion, e.g. BIJ, EVJ. epoch"},"totalInputRequests":{"type":"integer","description":"Total number of input requests/rows in the job. totalInputRequests"},"totalProcessedRequests":{"type":"integer","description":"Total number of requests that have been processed (successfully or failed). totalProcessedRequests"},"successfullyProcessedRequests":{"type":"integer","description":"Number of requests that were processed successfully. successfullyProcessedRequests"},"failedRequests":{"type":"integer","description":"Number of requests that failed to process. failedRequests"},"outputRows":{"type":"integer","description":"Number of output rows generated. outputRows"},"inputTokens":{"type":"integer","description":"Total number of input tokens processed. inputTokens"},"outputTokens":{"type":"integer","description":"Total number of output tokens generated. outputTokens"},"cachedInputTokenCount":{"type":"integer","description":"The number of input tokens that hit the prompt cache. cachedInputTokenCount"}}},"inferenceParameters":{"type":"object","description":"RFT inference parameters inferenceParameters","properties":{"maxOutputTokens":{"type":"integer","description":"Maximum number of tokens to generate per response. maxOutputTokens"},"temperature":{"type":"number","description":"Sampling temperature, typically between 0 and 2. temperature"},"topP":{"type":"number","description":"Top-p sampling parameter, typically between 0 and 1. topP"},"responseCandidatesCount":{"type":"integer","description":"Number of response candidates to generate per input. RFT requires at least 2 candidates responseCandidatesCount"},"extraBody":{"type":"string","description":"Additional parameters for the inference request as a JSON string.\nFor example: \"{\\\"stop\\\": [\\\"\\\\n\\\"]}\". extraBody"},"topK":{"type":"integer","description":"Top-k sampling parameter, limits the token selection to the top k tokens. topK"}}},"chunkSize":{"type":"integer","description":"Data chunking for rollout, default size 200, enabled when dataset > 300. Valid range is 1-10,000. chunkSize"},"outputMetrics":{"type":"string","description":"outputMetrics"},"maxInferenceReplicaCount":{"type":"integer","description":"Maximum number of replicas to use for the deployment.\nDefault is 1 maxInferenceReplicaCount"},"nodeCount":{"type":"integer","description":"The number of nodes to use for the fine-tuning job.\nIf not specified, the default is 1. nodeCount"},"lossConfig":{"type":"object","description":"Loss method + hyperparameters for reinforcement-learning-style fine-tuning (e.g. RFT / RL trainers).\nFor preference jobs (DPO API), the default loss method is GRPO when METHOD_UNSPECIFIED. lossConfig","properties":{"method":{"type":"string","description":"- METHOD_UNSPECIFIED: Defaults to GRPO\n - GRPO: Group Relative Policy Optimization (default for preference jobs)\n - DAPO: Decoupled Alignment Preference Optimization\n - DPO: Direct Preference Optimization\n - ORPO: Odds Ratio Preference Optimization (reference-free)\n - GSPO_TOKEN: Group Sequence Policy Optimization (token-level) method","enum":["METHOD_UNSPECIFIED","GRPO","DAPO","DPO","ORPO","GSPO_TOKEN"]},"klBeta":{"type":"number","description":"KL coefficient (beta) override for GRPO-like methods.\nIf unset, the trainer default is used. klBeta"},"dpo":{"type":"object","description":"Hyperparameters for Direct Preference Optimization (DPO) training. dpo"},"orpo":{"type":"object","description":"Hyperparameters for Odds Ratio Preference Optimization (ORPO) training. orpo"}}},"trainerLogsSignedUrl":{"type":"string","description":"The signed URL for the trainer logs file (stdout/stderr).\nOnly populated if the account has trainer log reading enabled. trainerLogsSignedUrl"},"acceleratorSeconds":{"type":"object","description":"Accelerator seconds used by the job, keyed by accelerator type (e.g., \"NVIDIA_H100_80GB\"). Updated when job completes or is cancelled. acceleratorSeconds"},"maxConcurrentRollouts":{"type":"integer","description":"Maximum number of concurrent rollouts during the RFT job. maxConcurrentRollouts"},"maxConcurrentEvaluations":{"type":"integer","description":"Maximum number of concurrent evaluations during the RFT job. maxConcurrentEvaluations"},"purpose":{"type":"string","description":"Scheduling purpose for training jobs and deployments. purpose","enum":["PURPOSE_UNSPECIFIED","PURPOSE_PILOT"]},"encryptionState":{"type":"string","description":"EncryptionState is the authoritative, per-resource CMEK marker: the single\nsource of truth for whether a resource's customer-data artifacts are\nencrypted. It is stamped at resource creation from the owning account's CMEK\nconfig and is immutable for the resource's life, so a resource always reads\nback with the state it was created under regardless of the account's current\nflag. The encrypt-on-write / decrypt-on-read decision for the resource's\ndata keys off this field.\n\n - ENCRYPTION_STATE_UNSPECIFIED: Unstamped/legacy rows that predate CMEK. Treated as PLAINTEXT.\n - ENCRYPTION_STATE_PLAINTEXT: Customer-data artifacts are stored as plaintext (Fireworks-owned, no CMEK).\n - ENCRYPTION_STATE_CMEK: Customer-data artifacts are CMEK-encrypted; reads MUST decrypt (fail-closed). encryptionState","enum":["ENCRYPTION_STATE_UNSPECIFIED","ENCRYPTION_STATE_PLAINTEXT","ENCRYPTION_STATE_CMEK"]}}},"example":{"displayName":"","createTime":"","completedTime":"","dataset":"","evaluationDataset":"","evalAutoCarveout":"","state":"","status":{},"createdBy":"","trainingConfig":{},"evaluator":"","wandbConfig":{},"awsS3Config":{},"azureBlobStorageConfig":{},"outputStats":"","jobProgress":{},"inferenceParameters":{},"chunkSize":"","outputMetrics":"","maxInferenceReplicaCount":"","nodeCount":"","lossConfig":{},"trainerLogsSignedUrl":"","acceleratorSeconds":{},"maxConcurrentRollouts":"","maxConcurrentEvaluations":"","purpose":"","encryptionState":""}}}}},"delete":{"tags":["Reinforcement Fine Tuning Jobs"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"reinforcement_fine_tuning_job_id","in":"path","description":"The Reinforcement Fine-tuning Job Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/reinforcementFineTuningJobs/{reinforcement_fine_tuning_job_id}"},"summary":"Delete Reinforcement Fine-tuning Job","description":"Delete Reinforcement Fine-tuning Job","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/v1/accounts/{account_id}/reinforcementFineTuningJobs/{reinforcement_fine_tuning_job_id}:cancel":{"post":{"tags":["Reinforcement Fine Tuning Jobs"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"reinforcement_fine_tuning_job_id","in":"path","description":"The Reinforcement Fine-tuning Job Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/reinforcementFineTuningJobs/{reinforcement_fine_tuning_job_id}:cancel"},"summary":"Cancel Reinforcement Fine-tuning Job","description":"Cancel Reinforcement Fine-tuning Job","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/v1/accounts/{account_id}/reinforcementFineTuningJobs/{reinforcement_fine_tuning_job_id}:debug":{"post":{"tags":["Reinforcement Fine Tuning Jobs"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"reinforcement_fine_tuning_job_id","in":"path","description":"The Reinforcement Fine-tuning Job Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/reinforcementFineTuningJobs/{reinforcement_fine_tuning_job_id}:debug"},"summary":"Debug Reinforcement Fine-tuning Job","description":"Debug Reinforcement Fine-tuning Job","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/v1/accounts/{account_id}/reinforcementFineTuningJobs/{reinforcement_fine_tuning_job_id}:getMetricsFileEndpoint":{"get":{"tags":["Reinforcement Fine Tuning Jobs"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"reinforcement_fine_tuning_job_id","in":"path","description":"The Reinforcement Fine-tuning Job Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/reinforcementFineTuningJobs/{reinforcement_fine_tuning_job_id}:getMetricsFileEndpoint"},"summary":"Gateway_GetReinforcementFineTuningJobMetricsFileEndpoint","description":"Gateway_GetReinforcementFineTuningJobMetricsFileEndpoint","security":[{"bearerAuth":[]}]}},"/v1/accounts/{account_id}/reinforcementFineTuningJobs/{reinforcement_fine_tuning_job_id}:resume":{"post":{"tags":["Reinforcement Fine Tuning Jobs"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"reinforcement_fine_tuning_job_id","in":"path","description":"The Reinforcement Fine-tuning Job Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/reinforcementFineTuningJobs/{reinforcement_fine_tuning_job_id}:resume"},"summary":"Resume Reinforcement Fine-tuning Job","description":"Resume Reinforcement Fine-tuning Job","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/v1/accounts/{account_id}/rlorTrainerJobs":{"get":{"tags":["Fine-Tuning"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"pageSize","in":"query","description":"The maximum number of fine-tuning jobs to return. The maximum page_size is 200,\nvalues above 200 will be coerced to 200.\nIf unspecified, the default is 50.","required":false,"schema":{"type":"integer","example":""}},{"name":"pageToken","in":"query","description":"A page token, received from a previous ListRlorTuningJobs call. Provide this\nto retrieve the subsequent page. When paginating, all other parameters\nprovided to ListRlorTuningJobs must match the call that provided the page\ntoken.","required":false,"schema":{"type":"string","example":""}},{"name":"filter","in":"query","description":"Filter criteria for the returned jobs. See https://google.aip.dev/160 for the filter syntax specification.","required":false,"schema":{"type":"string","example":""}},{"name":"orderBy","in":"query","description":"A comma-separated list of fields to order by. e.g. \"foo,bar\"\nThe default sort order is ascending. To specify a descending order for a\nfield, append a \" desc\" suffix. e.g. \"foo desc,bar\"\nSubfields are specified with a \".\" character. e.g. \"foo.bar\"\nIf not specified, the default order is by \"name\".","required":false,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}},{"name":"includeArchived","in":"query","description":"If true, include archived (post-delete retention) jobs in the response.\nArchived jobs are inert (no resources running, no further billing) but\ntheir checkpoints remain promotable until the retention window expires.\nDefault false matches the customer-facing list semantics — archived jobs\nare hidden unless explicitly requested.","required":false,"schema":{"type":"boolean","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/rlorTrainerJobs"},"summary":"List Reinforcement Fine-tuning Steps","description":"List Reinforcement Fine-tuning Steps","security":[{"bearerAuth":[]}]},"post":{"tags":["Fine-Tuning"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"rlorTrainerJobId","in":"query","description":"ID of the RLOR trainer job, a random UUID will be generated if not specified.","required":false,"schema":{"type":"string","example":""}},{"name":"trainingShape","in":"query","description":"Optional validated training-shape selector for service-mode launches.\nAccepted formats:\n- accounts/{account}/trainingShapes/{shape}\n- accounts/{account}/trainingShapes/{shape}/versions/{version}\n- accounts/{account}/trainingShapes/{shape}/versions/latest\nWhen a shape (without /versions/*) is provided, the latest validated version is used.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/rlorTrainerJobs"},"summary":"Create Reinforcement Fine-tuning Step","description":"Create Reinforcement Fine-tuning Step","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"name"},"displayName":{"type":"string","description":"displayName"},"createTime":{"type":"string","description":"createTime"},"completedTime":{"type":"string","description":"completedTime"},"dataset":{"type":"string","description":"The name of the dataset used for training. dataset"},"evaluationDataset":{"type":"string","description":"The name of a separate dataset to use for evaluation. evaluationDataset"},"evalAutoCarveout":{"type":"boolean","description":"Whether to auto-carve the dataset for eval. evalAutoCarveout"},"state":{"type":"string","description":"JobState represents the state an asynchronous job can be in.\n\n - JOB_STATE_PAUSED: Job is paused, typically due to account suspension or manual intervention.\n - JOB_STATE_DELETED: Job has been deleted.\n - JOB_STATE_ARCHIVED: User-facing state for jobs whose row is retained post-delete (e.g. RLOR\ntrainers within the checkpoint retention window). The internal row is\nstill in JOB_STATE_DELETED; the gateway translates it to ARCHIVED on\npublic responses. state","enum":["JOB_STATE_UNSPECIFIED","JOB_STATE_CREATING","JOB_STATE_RUNNING","JOB_STATE_COMPLETED","JOB_STATE_FAILED","JOB_STATE_CANCELLED","JOB_STATE_DELETING","JOB_STATE_WRITING_RESULTS","JOB_STATE_VALIDATING","JOB_STATE_DELETING_CLEANING_UP","JOB_STATE_PENDING","JOB_STATE_EXPIRED","JOB_STATE_RE_QUEUEING","JOB_STATE_CREATING_INPUT_DATASET","JOB_STATE_IDLE","JOB_STATE_CANCELLING","JOB_STATE_EARLY_STOPPED","JOB_STATE_PAUSED","JOB_STATE_DELETED","JOB_STATE_ARCHIVED"]},"status":{"type":"object","description":"Mimics [https://github.com/googleapis/googleapis/blob/master/google/rpc/status.proto] status","properties":{"code":{"type":"string","description":"- OK: Not an error; returned on success.\n\nHTTP Mapping: 200 OK\n - CANCELLED: The operation was cancelled, typically by the caller.\n\nHTTP Mapping: 499 Client Closed Request\n - UNKNOWN: Unknown error.  For example, this error may be returned when\na `Status` value received from another address space belongs to\nan error space that is not known in this address space.  Also\nerrors raised by APIs that do not return enough error information\nmay be converted to this error.\n\nHTTP Mapping: 500 Internal Server Error\n - INVALID_ARGUMENT: The client specified an invalid argument.  Note that this differs\nfrom `FAILED_PRECONDITION`.  `INVALID_ARGUMENT` indicates arguments\nthat are problematic regardless of the state of the system\n(e.g., a malformed file name).\n\nHTTP Mapping: 400 Bad Request\n - DEADLINE_EXCEEDED: The deadline expired before the operation could complete. For operations\nthat change the state of the system, this error may be returned\neven if the operation has completed successfully.  For example, a\nsuccessful response from a server could have been delayed long\nenough for the deadline to expire.\n\nHTTP Mapping: 504 Gateway Timeout\n - NOT_FOUND: Some requested entity (e.g., file or directory) was not found.\n\nNote to server developers: if a request is denied for an entire class\nof users, such as gradual feature rollout or undocumented allowlist,\n`NOT_FOUND` may be used. If a request is denied for some users within\na class of users, such as user-based access control, `PERMISSION_DENIED`\nmust be used.\n\nHTTP Mapping: 404 Not Found\n - ALREADY_EXISTS: The entity that a client attempted to create (e.g., file or directory)\nalready exists.\n\nHTTP Mapping: 409 Conflict\n - PERMISSION_DENIED: The caller does not have permission to execute the specified\noperation. `PERMISSION_DENIED` must not be used for rejections\ncaused by exhausting some resource (use `RESOURCE_EXHAUSTED`\ninstead for those errors). `PERMISSION_DENIED` must not be\nused if the caller can not be identified (use `UNAUTHENTICATED`\ninstead for those errors). This error code does not imply the\nrequest is valid or the requested entity exists or satisfies\nother pre-conditions.\n\nHTTP Mapping: 403 Forbidden\n - UNAUTHENTICATED: The request does not have valid authentication credentials for the\noperation.\n\nHTTP Mapping: 401 Unauthorized\n - RESOURCE_EXHAUSTED: Some resource has been exhausted, perhaps a per-user quota, or\nperhaps the entire file system is out of space.\n\nHTTP Mapping: 429 Too Many Requests\n - FAILED_PRECONDITION: The operation was rejected because the system is not in a state\nrequired for the operation's execution.  For example, the directory\nto be deleted is non-empty, an rmdir operation is applied to\na non-directory, etc.\n\nService implementors can use the following guidelines to decide\nbetween `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`:\n (a) Use `UNAVAILABLE` if the client can retry just the failing call.\n (b) Use `ABORTED` if the client should retry at a higher level. For\n     example, when a client-specified test-and-set fails, indicating the\n     client should restart a read-modify-write sequence.\n (c) Use `FAILED_PRECONDITION` if the client should not retry until\n     the system state has been explicitly fixed. For example, if an \"rmdir\"\n     fails because the directory is non-empty, `FAILED_PRECONDITION`\n     should be returned since the client should not retry unless\n     the files are deleted from the directory.\n\nHTTP Mapping: 400 Bad Request\n - ABORTED: The operation was aborted, typically due to a concurrency issue such as\na sequencer check failure or transaction abort.\n\nSee the guidelines above for deciding between `FAILED_PRECONDITION`,\n`ABORTED`, and `UNAVAILABLE`.\n\nHTTP Mapping: 409 Conflict\n - OUT_OF_RANGE: The operation was attempted past the valid range.  E.g., seeking or\nreading past end-of-file.\n\nUnlike `INVALID_ARGUMENT`, this error indicates a problem that may\nbe fixed if the system state changes. For example, a 32-bit file\nsystem will generate `INVALID_ARGUMENT` if asked to read at an\noffset that is not in the range [0,2^32-1], but it will generate\n`OUT_OF_RANGE` if asked to read from an offset past the current\nfile size.\n\nThere is a fair bit of overlap between `FAILED_PRECONDITION` and\n`OUT_OF_RANGE`.  We recommend using `OUT_OF_RANGE` (the more specific\nerror) when it applies so that callers who are iterating through\na space can easily look for an `OUT_OF_RANGE` error to detect when\nthey are done.\n\nHTTP Mapping: 400 Bad Request\n - UNIMPLEMENTED: The operation is not implemented or is not supported/enabled in this\nservice.\n\nHTTP Mapping: 501 Not Implemented\n - INTERNAL: Internal errors.  This means that some invariants expected by the\nunderlying system have been broken.  This error code is reserved\nfor serious errors.\n\nHTTP Mapping: 500 Internal Server Error\n - UNAVAILABLE: The service is currently unavailable.  This is most likely a\ntransient condition, which can be corrected by retrying with\na backoff. Note that it is not always safe to retry\nnon-idempotent operations.\n\nSee the guidelines above for deciding between `FAILED_PRECONDITION`,\n`ABORTED`, and `UNAVAILABLE`.\n\nHTTP Mapping: 503 Service Unavailable\n - DATA_LOSS: Unrecoverable data loss or corruption.\n\nHTTP Mapping: 500 Internal Server Error code","enum":["OK","CANCELLED","UNKNOWN","INVALID_ARGUMENT","DEADLINE_EXCEEDED","NOT_FOUND","ALREADY_EXISTS","PERMISSION_DENIED","UNAUTHENTICATED","RESOURCE_EXHAUSTED","FAILED_PRECONDITION","ABORTED","OUT_OF_RANGE","UNIMPLEMENTED","INTERNAL","UNAVAILABLE","DATA_LOSS"]},"message":{"type":"string","description":"A developer-facing error message in English. message"}}},"createdBy":{"type":"string","description":"The email address of the user who initiated this fine-tuning job. createdBy"},"trainingConfig":{"type":"object","description":"BaseTrainingConfig contains common configuration fields shared across\ndifferent training job types. trainingConfig","properties":{"outputModel":{"type":"string","description":"The model ID to be assigned to the resulting fine-tuned model. If not specified, the job ID will be used. outputModel"},"baseModel":{"type":"string","description":"The name of the base model to be fine-tuned\nOnly one of 'base_model' or 'warm_start_from' should be specified. baseModel"},"warmStartFrom":{"type":"string","description":"The PEFT addon model in Fireworks format to be fine-tuned from\nOnly one of 'base_model' or 'warm_start_from' should be specified. warmStartFrom"},"jinjaTemplate":{"type":"string","description":"Deprecated: literal Jinja templates are not supported by Training V2.\nConversation rendering is selected from the base model's registered\nrenderer configuration instead. jinjaTemplate"},"learningRate":{"type":"number","description":"The learning rate used for training. learningRate"},"maxContextLength":{"type":"integer","description":"The maximum context length to use with the model. maxContextLength"},"loraRank":{"type":"integer","description":"The rank of the LoRA layers. loraRank"},"epochs":{"type":"integer","description":"The number of epochs to train for. epochs"},"batchSize":{"type":"integer","description":"Deprecated: legacy V1 token budget. Training V2 batches by samples via\nbatch_size_samples. batchSize"},"gradientAccumulationSteps":{"type":"integer","description":"Deprecated: legacy V1 gradient accumulation. Training V2 batches by\nsamples via batch_size_samples and rejects this field when set. gradientAccumulationSteps"}}},"rewardWeights":{"type":"array","description":"A list of reward metrics to use for training in format of \"<reward_name>=<weight>\". rewardWeights","items":{"type":"string"}},"wandbConfig":{"type":"object","description":"WandbConfig is the configuration for the Weights & Biases (wandb) logging which\nwill be used by a training job. wandbConfig","properties":{"enabled":{"type":"boolean","description":"Whether to enable wandb logging. enabled"},"apiKey":{"type":"string","description":"The API key for the wandb service. apiKey"},"project":{"type":"string","description":"The project name for the wandb service. project"},"entity":{"type":"string","description":"The entity name for the wandb service. entity"},"runId":{"type":"string","description":"The run ID for the wandb service. runId"},"url":{"type":"string","description":"The URL for the wandb service. url"}}},"awsS3Config":{"type":"object","description":"AwsS3Config is the configuration for AWS S3 dataset access which\nwill be used by a training job. awsS3Config","properties":{"credentialsSecret":{"type":"string","description":"Reference to a Secret resource containing AWS access key credentials.\nFormat: accounts/{account_id}/secrets/{secret_id}\nThe secret value must be JSON: {\"aws_access_key_id\": \"AKIA...\", \"aws_secret_access_key\": \"...\"} credentialsSecret"},"iamRoleArn":{"type":"string","description":"IAM role ARN to assume for accessing S3 datasets via GCP OIDC federation.\nFormat: arn:aws:iam::account-id:role/role-name iamRoleArn"}}},"azureBlobStorageConfig":{"type":"object","description":"AzureBlobStorageConfig is the configuration for Azure Blob Storage dataset access\nwhich will be used by a training job. azureBlobStorageConfig","properties":{"credentialsSecret":{"type":"string","description":"Reference to a Secret resource containing Azure credentials.\nFormat: accounts/{account_id}/secrets/{secret_id}\nThe secret value must be JSON: {\"connection_string\": \"...\"} or {\"sas_token\": \"...\"} or {\"account_key\": \"...\"}\nMutually exclusive with managed_identity_client_id. credentialsSecret"},"managedIdentityClientId":{"type":"string","description":"Managed Identity Client ID for GCP-to-Azure Workload Identity Federation.\nFormat: uuid\nMutually exclusive with credentials_secret. managedIdentityClientId"},"tenantId":{"type":"string","description":"Azure tenant ID for Workload Identity Federation.\nFormat: uuid tenantId"}}},"jobProgress":{"type":"object","description":"Progress of a job, e.g. RLOR, EVJ, BIJ etc. jobProgress","properties":{"percent":{"type":"integer","description":"Progress percent, within the range from 0 to 100. percent"},"epoch":{"type":"integer","description":"The epoch for which the progress percent is reported, usually starting from 0.\nThis is optional for jobs that don't run in an epoch fasion, e.g. BIJ, EVJ. epoch"},"totalInputRequests":{"type":"integer","description":"Total number of input requests/rows in the job. totalInputRequests"},"totalProcessedRequests":{"type":"integer","description":"Total number of requests that have been processed (successfully or failed). totalProcessedRequests"},"successfullyProcessedRequests":{"type":"integer","description":"Number of requests that were processed successfully. successfullyProcessedRequests"},"failedRequests":{"type":"integer","description":"Number of requests that failed to process. failedRequests"},"outputRows":{"type":"integer","description":"Number of output rows generated. outputRows"},"inputTokens":{"type":"integer","description":"Total number of input tokens processed. inputTokens"},"outputTokens":{"type":"integer","description":"Total number of output tokens generated. outputTokens"},"cachedInputTokenCount":{"type":"integer","description":"The number of input tokens that hit the prompt cache. cachedInputTokenCount"}}},"keepAlive":{"type":"boolean","description":"indicates this RLOR trainer job should run in keep-alive mode keepAlive"},"rolloutDeploymentName":{"type":"string","description":"Rollout deployment name associated with this RLOR trainer job.\nThis is optional. If not set, trainer will not trigger weight sync to rollout engine. rolloutDeploymentName"},"lossConfig":{"type":"object","description":"Loss method + hyperparameters for reinforcement-learning-style fine-tuning (e.g. RFT / RL trainers).\nFor preference jobs (DPO API), the default loss method is GRPO when METHOD_UNSPECIFIED. lossConfig","properties":{"method":{"type":"string","description":"- METHOD_UNSPECIFIED: Defaults to GRPO\n - GRPO: Group Relative Policy Optimization (default for preference jobs)\n - DAPO: Decoupled Alignment Preference Optimization\n - DPO: Direct Preference Optimization\n - ORPO: Odds Ratio Preference Optimization (reference-free)\n - GSPO_TOKEN: Group Sequence Policy Optimization (token-level) method","enum":["METHOD_UNSPECIFIED","GRPO","DAPO","DPO","ORPO","GSPO_TOKEN"]},"klBeta":{"type":"number","description":"KL coefficient (beta) override for GRPO-like methods.\nIf unset, the trainer default is used. klBeta"},"dpo":{"type":"object","description":"Hyperparameters for Direct Preference Optimization (DPO) training. dpo"},"orpo":{"type":"object","description":"Hyperparameters for Odds Ratio Preference Optimization (ORPO) training. orpo"}}},"nodeCount":{"type":"integer","description":"The number of nodes to use for the fine-tuning job.\nIf not specified, the default is 1. nodeCount"},"acceleratorSeconds":{"type":"object","description":"Accelerator seconds used by the job, keyed by accelerator type (e.g., \"NVIDIA_H100_80GB\").\nUpdated periodically. acceleratorSeconds"},"serviceMode":{"type":"boolean","description":"Whether to deploy as a service with tinker-style api endpoints exposure serviceMode"},"directRouteHandle":{"type":"string","description":"Only valid when service_mode enabled\nThe direct route handle for the trainer in service mode (tinker api) directRouteHandle"},"hotLoadDeploymentId":{"type":"string","description":"The deployment ID used for hot loading. When set, checkpoints are saved\nto this deployment's hot load bucket, enabling weight swaps on inference.\nOnly valid for service-mode or keep-alive jobs. hotLoadDeploymentId"},"purpose":{"type":"string","description":"Scheduling purpose for training jobs and deployments. purpose","enum":["PURPOSE_UNSPECIFIED","PURPOSE_PILOT"]},"forwardOnly":{"type":"boolean","description":"When true, run the trainer in forward-only mode (no backward/optimizer).\nUsed for reference models in GRPO that only need forward passes. forwardOnly"},"managedBy":{"type":"string","description":"For managed service use only. Users do not need to set this field. managedBy"},"trainerReplicaCount":{"type":"integer","description":"Data-parallel replica count for service-mode trainers. When unset or 0,\ndefaults to 1. Values greater than 1 launch replicated HSDP training. trainerReplicaCount"},"inactivityTimeout":{"type":"string","description":"Trainer inactivity timeout. The trainer reports tracked activity,\nincluding trainer API operations and active-session heartbeats. If no\ntracked activity is observed for this duration, the trainer is\nautomatically stopped. When unset or 0, defaults to 60 minutes. Set\ndisable_inactivity_cleanup to true to disable automatic cleanup. GPU usage\ncontinues to accrue while the trainer is running. inactivityTimeout"},"disableInactivityCleanup":{"type":"boolean","description":"Disable trainer inactivity cleanup. When true, the trainer is not\nautomatically stopped due to inactivity. GPU usage continues to accrue while\nthe trainer is running. disableInactivityCleanup"},"encryptionState":{"type":"string","description":"EncryptionState is the authoritative, per-resource CMEK marker: the single\nsource of truth for whether a resource's customer-data artifacts are\nencrypted. It is stamped at resource creation from the owning account's CMEK\nconfig and is immutable for the resource's life, so a resource always reads\nback with the state it was created under regardless of the account's current\nflag. The encrypt-on-write / decrypt-on-read decision for the resource's\ndata keys off this field.\n\n - ENCRYPTION_STATE_UNSPECIFIED: Unstamped/legacy rows that predate CMEK. Treated as PLAINTEXT.\n - ENCRYPTION_STATE_PLAINTEXT: Customer-data artifacts are stored as plaintext (Fireworks-owned, no CMEK).\n - ENCRYPTION_STATE_CMEK: Customer-data artifacts are CMEK-encrypted; reads MUST decrypt (fail-closed). encryptionState","enum":["ENCRYPTION_STATE_UNSPECIFIED","ENCRYPTION_STATE_PLAINTEXT","ENCRYPTION_STATE_CMEK"]}}},"example":{"name":"","displayName":"","createTime":"","completedTime":"","dataset":"","evaluationDataset":"","evalAutoCarveout":"","state":"","status":{},"createdBy":"","trainingConfig":{},"rewardWeights":[],"wandbConfig":{},"awsS3Config":{},"azureBlobStorageConfig":{},"jobProgress":{},"keepAlive":"","rolloutDeploymentName":"","lossConfig":{},"nodeCount":"","acceleratorSeconds":{},"serviceMode":"","directRouteHandle":"","hotLoadDeploymentId":"","purpose":"","forwardOnly":"","managedBy":"","trainerReplicaCount":"","inactivityTimeout":"","disableInactivityCleanup":"","encryptionState":""}}}}}},"/v1/accounts/{account_id}/rlorTrainerJobs/{rlor_trainer_job_id}":{"get":{"tags":["Fine-Tuning"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"rlor_trainer_job_id","in":"path","description":"The Rlor Trainer Job Id","required":true,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/rlorTrainerJobs/{rlor_trainer_job_id}"},"summary":"Get Reinforcement Fine-tuning Step","description":"Get Reinforcement Fine-tuning Step","security":[{"bearerAuth":[]}]},"delete":{"tags":["Fine-Tuning"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"rlor_trainer_job_id","in":"path","description":"The Rlor Trainer Job Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/rlorTrainerJobs/{rlor_trainer_job_id}"},"summary":"Delete Reinforcement Fine-tuning Step","description":"Delete Reinforcement Fine-tuning Step","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/v1/accounts/{account_id}/rlorTrainerJobs/{rlor_trainer_job_id}/checkpoints":{"get":{"tags":["Checkpoints"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"rlor_trainer_job_id","in":"path","description":"The Rlor Trainer Job Id","required":true,"schema":{"type":"string","example":""}},{"name":"pageSize","in":"query","description":"Maximum number of checkpoints to return. Default is 50, max is 200.","required":false,"schema":{"type":"integer","example":""}},{"name":"pageToken","in":"query","description":"Page token from a previous call.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/rlorTrainerJobs/{rlor_trainer_job_id}/checkpoints"},"summary":"List checkpoints for an RLOR Trainer Job","description":"List checkpoints for an RLOR Trainer Job","security":[{"bearerAuth":[]}]}},"/v1/accounts/{account_id}/rlorTrainerJobs/{rlor_trainer_job_id}/checkpoints/{checkpoint_id}:sync":{"post":{"tags":["Checkpoints"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"rlor_trainer_job_id","in":"path","description":"The Rlor Trainer Job Id","required":true,"schema":{"type":"string","example":""}},{"name":"checkpoint_id","in":"path","description":"The Checkpoint Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/rlorTrainerJobs/{rlor_trainer_job_id}/checkpoints/{checkpoint_id}:sync"},"summary":"Ensure an RLOR training checkpoint is present in the requested storage\navailability class. By default this copies a single-region runtime\ncheckpoint into managed durable storage. Set\nrequest.target_availability=SINGLE_REGION to stage a durable checkpoint\ninto request.region before restoring there.","description":"Ensure an RLOR training checkpoint is present in the requested storage\navailability class. By default this copies a single-region runtime\ncheckpoint into managed durable storage. Set\nrequest.target_availability=SINGLE_REGION to stage a durable checkpoint\ninto request.region before restoring there.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"region":{"type":"string","description":"region","enum":["REGION_UNSPECIFIED","US_IOWA_1","US_VIRGINIA_1","US_VIRGINIA_2","US_ILLINOIS_1","AP_TOKYO_1","US_ARIZONA_1","US_TEXAS_1","US_ILLINOIS_2","EU_FRANKFURT_1","US_TEXAS_2","EU_ICELAND_1","EU_ICELAND_2","US_WASHINGTON_1","US_WASHINGTON_2","US_WASHINGTON_3","AP_TOKYO_2","US_CALIFORNIA_1","US_UTAH_1","US_ARIZONA_3","US_GEORGIA_1","US_GEORGIA_2","US_WASHINGTON_4","US_GEORGIA_3","NA_BRITISHCOLUMBIA_1","US_GEORGIA_4","US_OHIO_1","US_NEWYORK_1","EU_NETHERLANDS_1","US_WASHINGTON_5","US_MINNESOTA_1","US_CALIFORNIA_2","NA_BRITISHCOLUMBIA_2","AP_MALAYSIA_2","US_OREGON_1","NA_BRITISHCOLUMBIA_3","AP_NEWSOUTHWALES_1"]},"targetAvailability":{"type":"string","description":"- SINGLE_REGION: Stored in one Fireworks runtime region. Optimized for low-latency\nhotload and reattach, but not highly available across regions.\n - MANAGED_DURABLE: Stored in Fireworks-managed durable storage for restore/export workflows. targetAvailability","enum":["AVAILABILITY_CLASS_UNSPECIFIED","SINGLE_REGION","MANAGED_DURABLE"]}}},"example":{"region":"","targetAvailability":""}}}}}},"/v1/accounts/{account_id}/rlorTrainerJobs/{rlor_trainer_job_id}/publicLogs":{"get":{"tags":["Public Logs"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"rlor_trainer_job_id","in":"path","description":"The Rlor Trainer Job Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/rlorTrainerJobs/{rlor_trainer_job_id}/publicLogs"},"summary":"Get a signed URL for the public trainer logs of an RLOR Trainer Job.","description":"Get a signed URL for the public trainer logs of an RLOR Trainer Job.","security":[{"bearerAuth":[]}]}},"/v1/accounts/{account_id}/rlorTrainerJobs/{rlor_trainer_job_id}:cancel":{"post":{"tags":["Fine-Tuning"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"rlor_trainer_job_id","in":"path","description":"The Rlor Trainer Job Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/rlorTrainerJobs/{rlor_trainer_job_id}:cancel"},"summary":"Cancel Rlor Trainer Job","description":"Cancel Rlor Trainer Job","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/v1/accounts/{account_id}/rlorTrainerJobs/{rlor_trainer_job_id}:resume":{"post":{"tags":["Fine-Tuning"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"rlor_trainer_job_id","in":"path","description":"The Rlor Trainer Job Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/rlorTrainerJobs/{rlor_trainer_job_id}:resume"},"summary":"Resume Rlor Trainer Job","description":"Resume Rlor Trainer Job","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/v1/accounts/{account_id}/routers":{"get":{"tags":["Routers"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"pageSize","in":"query","description":"The maximum number of routers to return. The maximum page_size is 200,\nvalues above 200 will be coerced to 200.\nIf unspecified, the default is 50.","required":false,"schema":{"type":"integer","example":""}},{"name":"pageToken","in":"query","description":"A page token, received from a previous ListRouters call. Provide this\nto retrieve the subsequent page. When paginating, all other parameters\nprovided to ListRouters must match the call that provided the page\ntoken.","required":false,"schema":{"type":"string","example":""}},{"name":"filter","in":"query","description":"Filter criteria for the returned routers. See https://google.aip.dev/160 for the filter syntax specification.","required":false,"schema":{"type":"string","example":""}},{"name":"orderBy","in":"query","description":"A comma-separated list of fields to order by. e.g. \"foo,bar\"\nThe default sort order is ascending. To specify a descending order for a\nfield, append a \" desc\" suffix. e.g. \"foo desc,bar\"\nSubfields are specified with a \".\" character. e.g. \"foo.bar\"\nIf not specified, the default order is by \"name\".","required":false,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/routers"},"summary":"List Routers","description":"List Routers","security":[{"bearerAuth":[]}]},"post":{"tags":["Routers"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"routerId","in":"query","description":"ID of the router.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/routers"},"summary":"Create Router","description":"Create Router","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"name"},"displayName":{"type":"string","description":"displayName"},"createTime":{"type":"string","description":"createTime"},"createdBy":{"type":"string","description":"createdBy"},"state":{"type":"string","description":"- CREATING: The router is being created.\n - READY: The router is ready for access.\n - UPDATING: There are in-progress updates happening with the router.\n - DELETING: The router is being deleted. state","enum":["STATE_UNSPECIFIED","CREATING","READY","UPDATING","DELETING"]},"status":{"type":"object","description":"Mimics [https://github.com/googleapis/googleapis/blob/master/google/rpc/status.proto] status","properties":{"code":{"type":"string","description":"- OK: Not an error; returned on success.\n\nHTTP Mapping: 200 OK\n - CANCELLED: The operation was cancelled, typically by the caller.\n\nHTTP Mapping: 499 Client Closed Request\n - UNKNOWN: Unknown error.  For example, this error may be returned when\na `Status` value received from another address space belongs to\nan error space that is not known in this address space.  Also\nerrors raised by APIs that do not return enough error information\nmay be converted to this error.\n\nHTTP Mapping: 500 Internal Server Error\n - INVALID_ARGUMENT: The client specified an invalid argument.  Note that this differs\nfrom `FAILED_PRECONDITION`.  `INVALID_ARGUMENT` indicates arguments\nthat are problematic regardless of the state of the system\n(e.g., a malformed file name).\n\nHTTP Mapping: 400 Bad Request\n - DEADLINE_EXCEEDED: The deadline expired before the operation could complete. For operations\nthat change the state of the system, this error may be returned\neven if the operation has completed successfully.  For example, a\nsuccessful response from a server could have been delayed long\nenough for the deadline to expire.\n\nHTTP Mapping: 504 Gateway Timeout\n - NOT_FOUND: Some requested entity (e.g., file or directory) was not found.\n\nNote to server developers: if a request is denied for an entire class\nof users, such as gradual feature rollout or undocumented allowlist,\n`NOT_FOUND` may be used. If a request is denied for some users within\na class of users, such as user-based access control, `PERMISSION_DENIED`\nmust be used.\n\nHTTP Mapping: 404 Not Found\n - ALREADY_EXISTS: The entity that a client attempted to create (e.g., file or directory)\nalready exists.\n\nHTTP Mapping: 409 Conflict\n - PERMISSION_DENIED: The caller does not have permission to execute the specified\noperation. `PERMISSION_DENIED` must not be used for rejections\ncaused by exhausting some resource (use `RESOURCE_EXHAUSTED`\ninstead for those errors). `PERMISSION_DENIED` must not be\nused if the caller can not be identified (use `UNAUTHENTICATED`\ninstead for those errors). This error code does not imply the\nrequest is valid or the requested entity exists or satisfies\nother pre-conditions.\n\nHTTP Mapping: 403 Forbidden\n - UNAUTHENTICATED: The request does not have valid authentication credentials for the\noperation.\n\nHTTP Mapping: 401 Unauthorized\n - RESOURCE_EXHAUSTED: Some resource has been exhausted, perhaps a per-user quota, or\nperhaps the entire file system is out of space.\n\nHTTP Mapping: 429 Too Many Requests\n - FAILED_PRECONDITION: The operation was rejected because the system is not in a state\nrequired for the operation's execution.  For example, the directory\nto be deleted is non-empty, an rmdir operation is applied to\na non-directory, etc.\n\nService implementors can use the following guidelines to decide\nbetween `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`:\n (a) Use `UNAVAILABLE` if the client can retry just the failing call.\n (b) Use `ABORTED` if the client should retry at a higher level. For\n     example, when a client-specified test-and-set fails, indicating the\n     client should restart a read-modify-write sequence.\n (c) Use `FAILED_PRECONDITION` if the client should not retry until\n     the system state has been explicitly fixed. For example, if an \"rmdir\"\n     fails because the directory is non-empty, `FAILED_PRECONDITION`\n     should be returned since the client should not retry unless\n     the files are deleted from the directory.\n\nHTTP Mapping: 400 Bad Request\n - ABORTED: The operation was aborted, typically due to a concurrency issue such as\na sequencer check failure or transaction abort.\n\nSee the guidelines above for deciding between `FAILED_PRECONDITION`,\n`ABORTED`, and `UNAVAILABLE`.\n\nHTTP Mapping: 409 Conflict\n - OUT_OF_RANGE: The operation was attempted past the valid range.  E.g., seeking or\nreading past end-of-file.\n\nUnlike `INVALID_ARGUMENT`, this error indicates a problem that may\nbe fixed if the system state changes. For example, a 32-bit file\nsystem will generate `INVALID_ARGUMENT` if asked to read at an\noffset that is not in the range [0,2^32-1], but it will generate\n`OUT_OF_RANGE` if asked to read from an offset past the current\nfile size.\n\nThere is a fair bit of overlap between `FAILED_PRECONDITION` and\n`OUT_OF_RANGE`.  We recommend using `OUT_OF_RANGE` (the more specific\nerror) when it applies so that callers who are iterating through\na space can easily look for an `OUT_OF_RANGE` error to detect when\nthey are done.\n\nHTTP Mapping: 400 Bad Request\n - UNIMPLEMENTED: The operation is not implemented or is not supported/enabled in this\nservice.\n\nHTTP Mapping: 501 Not Implemented\n - INTERNAL: Internal errors.  This means that some invariants expected by the\nunderlying system have been broken.  This error code is reserved\nfor serious errors.\n\nHTTP Mapping: 500 Internal Server Error\n - UNAVAILABLE: The service is currently unavailable.  This is most likely a\ntransient condition, which can be corrected by retrying with\na backoff. Note that it is not always safe to retry\nnon-idempotent operations.\n\nSee the guidelines above for deciding between `FAILED_PRECONDITION`,\n`ABORTED`, and `UNAVAILABLE`.\n\nHTTP Mapping: 503 Service Unavailable\n - DATA_LOSS: Unrecoverable data loss or corruption.\n\nHTTP Mapping: 500 Internal Server Error code","enum":["OK","CANCELLED","UNKNOWN","INVALID_ARGUMENT","DEADLINE_EXCEEDED","NOT_FOUND","ALREADY_EXISTS","PERMISSION_DENIED","UNAUTHENTICATED","RESOURCE_EXHAUSTED","FAILED_PRECONDITION","ABORTED","OUT_OF_RANGE","UNIMPLEMENTED","INTERNAL","UNAVAILABLE","DATA_LOSS"]},"message":{"type":"string","description":"A developer-facing error message in English. message"}}},"deployments":{"type":"array","description":"The deployment names to be covered by the router. deployments","items":{"type":"string"}},"model":{"type":"string","description":"The model name to route requests to.\nmodel is only applicable to single-region deployments.\nFor multi-region deployments, model must be empty. model"},"weightedRandom":{"type":"object","description":"Use replica count as weight. weightedRandom"},"evenLoad":{"type":"object","description":"Dynamically adjust traffic allocation to balance the load per replica across\nthe deployments as much as possible. evenLoad"},"aliases":{"type":"array","description":"Aliases for the router. These are the alias names that can be used to\nroute requests through the router.\nBy default, these aliases are generated by the system.\nExamples:\n  \"accounts/foo/deployments/my-deployment\" or \"foo/my-deployment\"\n  \"accounts/foo/routers/my-router\"\n  \"accounts/foo/models/my-base-model\" - only if this is the first deployment using this model aliases","items":{"type":"string"}},"autoGenerated":{"type":"boolean","description":"auto_generated indicates this router was generated by the system for a deployment.\nAuto-generated routers cannot be updated or deleted by the user. autoGenerated"},"public":{"type":"boolean","description":"True if the router is public (any account can query the underlying workload), false if the router is private\n(only the account that owns the router can query the underlying workload). public"}}},"example":{"name":"","displayName":"","createTime":"","createdBy":"","state":"","status":{},"deployments":[],"model":"","weightedRandom":{},"evenLoad":{},"aliases":[],"autoGenerated":"","public":""}}}}}},"/v1/accounts/{account_id}/routers/{router_id}":{"get":{"tags":["Routers"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"router_id","in":"path","description":"The Router Id","required":true,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/routers/{router_id}"},"summary":"CRUD APIs for routers.\nGet Router","description":"CRUD APIs for routers.\nGet Router","security":[{"bearerAuth":[]}]},"patch":{"tags":["Routers"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"router_id","in":"path","description":"The Router Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/routers/{router_id}"},"summary":"Update Router","description":"Update Router","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"displayName":{"type":"string","description":"displayName"},"createTime":{"type":"string","description":"createTime"},"createdBy":{"type":"string","description":"createdBy"},"state":{"type":"string","description":"- CREATING: The router is being created.\n - READY: The router is ready for access.\n - UPDATING: There are in-progress updates happening with the router.\n - DELETING: The router is being deleted. state","enum":["STATE_UNSPECIFIED","CREATING","READY","UPDATING","DELETING"]},"status":{"type":"object","description":"Mimics [https://github.com/googleapis/googleapis/blob/master/google/rpc/status.proto] status","properties":{"code":{"type":"string","description":"- OK: Not an error; returned on success.\n\nHTTP Mapping: 200 OK\n - CANCELLED: The operation was cancelled, typically by the caller.\n\nHTTP Mapping: 499 Client Closed Request\n - UNKNOWN: Unknown error.  For example, this error may be returned when\na `Status` value received from another address space belongs to\nan error space that is not known in this address space.  Also\nerrors raised by APIs that do not return enough error information\nmay be converted to this error.\n\nHTTP Mapping: 500 Internal Server Error\n - INVALID_ARGUMENT: The client specified an invalid argument.  Note that this differs\nfrom `FAILED_PRECONDITION`.  `INVALID_ARGUMENT` indicates arguments\nthat are problematic regardless of the state of the system\n(e.g., a malformed file name).\n\nHTTP Mapping: 400 Bad Request\n - DEADLINE_EXCEEDED: The deadline expired before the operation could complete. For operations\nthat change the state of the system, this error may be returned\neven if the operation has completed successfully.  For example, a\nsuccessful response from a server could have been delayed long\nenough for the deadline to expire.\n\nHTTP Mapping: 504 Gateway Timeout\n - NOT_FOUND: Some requested entity (e.g., file or directory) was not found.\n\nNote to server developers: if a request is denied for an entire class\nof users, such as gradual feature rollout or undocumented allowlist,\n`NOT_FOUND` may be used. If a request is denied for some users within\na class of users, such as user-based access control, `PERMISSION_DENIED`\nmust be used.\n\nHTTP Mapping: 404 Not Found\n - ALREADY_EXISTS: The entity that a client attempted to create (e.g., file or directory)\nalready exists.\n\nHTTP Mapping: 409 Conflict\n - PERMISSION_DENIED: The caller does not have permission to execute the specified\noperation. `PERMISSION_DENIED` must not be used for rejections\ncaused by exhausting some resource (use `RESOURCE_EXHAUSTED`\ninstead for those errors). `PERMISSION_DENIED` must not be\nused if the caller can not be identified (use `UNAUTHENTICATED`\ninstead for those errors). This error code does not imply the\nrequest is valid or the requested entity exists or satisfies\nother pre-conditions.\n\nHTTP Mapping: 403 Forbidden\n - UNAUTHENTICATED: The request does not have valid authentication credentials for the\noperation.\n\nHTTP Mapping: 401 Unauthorized\n - RESOURCE_EXHAUSTED: Some resource has been exhausted, perhaps a per-user quota, or\nperhaps the entire file system is out of space.\n\nHTTP Mapping: 429 Too Many Requests\n - FAILED_PRECONDITION: The operation was rejected because the system is not in a state\nrequired for the operation's execution.  For example, the directory\nto be deleted is non-empty, an rmdir operation is applied to\na non-directory, etc.\n\nService implementors can use the following guidelines to decide\nbetween `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`:\n (a) Use `UNAVAILABLE` if the client can retry just the failing call.\n (b) Use `ABORTED` if the client should retry at a higher level. For\n     example, when a client-specified test-and-set fails, indicating the\n     client should restart a read-modify-write sequence.\n (c) Use `FAILED_PRECONDITION` if the client should not retry until\n     the system state has been explicitly fixed. For example, if an \"rmdir\"\n     fails because the directory is non-empty, `FAILED_PRECONDITION`\n     should be returned since the client should not retry unless\n     the files are deleted from the directory.\n\nHTTP Mapping: 400 Bad Request\n - ABORTED: The operation was aborted, typically due to a concurrency issue such as\na sequencer check failure or transaction abort.\n\nSee the guidelines above for deciding between `FAILED_PRECONDITION`,\n`ABORTED`, and `UNAVAILABLE`.\n\nHTTP Mapping: 409 Conflict\n - OUT_OF_RANGE: The operation was attempted past the valid range.  E.g., seeking or\nreading past end-of-file.\n\nUnlike `INVALID_ARGUMENT`, this error indicates a problem that may\nbe fixed if the system state changes. For example, a 32-bit file\nsystem will generate `INVALID_ARGUMENT` if asked to read at an\noffset that is not in the range [0,2^32-1], but it will generate\n`OUT_OF_RANGE` if asked to read from an offset past the current\nfile size.\n\nThere is a fair bit of overlap between `FAILED_PRECONDITION` and\n`OUT_OF_RANGE`.  We recommend using `OUT_OF_RANGE` (the more specific\nerror) when it applies so that callers who are iterating through\na space can easily look for an `OUT_OF_RANGE` error to detect when\nthey are done.\n\nHTTP Mapping: 400 Bad Request\n - UNIMPLEMENTED: The operation is not implemented or is not supported/enabled in this\nservice.\n\nHTTP Mapping: 501 Not Implemented\n - INTERNAL: Internal errors.  This means that some invariants expected by the\nunderlying system have been broken.  This error code is reserved\nfor serious errors.\n\nHTTP Mapping: 500 Internal Server Error\n - UNAVAILABLE: The service is currently unavailable.  This is most likely a\ntransient condition, which can be corrected by retrying with\na backoff. Note that it is not always safe to retry\nnon-idempotent operations.\n\nSee the guidelines above for deciding between `FAILED_PRECONDITION`,\n`ABORTED`, and `UNAVAILABLE`.\n\nHTTP Mapping: 503 Service Unavailable\n - DATA_LOSS: Unrecoverable data loss or corruption.\n\nHTTP Mapping: 500 Internal Server Error code","enum":["OK","CANCELLED","UNKNOWN","INVALID_ARGUMENT","DEADLINE_EXCEEDED","NOT_FOUND","ALREADY_EXISTS","PERMISSION_DENIED","UNAUTHENTICATED","RESOURCE_EXHAUSTED","FAILED_PRECONDITION","ABORTED","OUT_OF_RANGE","UNIMPLEMENTED","INTERNAL","UNAVAILABLE","DATA_LOSS"]},"message":{"type":"string","description":"A developer-facing error message in English. message"}}},"deployments":{"type":"array","description":"The deployment names to be covered by the router. deployments","items":{"type":"string"}},"model":{"type":"string","description":"The model name to route requests to.\nmodel is only applicable to single-region deployments.\nFor multi-region deployments, model must be empty. model"},"weightedRandom":{"type":"object","description":"Use replica count as weight. weightedRandom"},"evenLoad":{"type":"object","description":"Dynamically adjust traffic allocation to balance the load per replica across\nthe deployments as much as possible. evenLoad"},"aliases":{"type":"array","description":"Aliases for the router. These are the alias names that can be used to\nroute requests through the router.\nBy default, these aliases are generated by the system.\nExamples:\n  \"accounts/foo/deployments/my-deployment\" or \"foo/my-deployment\"\n  \"accounts/foo/routers/my-router\"\n  \"accounts/foo/models/my-base-model\" - only if this is the first deployment using this model aliases","items":{"type":"string"}},"autoGenerated":{"type":"boolean","description":"auto_generated indicates this router was generated by the system for a deployment.\nAuto-generated routers cannot be updated or deleted by the user. autoGenerated"},"public":{"type":"boolean","description":"True if the router is public (any account can query the underlying workload), false if the router is private\n(only the account that owns the router can query the underlying workload). public"}}},"example":{"displayName":"","createTime":"","createdBy":"","state":"","status":{},"deployments":[],"model":"","weightedRandom":{},"evenLoad":{},"aliases":[],"autoGenerated":"","public":""}}}}},"delete":{"tags":["Routers"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"router_id","in":"path","description":"The Router Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/routers/{router_id}"},"summary":"Delete Router","description":"Delete Router","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/v1/accounts/{account_id}/secrets":{"get":{"tags":["Secrets"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"pageSize","in":"query","description":"pageSize","required":false,"schema":{"type":"integer","example":""}},{"name":"pageToken","in":"query","description":"pageToken","required":false,"schema":{"type":"string","example":""}},{"name":"filter","in":"query","description":"Unused but required to use existing ListRequest functionality.","required":false,"schema":{"type":"string","example":""}},{"name":"orderBy","in":"query","description":"Unused but required to use existing ListRequest functionality.","required":false,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/secrets"},"summary":"List Secrets","description":"List Secrets","security":[{"bearerAuth":[]}]},"post":{"tags":["Secrets"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/secrets"},"summary":"Gateway_CreateSecret","description":"Gateway_CreateSecret","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"name follows the convention\naccounts/account-id/secrets/unkey-key-id name","required":true},"keyName":{"type":"string","description":"name of the key. In this case, it can be WOLFRAM_ALPHA_API_KEY keyName","required":true},"value":{"type":"string","description":"The secret value. This field is INPUT_ONLY and will not be returned in GET or LIST responses\nfor security reasons. The value is only accepted when creating or updating secrets. value"}}},"example":{"name":"","keyName":"","value":"sk-1234567890abcdef"}}}}}},"/v1/accounts/{account_id}/secrets/{secret_id}":{"get":{"tags":["Secrets"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"secret_id","in":"path","description":"The Secret Id","required":true,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/secrets/{secret_id}"},"summary":"Get Secret","description":"Get Secret","security":[{"bearerAuth":[]}]},"patch":{"tags":["Secrets"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"secret_id","in":"path","description":"The Secret Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/secrets/{secret_id}"},"summary":"Gateway_UpdateSecret","description":"Gateway_UpdateSecret","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"keyName":{"type":"string","description":"name of the key. In this case, it can be WOLFRAM_ALPHA_API_KEY keyName","required":true},"value":{"type":"string","description":"The secret value. This field is INPUT_ONLY and will not be returned in GET or LIST responses\nfor security reasons. The value is only accepted when creating or updating secrets. value"}}},"example":{"keyName":"","value":"sk-1234567890abcdef"}}}}},"delete":{"tags":["Secrets"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"secret_id","in":"path","description":"The Secret Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/secrets/{secret_id}"},"summary":"Gateway_DeleteSecret","description":"Gateway_DeleteSecret","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/v1/accounts/{account_id}/serverlessModels":{"get":{"tags":["Models"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"pageSize","in":"query","description":"The maximum number of models to return. The maximum page_size is 200,\nvalues above 200 will be coerced to 200. If unspecified, the default is 50.","required":false,"schema":{"type":"integer","example":""}},{"name":"pageToken","in":"query","description":"A page token, received from a previous ListServerlessModels call.","required":false,"schema":{"type":"string","example":""}},{"name":"filter","in":"query","description":"AIP-160 filter. See https://google.aip.dev/160 for the grammar.","required":false,"schema":{"type":"string","example":""}},{"name":"orderBy","in":"query","description":"A comma-separated list of fields to order by.","required":false,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields\nwill be returned.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/serverlessModels"},"summary":"List serverless models available to the account (public catalog).","description":"List serverless models available to the account (public catalog).","security":[{"bearerAuth":[]}]}},"/v1/accounts/{account_id}/serverlessRateLimits":{"get":{"tags":["Serverless"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"deployment","in":"query","description":"If set, only return limits for this deployment resource name.","required":false,"schema":{"type":"string","example":""}},{"name":"start","in":"query","description":"Start of the time range for time series data. Defaults to 30 days before `end`.","required":false,"schema":{"type":"string","example":""}},{"name":"end","in":"query","description":"End of the time range for time series data. Defaults to the request time.","required":false,"schema":{"type":"string","example":""}},{"name":"interval","in":"query","description":"Step size for the time series: each point is the peak effective limit observed within that\nwindow. Defaults to 4 hours.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/serverlessRateLimits"},"summary":"Lists effective global rate limits for shared serverless pool deployments (fireworks-owned).\nValues reflect configured limits as observed in production monitoring.","description":"Lists effective global rate limits for shared serverless pool deployments (fireworks-owned).\nValues reflect configured limits as observed in production monitoring.","security":[{"bearerAuth":[]}]}},"/v1/accounts/{account_id}/serverlessTokenUsage":{"get":{"tags":["Usage And Quotas"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"start","in":"query","description":"Start of the time range. Defaults to 30 days before `end`.","required":false,"schema":{"type":"string","example":""}},{"name":"end","in":"query","description":"End of the time range. Defaults to the request time.","required":false,"schema":{"type":"string","example":""}},{"name":"interval","in":"query","description":"Step size for each point (peak or average TPM within each window). Defaults to 4 hours.","required":false,"schema":{"type":"string","example":""}},{"name":"includePeakTokensPerMinuteByBaseModel","in":"query","description":"Whether to include each section in the response. At least one must be true; otherwise the\nrequest fails with INVALID_ARGUMENT.","required":false,"schema":{"type":"boolean","example":""}},{"name":"includeAverageTokensPerMinuteByBaseModel","in":"query","description":"includeAverageTokensPerMinuteByBaseModel","required":false,"schema":{"type":"boolean","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/serverlessTokenUsage"},"summary":"Serverless pool token throughput (tokens per minute) by time bucket and base model, from\nproduction usage metrics.","description":"Serverless pool token throughput (tokens per minute) by time bucket and base model, from\nproduction usage metrics.","security":[{"bearerAuth":[]}]}},"/v1/accounts/{account_id}/supervisedFineTuningJobs":{"get":{"tags":["Fine-Tuning"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"pageSize","in":"query","description":"The maximum number of fine-tuning jobs to return. The maximum page_size is 200,\nvalues above 200 will be coerced to 200.\nIf unspecified, the default is 50.","required":false,"schema":{"type":"integer","example":""}},{"name":"pageToken","in":"query","description":"A page token, received from a previous ListSupervisedFineTuningJobs call. Provide this\nto retrieve the subsequent page. When paginating, all other parameters\nprovided to ListSupervisedFineTuningJobs must match the call that provided the page\ntoken.","required":false,"schema":{"type":"string","example":""}},{"name":"filter","in":"query","description":"Filter criteria for the returned jobs. See https://google.aip.dev/160 for the filter syntax specification.","required":false,"schema":{"type":"string","example":""}},{"name":"orderBy","in":"query","description":"A comma-separated list of fields to order by. e.g. \"foo,bar\"\nThe default sort order is ascending. To specify a descending order for a\nfield, append a \" desc\" suffix. e.g. \"foo desc,bar\"\nSubfields are specified with a \".\" character. e.g. \"foo.bar\"\nIf not specified, the default order is by \"name\".","required":false,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/supervisedFineTuningJobs"},"summary":"List Supervised Fine-tuning Jobs","description":"List Supervised Fine-tuning Jobs","security":[{"bearerAuth":[]}]},"post":{"tags":["Fine-Tuning"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"supervisedFineTuningJobId","in":"query","description":"ID of the supervised fine-tuning job, a random UUID will be generated if not specified.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/supervisedFineTuningJobs"},"summary":"Create Supervised Fine-tuning Job","description":"Create Supervised Fine-tuning Job","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"name"},"displayName":{"type":"string","description":"displayName"},"createTime":{"type":"string","description":"createTime"},"completedTime":{"type":"string","description":"completedTime"},"dataset":{"type":"string","description":"The name of the dataset used for training. dataset","required":true},"awsS3Config":{"type":"object","description":"AwsS3Config is the configuration for AWS S3 dataset access which\nwill be used by a training job. awsS3Config","properties":{"credentialsSecret":{"type":"string","description":"Reference to a Secret resource containing AWS access key credentials.\nFormat: accounts/{account_id}/secrets/{secret_id}\nThe secret value must be JSON: {\"aws_access_key_id\": \"AKIA...\", \"aws_secret_access_key\": \"...\"} credentialsSecret"},"iamRoleArn":{"type":"string","description":"IAM role ARN to assume for accessing S3 datasets via GCP OIDC federation.\nFormat: arn:aws:iam::account-id:role/role-name iamRoleArn"}}},"azureBlobStorageConfig":{"type":"object","description":"AzureBlobStorageConfig is the configuration for Azure Blob Storage dataset access\nwhich will be used by a training job. azureBlobStorageConfig","properties":{"credentialsSecret":{"type":"string","description":"Reference to a Secret resource containing Azure credentials.\nFormat: accounts/{account_id}/secrets/{secret_id}\nThe secret value must be JSON: {\"connection_string\": \"...\"} or {\"sas_token\": \"...\"} or {\"account_key\": \"...\"}\nMutually exclusive with managed_identity_client_id. credentialsSecret"},"managedIdentityClientId":{"type":"string","description":"Managed Identity Client ID for GCP-to-Azure Workload Identity Federation.\nFormat: uuid\nMutually exclusive with credentials_secret. managedIdentityClientId"},"tenantId":{"type":"string","description":"Azure tenant ID for Workload Identity Federation.\nFormat: uuid tenantId"}}},"state":{"type":"string","description":"JobState represents the state an asynchronous job can be in.\n\n - JOB_STATE_PAUSED: Job is paused, typically due to account suspension or manual intervention.\n - JOB_STATE_DELETED: Job has been deleted.\n - JOB_STATE_ARCHIVED: User-facing state for jobs whose row is retained post-delete (e.g. RLOR\ntrainers within the checkpoint retention window). The internal row is\nstill in JOB_STATE_DELETED; the gateway translates it to ARCHIVED on\npublic responses. state","enum":["JOB_STATE_UNSPECIFIED","JOB_STATE_CREATING","JOB_STATE_RUNNING","JOB_STATE_COMPLETED","JOB_STATE_FAILED","JOB_STATE_CANCELLED","JOB_STATE_DELETING","JOB_STATE_WRITING_RESULTS","JOB_STATE_VALIDATING","JOB_STATE_DELETING_CLEANING_UP","JOB_STATE_PENDING","JOB_STATE_EXPIRED","JOB_STATE_RE_QUEUEING","JOB_STATE_CREATING_INPUT_DATASET","JOB_STATE_IDLE","JOB_STATE_CANCELLING","JOB_STATE_EARLY_STOPPED","JOB_STATE_PAUSED","JOB_STATE_DELETED","JOB_STATE_ARCHIVED"]},"status":{"type":"object","description":"Mimics [https://github.com/googleapis/googleapis/blob/master/google/rpc/status.proto] status","properties":{"code":{"type":"string","description":"- OK: Not an error; returned on success.\n\nHTTP Mapping: 200 OK\n - CANCELLED: The operation was cancelled, typically by the caller.\n\nHTTP Mapping: 499 Client Closed Request\n - UNKNOWN: Unknown error.  For example, this error may be returned when\na `Status` value received from another address space belongs to\nan error space that is not known in this address space.  Also\nerrors raised by APIs that do not return enough error information\nmay be converted to this error.\n\nHTTP Mapping: 500 Internal Server Error\n - INVALID_ARGUMENT: The client specified an invalid argument.  Note that this differs\nfrom `FAILED_PRECONDITION`.  `INVALID_ARGUMENT` indicates arguments\nthat are problematic regardless of the state of the system\n(e.g., a malformed file name).\n\nHTTP Mapping: 400 Bad Request\n - DEADLINE_EXCEEDED: The deadline expired before the operation could complete. For operations\nthat change the state of the system, this error may be returned\neven if the operation has completed successfully.  For example, a\nsuccessful response from a server could have been delayed long\nenough for the deadline to expire.\n\nHTTP Mapping: 504 Gateway Timeout\n - NOT_FOUND: Some requested entity (e.g., file or directory) was not found.\n\nNote to server developers: if a request is denied for an entire class\nof users, such as gradual feature rollout or undocumented allowlist,\n`NOT_FOUND` may be used. If a request is denied for some users within\na class of users, such as user-based access control, `PERMISSION_DENIED`\nmust be used.\n\nHTTP Mapping: 404 Not Found\n - ALREADY_EXISTS: The entity that a client attempted to create (e.g., file or directory)\nalready exists.\n\nHTTP Mapping: 409 Conflict\n - PERMISSION_DENIED: The caller does not have permission to execute the specified\noperation. `PERMISSION_DENIED` must not be used for rejections\ncaused by exhausting some resource (use `RESOURCE_EXHAUSTED`\ninstead for those errors). `PERMISSION_DENIED` must not be\nused if the caller can not be identified (use `UNAUTHENTICATED`\ninstead for those errors). This error code does not imply the\nrequest is valid or the requested entity exists or satisfies\nother pre-conditions.\n\nHTTP Mapping: 403 Forbidden\n - UNAUTHENTICATED: The request does not have valid authentication credentials for the\noperation.\n\nHTTP Mapping: 401 Unauthorized\n - RESOURCE_EXHAUSTED: Some resource has been exhausted, perhaps a per-user quota, or\nperhaps the entire file system is out of space.\n\nHTTP Mapping: 429 Too Many Requests\n - FAILED_PRECONDITION: The operation was rejected because the system is not in a state\nrequired for the operation's execution.  For example, the directory\nto be deleted is non-empty, an rmdir operation is applied to\na non-directory, etc.\n\nService implementors can use the following guidelines to decide\nbetween `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`:\n (a) Use `UNAVAILABLE` if the client can retry just the failing call.\n (b) Use `ABORTED` if the client should retry at a higher level. For\n     example, when a client-specified test-and-set fails, indicating the\n     client should restart a read-modify-write sequence.\n (c) Use `FAILED_PRECONDITION` if the client should not retry until\n     the system state has been explicitly fixed. For example, if an \"rmdir\"\n     fails because the directory is non-empty, `FAILED_PRECONDITION`\n     should be returned since the client should not retry unless\n     the files are deleted from the directory.\n\nHTTP Mapping: 400 Bad Request\n - ABORTED: The operation was aborted, typically due to a concurrency issue such as\na sequencer check failure or transaction abort.\n\nSee the guidelines above for deciding between `FAILED_PRECONDITION`,\n`ABORTED`, and `UNAVAILABLE`.\n\nHTTP Mapping: 409 Conflict\n - OUT_OF_RANGE: The operation was attempted past the valid range.  E.g., seeking or\nreading past end-of-file.\n\nUnlike `INVALID_ARGUMENT`, this error indicates a problem that may\nbe fixed if the system state changes. For example, a 32-bit file\nsystem will generate `INVALID_ARGUMENT` if asked to read at an\noffset that is not in the range [0,2^32-1], but it will generate\n`OUT_OF_RANGE` if asked to read from an offset past the current\nfile size.\n\nThere is a fair bit of overlap between `FAILED_PRECONDITION` and\n`OUT_OF_RANGE`.  We recommend using `OUT_OF_RANGE` (the more specific\nerror) when it applies so that callers who are iterating through\na space can easily look for an `OUT_OF_RANGE` error to detect when\nthey are done.\n\nHTTP Mapping: 400 Bad Request\n - UNIMPLEMENTED: The operation is not implemented or is not supported/enabled in this\nservice.\n\nHTTP Mapping: 501 Not Implemented\n - INTERNAL: Internal errors.  This means that some invariants expected by the\nunderlying system have been broken.  This error code is reserved\nfor serious errors.\n\nHTTP Mapping: 500 Internal Server Error\n - UNAVAILABLE: The service is currently unavailable.  This is most likely a\ntransient condition, which can be corrected by retrying with\na backoff. Note that it is not always safe to retry\nnon-idempotent operations.\n\nSee the guidelines above for deciding between `FAILED_PRECONDITION`,\n`ABORTED`, and `UNAVAILABLE`.\n\nHTTP Mapping: 503 Service Unavailable\n - DATA_LOSS: Unrecoverable data loss or corruption.\n\nHTTP Mapping: 500 Internal Server Error code","enum":["OK","CANCELLED","UNKNOWN","INVALID_ARGUMENT","DEADLINE_EXCEEDED","NOT_FOUND","ALREADY_EXISTS","PERMISSION_DENIED","UNAUTHENTICATED","RESOURCE_EXHAUSTED","FAILED_PRECONDITION","ABORTED","OUT_OF_RANGE","UNIMPLEMENTED","INTERNAL","UNAVAILABLE","DATA_LOSS"]},"message":{"type":"string","description":"A developer-facing error message in English. message"}}},"createdBy":{"type":"string","description":"The email address of the user who initiated this fine-tuning job. createdBy"},"outputModel":{"type":"string","description":"The model ID to be assigned to the resulting fine-tuned model. If not specified, the job ID will be used. outputModel"},"baseModel":{"type":"string","description":"The name of the base model to be fine-tuned\nOnly one of 'base_model' or 'warm_start_from' should be specified. baseModel"},"warmStartFrom":{"type":"string","description":"The PEFT addon model in Fireworks format to be fine-tuned from\nOnly one of 'base_model' or 'warm_start_from' should be specified. warmStartFrom"},"jinjaTemplate":{"type":"string","description":"Deprecated: literal Jinja templates are not supported by Training V2.\nConversation rendering is selected from the base model's registered\nrenderer configuration instead. jinjaTemplate"},"earlyStop":{"type":"boolean","description":"Deprecated: early stopping is not supported by managed training. earlyStop"},"epochs":{"type":"integer","description":"The number of epochs to train for. epochs"},"learningRate":{"type":"number","description":"The learning rate used for training. learningRate"},"maxContextLength":{"type":"integer","description":"The maximum context length to use with the model. maxContextLength"},"loraRank":{"type":"integer","description":"The rank of the LoRA layers. loraRank"},"wandbConfig":{"type":"object","description":"WandbConfig is the configuration for the Weights & Biases (wandb) logging which\nwill be used by a training job. wandbConfig","properties":{"enabled":{"type":"boolean","description":"Whether to enable wandb logging. enabled"},"apiKey":{"type":"string","description":"The API key for the wandb service. apiKey"},"project":{"type":"string","description":"The project name for the wandb service. project"},"entity":{"type":"string","description":"The entity name for the wandb service. entity"},"runId":{"type":"string","description":"The run ID for the wandb service. runId"},"url":{"type":"string","description":"The URL for the wandb service. url"}}},"evaluationDataset":{"type":"string","description":"The name of a separate dataset to use for evaluation. evaluationDataset"},"isTurbo":{"type":"boolean","description":"Whether to run the fine-tuning job in turbo mode. isTurbo"},"evalAutoCarveout":{"type":"boolean","description":"Whether to auto-carve the dataset for eval. evalAutoCarveout"},"updateTime":{"type":"string","description":"The update time for the supervised fine-tuning job. updateTime"},"nodes":{"type":"integer","description":"Deprecated: multi-node scheduling is now handled by the cookbook\norchestrator in V2 workflows. This field is ignored for V2 jobs and\nwill be removed in a future release. nodes"},"batchSize":{"type":"integer","description":"Deprecated: legacy V1 token budget. Training V2 batches by samples via\nbatch_size_samples. batchSize"},"mtpEnabled":{"type":"boolean","description":"Deprecated: MTP is no longer supported by managed training. This field is\nretained for API wire compatibility only. mtpEnabled"},"mtpNumDraftTokens":{"type":"integer","description":"Deprecated: see mtp_enabled. mtpNumDraftTokens"},"mtpFreezeBaseModel":{"type":"boolean","description":"Deprecated: see mtp_enabled. mtpFreezeBaseModel"},"jobProgress":{"type":"object","description":"Progress of a job, e.g. RLOR, EVJ, BIJ etc. jobProgress","properties":{"percent":{"type":"integer","description":"Progress percent, within the range from 0 to 100. percent"},"epoch":{"type":"integer","description":"The epoch for which the progress percent is reported, usually starting from 0.\nThis is optional for jobs that don't run in an epoch fasion, e.g. BIJ, EVJ. epoch"},"totalInputRequests":{"type":"integer","description":"Total number of input requests/rows in the job. totalInputRequests"},"totalProcessedRequests":{"type":"integer","description":"Total number of requests that have been processed (successfully or failed). totalProcessedRequests"},"successfullyProcessedRequests":{"type":"integer","description":"Number of requests that were processed successfully. successfullyProcessedRequests"},"failedRequests":{"type":"integer","description":"Number of requests that failed to process. failedRequests"},"outputRows":{"type":"integer","description":"Number of output rows generated. outputRows"},"inputTokens":{"type":"integer","description":"Total number of input tokens processed. inputTokens"},"outputTokens":{"type":"integer","description":"Total number of output tokens generated. outputTokens"},"cachedInputTokenCount":{"type":"integer","description":"The number of input tokens that hit the prompt cache. cachedInputTokenCount"}}},"metricsFileSignedUrl":{"type":"string","description":"The signed URL for the metrics file metricsFileSignedUrl"},"trainerLogsSignedUrl":{"type":"string","description":"The signed URL for the trainer logs file (stdout/stderr).\nOnly populated if the account has trainer log reading enabled. trainerLogsSignedUrl"},"renderSamplesSignedUrl":{"type":"string","description":"The signed URL for orchestrator-rendered token IDs and loss masks. renderSamplesSignedUrl"},"gradientAccumulationSteps":{"type":"integer","description":"Deprecated: legacy V1 gradient accumulation. Training V2 batches by\nsamples via batch_size_samples and rejects this field when set. gradientAccumulationSteps"},"learningRateWarmupSteps":{"type":"integer","description":"Number of steps for learning rate warm up learningRateWarmupSteps"},"lrScheduler":{"type":"object","description":"Learning-rate scheduler applied on top of the base learning rate (after the\nshared learning_rate_warmup_steps warmup). It mirrors the trainer-side\nfireworks.training.sdk.training_spec.LRSchedulerSpec discriminated union:\nthe schedule variant that is set selects the shape, and each variant carries\nonly the knobs that apply to it. Add a new schedule by adding a message and\none `oneof schedule` entry; existing clients are unaffected. When unset,\nthe trainer uses the legacy constant schedule. lrScheduler","properties":{"constant":{"type":"object","description":"Constant learning rate held flat after warmup (legacy default). No decay knobs. constant"},"linear":{"type":"object","description":"Linear decay from the peak learning rate toward min_lr_ratio after warmup. linear"},"cosine":{"type":"object","description":"Cosine annealing from the peak learning rate toward min_lr_ratio after warmup. cosine"}}},"batchSizeSamples":{"type":"integer","description":"The number of samples per gradient batch. batchSizeSamples"},"estimatedCost":{"type":"object","description":"Represents an amount of money with its currency type. estimatedCost","properties":{"currencyCode":{"type":"string","description":"The three-letter currency code defined in ISO 4217. currencyCode"},"units":{"type":"string","description":"The whole units of the amount.\nFor example if `currencyCode` is `\"USD\"`, then 1 unit is one US dollar. units"},"nanos":{"type":"integer","description":"Number of nano (10^-9) units of the amount.\nThe value must be between -999,999,999 and +999,999,999 inclusive.\nIf `units` is positive, `nanos` must be positive or zero.\nIf `units` is zero, `nanos` can be positive, zero, or negative.\nIf `units` is negative, `nanos` must be negative or zero.\nFor example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000. nanos"}}},"optimizerWeightDecay":{"type":"number","description":"Weight decay (L2 regularization) for optimizer. optimizerWeightDecay"},"purpose":{"type":"string","description":"Scheduling purpose for training jobs and deployments. purpose","enum":["PURPOSE_UNSPECIFIED","PURPOSE_PILOT"]},"encryptionState":{"type":"string","description":"EncryptionState is the authoritative, per-resource CMEK marker: the single\nsource of truth for whether a resource's customer-data artifacts are\nencrypted. It is stamped at resource creation from the owning account's CMEK\nconfig and is immutable for the resource's life, so a resource always reads\nback with the state it was created under regardless of the account's current\nflag. The encrypt-on-write / decrypt-on-read decision for the resource's\ndata keys off this field.\n\n - ENCRYPTION_STATE_UNSPECIFIED: Unstamped/legacy rows that predate CMEK. Treated as PLAINTEXT.\n - ENCRYPTION_STATE_PLAINTEXT: Customer-data artifacts are stored as plaintext (Fireworks-owned, no CMEK).\n - ENCRYPTION_STATE_CMEK: Customer-data artifacts are CMEK-encrypted; reads MUST decrypt (fail-closed). encryptionState","enum":["ENCRYPTION_STATE_UNSPECIFIED","ENCRYPTION_STATE_PLAINTEXT","ENCRYPTION_STATE_CMEK"]}}},"example":{"name":"","displayName":"","createTime":"","completedTime":"","dataset":"","awsS3Config":{},"azureBlobStorageConfig":{},"state":"","status":{},"createdBy":"","outputModel":"","baseModel":"","warmStartFrom":"","jinjaTemplate":"","earlyStop":"","epochs":"","learningRate":"","maxContextLength":"","loraRank":"","wandbConfig":{},"evaluationDataset":"","isTurbo":"","evalAutoCarveout":"","updateTime":"","nodes":"","batchSize":"","mtpEnabled":"","mtpNumDraftTokens":"","mtpFreezeBaseModel":"","jobProgress":{},"metricsFileSignedUrl":"","trainerLogsSignedUrl":"","renderSamplesSignedUrl":"","gradientAccumulationSteps":"","learningRateWarmupSteps":"","lrScheduler":{},"batchSizeSamples":"","estimatedCost":{},"optimizerWeightDecay":"","purpose":"","encryptionState":""}}}}}},"/v1/accounts/{account_id}/supervisedFineTuningJobs/{supervised_fine_tuning_job_id}":{"get":{"tags":["Fine-Tuning"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"supervised_fine_tuning_job_id","in":"path","description":"The Supervised Fine-tuning Job Id","required":true,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/supervisedFineTuningJobs/{supervised_fine_tuning_job_id}"},"summary":"Get Supervised Fine-tuning Job","description":"Get Supervised Fine-tuning Job","security":[{"bearerAuth":[]}]},"delete":{"tags":["Fine-Tuning"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"supervised_fine_tuning_job_id","in":"path","description":"The Supervised Fine-tuning Job Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/supervisedFineTuningJobs/{supervised_fine_tuning_job_id}"},"summary":"Delete Supervised Fine-tuning Job","description":"Delete Supervised Fine-tuning Job","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/v1/accounts/{account_id}/supervisedFineTuningJobs/{supervised_fine_tuning_job_id}:cancel":{"post":{"tags":["Fine-Tuning"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"supervised_fine_tuning_job_id","in":"path","description":"The Supervised Fine-tuning Job Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/supervisedFineTuningJobs/{supervised_fine_tuning_job_id}:cancel"},"summary":"Cancel Supervised Fine-tuning Job","description":"Cancel Supervised Fine-tuning Job","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/v1/accounts/{account_id}/supervisedFineTuningJobs/{supervised_fine_tuning_job_id}:resume":{"post":{"tags":["Fine-Tuning"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"supervised_fine_tuning_job_id","in":"path","description":"The Supervised Fine-tuning Job Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/supervisedFineTuningJobs/{supervised_fine_tuning_job_id}:resume"},"summary":"Resume Supervised Fine-tuning Job","description":"Resume Supervised Fine-tuning Job","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/v1/accounts/{account_id}/supervisedFineTuningJobs:estimateCost":{"post":{"tags":["Fine-Tuning"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/supervisedFineTuningJobs:estimateCost"},"summary":"Estimate the cost of a Supervised Fine-tuning Job","description":"Estimate the cost of a Supervised Fine-tuning Job","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"name"},"displayName":{"type":"string","description":"displayName"},"createTime":{"type":"string","description":"createTime"},"completedTime":{"type":"string","description":"completedTime"},"dataset":{"type":"string","description":"The name of the dataset used for training. dataset","required":true},"awsS3Config":{"type":"object","description":"AwsS3Config is the configuration for AWS S3 dataset access which\nwill be used by a training job. awsS3Config","properties":{"credentialsSecret":{"type":"string","description":"Reference to a Secret resource containing AWS access key credentials.\nFormat: accounts/{account_id}/secrets/{secret_id}\nThe secret value must be JSON: {\"aws_access_key_id\": \"AKIA...\", \"aws_secret_access_key\": \"...\"} credentialsSecret"},"iamRoleArn":{"type":"string","description":"IAM role ARN to assume for accessing S3 datasets via GCP OIDC federation.\nFormat: arn:aws:iam::account-id:role/role-name iamRoleArn"}}},"azureBlobStorageConfig":{"type":"object","description":"AzureBlobStorageConfig is the configuration for Azure Blob Storage dataset access\nwhich will be used by a training job. azureBlobStorageConfig","properties":{"credentialsSecret":{"type":"string","description":"Reference to a Secret resource containing Azure credentials.\nFormat: accounts/{account_id}/secrets/{secret_id}\nThe secret value must be JSON: {\"connection_string\": \"...\"} or {\"sas_token\": \"...\"} or {\"account_key\": \"...\"}\nMutually exclusive with managed_identity_client_id. credentialsSecret"},"managedIdentityClientId":{"type":"string","description":"Managed Identity Client ID for GCP-to-Azure Workload Identity Federation.\nFormat: uuid\nMutually exclusive with credentials_secret. managedIdentityClientId"},"tenantId":{"type":"string","description":"Azure tenant ID for Workload Identity Federation.\nFormat: uuid tenantId"}}},"state":{"type":"string","description":"JobState represents the state an asynchronous job can be in.\n\n - JOB_STATE_PAUSED: Job is paused, typically due to account suspension or manual intervention.\n - JOB_STATE_DELETED: Job has been deleted.\n - JOB_STATE_ARCHIVED: User-facing state for jobs whose row is retained post-delete (e.g. RLOR\ntrainers within the checkpoint retention window). The internal row is\nstill in JOB_STATE_DELETED; the gateway translates it to ARCHIVED on\npublic responses. state","enum":["JOB_STATE_UNSPECIFIED","JOB_STATE_CREATING","JOB_STATE_RUNNING","JOB_STATE_COMPLETED","JOB_STATE_FAILED","JOB_STATE_CANCELLED","JOB_STATE_DELETING","JOB_STATE_WRITING_RESULTS","JOB_STATE_VALIDATING","JOB_STATE_DELETING_CLEANING_UP","JOB_STATE_PENDING","JOB_STATE_EXPIRED","JOB_STATE_RE_QUEUEING","JOB_STATE_CREATING_INPUT_DATASET","JOB_STATE_IDLE","JOB_STATE_CANCELLING","JOB_STATE_EARLY_STOPPED","JOB_STATE_PAUSED","JOB_STATE_DELETED","JOB_STATE_ARCHIVED"]},"status":{"type":"object","description":"Mimics [https://github.com/googleapis/googleapis/blob/master/google/rpc/status.proto] status","properties":{"code":{"type":"string","description":"- OK: Not an error; returned on success.\n\nHTTP Mapping: 200 OK\n - CANCELLED: The operation was cancelled, typically by the caller.\n\nHTTP Mapping: 499 Client Closed Request\n - UNKNOWN: Unknown error.  For example, this error may be returned when\na `Status` value received from another address space belongs to\nan error space that is not known in this address space.  Also\nerrors raised by APIs that do not return enough error information\nmay be converted to this error.\n\nHTTP Mapping: 500 Internal Server Error\n - INVALID_ARGUMENT: The client specified an invalid argument.  Note that this differs\nfrom `FAILED_PRECONDITION`.  `INVALID_ARGUMENT` indicates arguments\nthat are problematic regardless of the state of the system\n(e.g., a malformed file name).\n\nHTTP Mapping: 400 Bad Request\n - DEADLINE_EXCEEDED: The deadline expired before the operation could complete. For operations\nthat change the state of the system, this error may be returned\neven if the operation has completed successfully.  For example, a\nsuccessful response from a server could have been delayed long\nenough for the deadline to expire.\n\nHTTP Mapping: 504 Gateway Timeout\n - NOT_FOUND: Some requested entity (e.g., file or directory) was not found.\n\nNote to server developers: if a request is denied for an entire class\nof users, such as gradual feature rollout or undocumented allowlist,\n`NOT_FOUND` may be used. If a request is denied for some users within\na class of users, such as user-based access control, `PERMISSION_DENIED`\nmust be used.\n\nHTTP Mapping: 404 Not Found\n - ALREADY_EXISTS: The entity that a client attempted to create (e.g., file or directory)\nalready exists.\n\nHTTP Mapping: 409 Conflict\n - PERMISSION_DENIED: The caller does not have permission to execute the specified\noperation. `PERMISSION_DENIED` must not be used for rejections\ncaused by exhausting some resource (use `RESOURCE_EXHAUSTED`\ninstead for those errors). `PERMISSION_DENIED` must not be\nused if the caller can not be identified (use `UNAUTHENTICATED`\ninstead for those errors). This error code does not imply the\nrequest is valid or the requested entity exists or satisfies\nother pre-conditions.\n\nHTTP Mapping: 403 Forbidden\n - UNAUTHENTICATED: The request does not have valid authentication credentials for the\noperation.\n\nHTTP Mapping: 401 Unauthorized\n - RESOURCE_EXHAUSTED: Some resource has been exhausted, perhaps a per-user quota, or\nperhaps the entire file system is out of space.\n\nHTTP Mapping: 429 Too Many Requests\n - FAILED_PRECONDITION: The operation was rejected because the system is not in a state\nrequired for the operation's execution.  For example, the directory\nto be deleted is non-empty, an rmdir operation is applied to\na non-directory, etc.\n\nService implementors can use the following guidelines to decide\nbetween `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`:\n (a) Use `UNAVAILABLE` if the client can retry just the failing call.\n (b) Use `ABORTED` if the client should retry at a higher level. For\n     example, when a client-specified test-and-set fails, indicating the\n     client should restart a read-modify-write sequence.\n (c) Use `FAILED_PRECONDITION` if the client should not retry until\n     the system state has been explicitly fixed. For example, if an \"rmdir\"\n     fails because the directory is non-empty, `FAILED_PRECONDITION`\n     should be returned since the client should not retry unless\n     the files are deleted from the directory.\n\nHTTP Mapping: 400 Bad Request\n - ABORTED: The operation was aborted, typically due to a concurrency issue such as\na sequencer check failure or transaction abort.\n\nSee the guidelines above for deciding between `FAILED_PRECONDITION`,\n`ABORTED`, and `UNAVAILABLE`.\n\nHTTP Mapping: 409 Conflict\n - OUT_OF_RANGE: The operation was attempted past the valid range.  E.g., seeking or\nreading past end-of-file.\n\nUnlike `INVALID_ARGUMENT`, this error indicates a problem that may\nbe fixed if the system state changes. For example, a 32-bit file\nsystem will generate `INVALID_ARGUMENT` if asked to read at an\noffset that is not in the range [0,2^32-1], but it will generate\n`OUT_OF_RANGE` if asked to read from an offset past the current\nfile size.\n\nThere is a fair bit of overlap between `FAILED_PRECONDITION` and\n`OUT_OF_RANGE`.  We recommend using `OUT_OF_RANGE` (the more specific\nerror) when it applies so that callers who are iterating through\na space can easily look for an `OUT_OF_RANGE` error to detect when\nthey are done.\n\nHTTP Mapping: 400 Bad Request\n - UNIMPLEMENTED: The operation is not implemented or is not supported/enabled in this\nservice.\n\nHTTP Mapping: 501 Not Implemented\n - INTERNAL: Internal errors.  This means that some invariants expected by the\nunderlying system have been broken.  This error code is reserved\nfor serious errors.\n\nHTTP Mapping: 500 Internal Server Error\n - UNAVAILABLE: The service is currently unavailable.  This is most likely a\ntransient condition, which can be corrected by retrying with\na backoff. Note that it is not always safe to retry\nnon-idempotent operations.\n\nSee the guidelines above for deciding between `FAILED_PRECONDITION`,\n`ABORTED`, and `UNAVAILABLE`.\n\nHTTP Mapping: 503 Service Unavailable\n - DATA_LOSS: Unrecoverable data loss or corruption.\n\nHTTP Mapping: 500 Internal Server Error code","enum":["OK","CANCELLED","UNKNOWN","INVALID_ARGUMENT","DEADLINE_EXCEEDED","NOT_FOUND","ALREADY_EXISTS","PERMISSION_DENIED","UNAUTHENTICATED","RESOURCE_EXHAUSTED","FAILED_PRECONDITION","ABORTED","OUT_OF_RANGE","UNIMPLEMENTED","INTERNAL","UNAVAILABLE","DATA_LOSS"]},"message":{"type":"string","description":"A developer-facing error message in English. message"}}},"createdBy":{"type":"string","description":"The email address of the user who initiated this fine-tuning job. createdBy"},"outputModel":{"type":"string","description":"The model ID to be assigned to the resulting fine-tuned model. If not specified, the job ID will be used. outputModel"},"baseModel":{"type":"string","description":"The name of the base model to be fine-tuned\nOnly one of 'base_model' or 'warm_start_from' should be specified. baseModel"},"warmStartFrom":{"type":"string","description":"The PEFT addon model in Fireworks format to be fine-tuned from\nOnly one of 'base_model' or 'warm_start_from' should be specified. warmStartFrom"},"jinjaTemplate":{"type":"string","description":"Deprecated: literal Jinja templates are not supported by Training V2.\nConversation rendering is selected from the base model's registered\nrenderer configuration instead. jinjaTemplate"},"earlyStop":{"type":"boolean","description":"Deprecated: early stopping is not supported by managed training. earlyStop"},"epochs":{"type":"integer","description":"The number of epochs to train for. epochs"},"learningRate":{"type":"number","description":"The learning rate used for training. learningRate"},"maxContextLength":{"type":"integer","description":"The maximum context length to use with the model. maxContextLength"},"loraRank":{"type":"integer","description":"The rank of the LoRA layers. loraRank"},"wandbConfig":{"type":"object","description":"WandbConfig is the configuration for the Weights & Biases (wandb) logging which\nwill be used by a training job. wandbConfig","properties":{"enabled":{"type":"boolean","description":"Whether to enable wandb logging. enabled"},"apiKey":{"type":"string","description":"The API key for the wandb service. apiKey"},"project":{"type":"string","description":"The project name for the wandb service. project"},"entity":{"type":"string","description":"The entity name for the wandb service. entity"},"runId":{"type":"string","description":"The run ID for the wandb service. runId"},"url":{"type":"string","description":"The URL for the wandb service. url"}}},"evaluationDataset":{"type":"string","description":"The name of a separate dataset to use for evaluation. evaluationDataset"},"isTurbo":{"type":"boolean","description":"Whether to run the fine-tuning job in turbo mode. isTurbo"},"evalAutoCarveout":{"type":"boolean","description":"Whether to auto-carve the dataset for eval. evalAutoCarveout"},"updateTime":{"type":"string","description":"The update time for the supervised fine-tuning job. updateTime"},"nodes":{"type":"integer","description":"Deprecated: multi-node scheduling is now handled by the cookbook\norchestrator in V2 workflows. This field is ignored for V2 jobs and\nwill be removed in a future release. nodes"},"batchSize":{"type":"integer","description":"Deprecated: legacy V1 token budget. Training V2 batches by samples via\nbatch_size_samples. batchSize"},"mtpEnabled":{"type":"boolean","description":"Deprecated: MTP is no longer supported by managed training. This field is\nretained for API wire compatibility only. mtpEnabled"},"mtpNumDraftTokens":{"type":"integer","description":"Deprecated: see mtp_enabled. mtpNumDraftTokens"},"mtpFreezeBaseModel":{"type":"boolean","description":"Deprecated: see mtp_enabled. mtpFreezeBaseModel"},"jobProgress":{"type":"object","description":"Progress of a job, e.g. RLOR, EVJ, BIJ etc. jobProgress","properties":{"percent":{"type":"integer","description":"Progress percent, within the range from 0 to 100. percent"},"epoch":{"type":"integer","description":"The epoch for which the progress percent is reported, usually starting from 0.\nThis is optional for jobs that don't run in an epoch fasion, e.g. BIJ, EVJ. epoch"},"totalInputRequests":{"type":"integer","description":"Total number of input requests/rows in the job. totalInputRequests"},"totalProcessedRequests":{"type":"integer","description":"Total number of requests that have been processed (successfully or failed). totalProcessedRequests"},"successfullyProcessedRequests":{"type":"integer","description":"Number of requests that were processed successfully. successfullyProcessedRequests"},"failedRequests":{"type":"integer","description":"Number of requests that failed to process. failedRequests"},"outputRows":{"type":"integer","description":"Number of output rows generated. outputRows"},"inputTokens":{"type":"integer","description":"Total number of input tokens processed. inputTokens"},"outputTokens":{"type":"integer","description":"Total number of output tokens generated. outputTokens"},"cachedInputTokenCount":{"type":"integer","description":"The number of input tokens that hit the prompt cache. cachedInputTokenCount"}}},"metricsFileSignedUrl":{"type":"string","description":"The signed URL for the metrics file metricsFileSignedUrl"},"trainerLogsSignedUrl":{"type":"string","description":"The signed URL for the trainer logs file (stdout/stderr).\nOnly populated if the account has trainer log reading enabled. trainerLogsSignedUrl"},"renderSamplesSignedUrl":{"type":"string","description":"The signed URL for orchestrator-rendered token IDs and loss masks. renderSamplesSignedUrl"},"gradientAccumulationSteps":{"type":"integer","description":"Deprecated: legacy V1 gradient accumulation. Training V2 batches by\nsamples via batch_size_samples and rejects this field when set. gradientAccumulationSteps"},"learningRateWarmupSteps":{"type":"integer","description":"Number of steps for learning rate warm up learningRateWarmupSteps"},"lrScheduler":{"type":"object","description":"Learning-rate scheduler applied on top of the base learning rate (after the\nshared learning_rate_warmup_steps warmup). It mirrors the trainer-side\nfireworks.training.sdk.training_spec.LRSchedulerSpec discriminated union:\nthe schedule variant that is set selects the shape, and each variant carries\nonly the knobs that apply to it. Add a new schedule by adding a message and\none `oneof schedule` entry; existing clients are unaffected. When unset,\nthe trainer uses the legacy constant schedule. lrScheduler","properties":{"constant":{"type":"object","description":"Constant learning rate held flat after warmup (legacy default). No decay knobs. constant"},"linear":{"type":"object","description":"Linear decay from the peak learning rate toward min_lr_ratio after warmup. linear"},"cosine":{"type":"object","description":"Cosine annealing from the peak learning rate toward min_lr_ratio after warmup. cosine"}}},"batchSizeSamples":{"type":"integer","description":"The number of samples per gradient batch. batchSizeSamples"},"estimatedCost":{"type":"object","description":"Represents an amount of money with its currency type. estimatedCost","properties":{"currencyCode":{"type":"string","description":"The three-letter currency code defined in ISO 4217. currencyCode"},"units":{"type":"string","description":"The whole units of the amount.\nFor example if `currencyCode` is `\"USD\"`, then 1 unit is one US dollar. units"},"nanos":{"type":"integer","description":"Number of nano (10^-9) units of the amount.\nThe value must be between -999,999,999 and +999,999,999 inclusive.\nIf `units` is positive, `nanos` must be positive or zero.\nIf `units` is zero, `nanos` can be positive, zero, or negative.\nIf `units` is negative, `nanos` must be negative or zero.\nFor example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000. nanos"}}},"optimizerWeightDecay":{"type":"number","description":"Weight decay (L2 regularization) for optimizer. optimizerWeightDecay"},"purpose":{"type":"string","description":"Scheduling purpose for training jobs and deployments. purpose","enum":["PURPOSE_UNSPECIFIED","PURPOSE_PILOT"]},"encryptionState":{"type":"string","description":"EncryptionState is the authoritative, per-resource CMEK marker: the single\nsource of truth for whether a resource's customer-data artifacts are\nencrypted. It is stamped at resource creation from the owning account's CMEK\nconfig and is immutable for the resource's life, so a resource always reads\nback with the state it was created under regardless of the account's current\nflag. The encrypt-on-write / decrypt-on-read decision for the resource's\ndata keys off this field.\n\n - ENCRYPTION_STATE_UNSPECIFIED: Unstamped/legacy rows that predate CMEK. Treated as PLAINTEXT.\n - ENCRYPTION_STATE_PLAINTEXT: Customer-data artifacts are stored as plaintext (Fireworks-owned, no CMEK).\n - ENCRYPTION_STATE_CMEK: Customer-data artifacts are CMEK-encrypted; reads MUST decrypt (fail-closed). encryptionState","enum":["ENCRYPTION_STATE_UNSPECIFIED","ENCRYPTION_STATE_PLAINTEXT","ENCRYPTION_STATE_CMEK"]}}},"example":{"name":"","displayName":"","createTime":"","completedTime":"","dataset":"","awsS3Config":{},"azureBlobStorageConfig":{},"state":"","status":{},"createdBy":"","outputModel":"","baseModel":"","warmStartFrom":"","jinjaTemplate":"","earlyStop":"","epochs":"","learningRate":"","maxContextLength":"","loraRank":"","wandbConfig":{},"evaluationDataset":"","isTurbo":"","evalAutoCarveout":"","updateTime":"","nodes":"","batchSize":"","mtpEnabled":"","mtpNumDraftTokens":"","mtpFreezeBaseModel":"","jobProgress":{},"metricsFileSignedUrl":"","trainerLogsSignedUrl":"","renderSamplesSignedUrl":"","gradientAccumulationSteps":"","learningRateWarmupSteps":"","lrScheduler":{},"batchSizeSamples":"","estimatedCost":{},"optimizerWeightDecay":"","purpose":"","encryptionState":""}}}}}},"/v1/accounts/{account_id}/trails":{"get":{"tags":["Trails"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"pageSize","in":"query","description":"The maximum number of trails to return. The maximum page_size is 200,\nvalues above 200 will be coerced to 200.\nIf unspecified, the default is 50.","required":false,"schema":{"type":"integer","example":""}},{"name":"pageToken","in":"query","description":"A page token, received from a previous ListTrails call. Provide this\nto retrieve the subsequent page. When paginating, all other parameters\nprovided to ListTrails must match the call that provided the page token.","required":false,"schema":{"type":"string","example":""}},{"name":"filter","in":"query","description":"Filter criteria for the returned trails. See https://google.aip.dev/160\nfor the filter syntax specification.","required":false,"schema":{"type":"string","example":""}},{"name":"orderBy","in":"query","description":"A comma-separated list of fields to order by. e.g. \"create_time,display_name\"\nThe default sort order is ascending. To specify descending order for a\nfield, append a \" desc\" suffix. e.g. \"create_time desc\"\nIf not specified, the default order is by \"create_time desc\".","required":false,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/trails"},"summary":"List Trails","description":"List Trails","security":[{"bearerAuth":[]}]},"post":{"tags":["Trails"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"trailId","in":"query","description":"Optional ID for the trail. If not specified, a random UUID will be generated.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/trails"},"summary":"Create Trail","description":"Create Trail","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"Resource name: accounts/{AccountId}/trails/{TrailId} name"},"displayName":{"type":"string","description":"Human-readable display name for the trail displayName"},"createTime":{"type":"string","description":"Creation timestamp createTime"},"updateTime":{"type":"string","description":"Last update timestamp updateTime"},"description":{"type":"string","description":"Optional description of what this trail is tracking description"},"createdBy":{"type":"string","description":"The email address of the user who created this trail createdBy"},"langfuseConfig":{"type":"string","description":"Langfuse configuration for this trail, inherited from the account at creation time.\nContains API credentials for a Project within the customer's Langfuse Organization.\nSerialized JSON format: {\"public_key\":\"pk-lf-xxx\",\"secret_key\":\"sk-lf-xxx\",\"host\":\"https://langfuse-prod.fireworks.ai\"}\nIf empty, the default Langfuse Organization/Project will be used. langfuseConfig"},"defaultModel":{"type":"string","description":"Default model for requests through this trail.\nFormat: \"{provider}/{model_id}\" (e.g., \"anthropic/claude-3-5-sonnet-20240620\").\nCan be overridden per request. defaultModel"},"providerKey":{"type":"string","description":"Provider API key for this trail.\nWhen creating a trail: provide the raw API key (e.g., \"sk-ant-api03-xxxx...\")\nAfter creation: this field contains a secret reference (e.g., \"accounts/{account_id}/secrets/trail-xxx-provider-key\")\nThe LiteLLM gateway retrieves the actual key from Secret Manager using this reference.\nCan be overridden by specifying api_key in the request body. providerKey"}}},"example":{"name":"","displayName":"","createTime":"","updateTime":"","description":"","createdBy":"","langfuseConfig":"","defaultModel":"","providerKey":""}}}}}},"/v1/accounts/{account_id}/trails/{trail_id}":{"get":{"tags":["Trails"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"trail_id","in":"path","description":"The Trail Id","required":true,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/trails/{trail_id}"},"summary":"CRUD APIs for trails.\nGet Trail","description":"CRUD APIs for trails.\nGet Trail","security":[{"bearerAuth":[]}]},"patch":{"tags":["Trails"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"trail_id","in":"path","description":"The Trail Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/trails/{trail_id}"},"summary":"Update Trail","description":"Update Trail","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"displayName":{"type":"string","description":"Human-readable display name for the trail displayName"},"createTime":{"type":"string","description":"Creation timestamp createTime"},"updateTime":{"type":"string","description":"Last update timestamp updateTime"},"description":{"type":"string","description":"Optional description of what this trail is tracking description"},"createdBy":{"type":"string","description":"The email address of the user who created this trail createdBy"},"langfuseConfig":{"type":"string","description":"Langfuse configuration for this trail, inherited from the account at creation time.\nContains API credentials for a Project within the customer's Langfuse Organization.\nSerialized JSON format: {\"public_key\":\"pk-lf-xxx\",\"secret_key\":\"sk-lf-xxx\",\"host\":\"https://langfuse-prod.fireworks.ai\"}\nIf empty, the default Langfuse Organization/Project will be used. langfuseConfig"},"defaultModel":{"type":"string","description":"Default model for requests through this trail.\nFormat: \"{provider}/{model_id}\" (e.g., \"anthropic/claude-3-5-sonnet-20240620\").\nCan be overridden per request. defaultModel"},"providerKey":{"type":"string","description":"Provider API key for this trail.\nWhen creating a trail: provide the raw API key (e.g., \"sk-ant-api03-xxxx...\")\nAfter creation: this field contains a secret reference (e.g., \"accounts/{account_id}/secrets/trail-xxx-provider-key\")\nThe LiteLLM gateway retrieves the actual key from Secret Manager using this reference.\nCan be overridden by specifying api_key in the request body. providerKey"}}},"example":{"displayName":"","createTime":"","updateTime":"","description":"","createdBy":"","langfuseConfig":"","defaultModel":"","providerKey":""}}}}},"delete":{"tags":["Trails"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"trail_id","in":"path","description":"The Trail Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/trails/{trail_id}"},"summary":"Delete Trail","description":"Delete Trail","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/v1/accounts/{account_id}/trails/{trail_id}:getMetrics":{"get":{"tags":["Trails"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"trail_id","in":"path","description":"The Trail Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/trails/{trail_id}:getMetrics"},"summary":"Get Trail Metrics (trace counts, token usage from tracing service)","description":"Get Trail Metrics (trace counts, token usage from tracing service)","security":[{"bearerAuth":[]}]}},"/v1/accounts/{account_id}/trainingRuns":{"get":{"tags":["Training"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"pageSize","in":"query","description":"pageSize","required":false,"schema":{"type":"integer","example":""}},{"name":"pageToken","in":"query","description":"pageToken","required":false,"schema":{"type":"string","example":""}},{"name":"filter","in":"query","description":"filter","required":false,"schema":{"type":"string","example":""}},{"name":"orderBy","in":"query","description":"orderBy","required":false,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"readMask","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/trainingRuns"},"summary":"List training runs under an account (Tinker RestClient list_training_runs).","description":"List training runs under an account (Tinker RestClient list_training_runs).","security":[{"bearerAuth":[]}]},"post":{"tags":["Training"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/trainingRuns"},"summary":"Create a training run: the durable, account-owned model lineage for a\nTinker create_lora_training_client. A session may host many runs, and a run\nmay span sessions across resume.","description":"Create a training run: the durable, account-owned model lineage for a\nTinker create_lora_training_client. A session may host many runs, and a run\nmay span sessions across resume.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"name"},"createTime":{"type":"string","description":"createTime"},"updateTime":{"type":"string","description":"updateTime"},"createdBy":{"type":"string","description":"createdBy"},"baseModel":{"type":"string","description":"Base model resource name the run fine-tunes (accounts/{a}/models/{m}).\nSet once at create_model and immutable thereafter. baseModel"},"loraRank":{"type":"integer","description":"LoRA rank for this run. Set once at create_model. loraRank"},"status":{"type":"object","description":"Mimics [https://github.com/googleapis/googleapis/blob/master/google/rpc/status.proto] status","properties":{"code":{"type":"string","description":"- OK: Not an error; returned on success.\n\nHTTP Mapping: 200 OK\n - CANCELLED: The operation was cancelled, typically by the caller.\n\nHTTP Mapping: 499 Client Closed Request\n - UNKNOWN: Unknown error.  For example, this error may be returned when\na `Status` value received from another address space belongs to\nan error space that is not known in this address space.  Also\nerrors raised by APIs that do not return enough error information\nmay be converted to this error.\n\nHTTP Mapping: 500 Internal Server Error\n - INVALID_ARGUMENT: The client specified an invalid argument.  Note that this differs\nfrom `FAILED_PRECONDITION`.  `INVALID_ARGUMENT` indicates arguments\nthat are problematic regardless of the state of the system\n(e.g., a malformed file name).\n\nHTTP Mapping: 400 Bad Request\n - DEADLINE_EXCEEDED: The deadline expired before the operation could complete. For operations\nthat change the state of the system, this error may be returned\neven if the operation has completed successfully.  For example, a\nsuccessful response from a server could have been delayed long\nenough for the deadline to expire.\n\nHTTP Mapping: 504 Gateway Timeout\n - NOT_FOUND: Some requested entity (e.g., file or directory) was not found.\n\nNote to server developers: if a request is denied for an entire class\nof users, such as gradual feature rollout or undocumented allowlist,\n`NOT_FOUND` may be used. If a request is denied for some users within\na class of users, such as user-based access control, `PERMISSION_DENIED`\nmust be used.\n\nHTTP Mapping: 404 Not Found\n - ALREADY_EXISTS: The entity that a client attempted to create (e.g., file or directory)\nalready exists.\n\nHTTP Mapping: 409 Conflict\n - PERMISSION_DENIED: The caller does not have permission to execute the specified\noperation. `PERMISSION_DENIED` must not be used for rejections\ncaused by exhausting some resource (use `RESOURCE_EXHAUSTED`\ninstead for those errors). `PERMISSION_DENIED` must not be\nused if the caller can not be identified (use `UNAUTHENTICATED`\ninstead for those errors). This error code does not imply the\nrequest is valid or the requested entity exists or satisfies\nother pre-conditions.\n\nHTTP Mapping: 403 Forbidden\n - UNAUTHENTICATED: The request does not have valid authentication credentials for the\noperation.\n\nHTTP Mapping: 401 Unauthorized\n - RESOURCE_EXHAUSTED: Some resource has been exhausted, perhaps a per-user quota, or\nperhaps the entire file system is out of space.\n\nHTTP Mapping: 429 Too Many Requests\n - FAILED_PRECONDITION: The operation was rejected because the system is not in a state\nrequired for the operation's execution.  For example, the directory\nto be deleted is non-empty, an rmdir operation is applied to\na non-directory, etc.\n\nService implementors can use the following guidelines to decide\nbetween `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`:\n (a) Use `UNAVAILABLE` if the client can retry just the failing call.\n (b) Use `ABORTED` if the client should retry at a higher level. For\n     example, when a client-specified test-and-set fails, indicating the\n     client should restart a read-modify-write sequence.\n (c) Use `FAILED_PRECONDITION` if the client should not retry until\n     the system state has been explicitly fixed. For example, if an \"rmdir\"\n     fails because the directory is non-empty, `FAILED_PRECONDITION`\n     should be returned since the client should not retry unless\n     the files are deleted from the directory.\n\nHTTP Mapping: 400 Bad Request\n - ABORTED: The operation was aborted, typically due to a concurrency issue such as\na sequencer check failure or transaction abort.\n\nSee the guidelines above for deciding between `FAILED_PRECONDITION`,\n`ABORTED`, and `UNAVAILABLE`.\n\nHTTP Mapping: 409 Conflict\n - OUT_OF_RANGE: The operation was attempted past the valid range.  E.g., seeking or\nreading past end-of-file.\n\nUnlike `INVALID_ARGUMENT`, this error indicates a problem that may\nbe fixed if the system state changes. For example, a 32-bit file\nsystem will generate `INVALID_ARGUMENT` if asked to read at an\noffset that is not in the range [0,2^32-1], but it will generate\n`OUT_OF_RANGE` if asked to read from an offset past the current\nfile size.\n\nThere is a fair bit of overlap between `FAILED_PRECONDITION` and\n`OUT_OF_RANGE`.  We recommend using `OUT_OF_RANGE` (the more specific\nerror) when it applies so that callers who are iterating through\na space can easily look for an `OUT_OF_RANGE` error to detect when\nthey are done.\n\nHTTP Mapping: 400 Bad Request\n - UNIMPLEMENTED: The operation is not implemented or is not supported/enabled in this\nservice.\n\nHTTP Mapping: 501 Not Implemented\n - INTERNAL: Internal errors.  This means that some invariants expected by the\nunderlying system have been broken.  This error code is reserved\nfor serious errors.\n\nHTTP Mapping: 500 Internal Server Error\n - UNAVAILABLE: The service is currently unavailable.  This is most likely a\ntransient condition, which can be corrected by retrying with\na backoff. Note that it is not always safe to retry\nnon-idempotent operations.\n\nSee the guidelines above for deciding between `FAILED_PRECONDITION`,\n`ABORTED`, and `UNAVAILABLE`.\n\nHTTP Mapping: 503 Service Unavailable\n - DATA_LOSS: Unrecoverable data loss or corruption.\n\nHTTP Mapping: 500 Internal Server Error code","enum":["OK","CANCELLED","UNKNOWN","INVALID_ARGUMENT","DEADLINE_EXCEEDED","NOT_FOUND","ALREADY_EXISTS","PERMISSION_DENIED","UNAUTHENTICATED","RESOURCE_EXHAUSTED","FAILED_PRECONDITION","ABORTED","OUT_OF_RANGE","UNIMPLEMENTED","INTERNAL","UNAVAILABLE","DATA_LOSS"]},"message":{"type":"string","description":"A developer-facing error message in English. message"}}},"sourceTrainingSessionId":{"type":"string","description":"The TrainingSession this run was first created under (its source session).\nA run is created under a session but persists across sessions — it can\nlater be loaded under a different session — so this records the originating\nsession for lineage. Set once at create and immutable. sourceTrainingSessionId"},"state":{"type":"string","description":"Materialization state for the trainer-side model backing this run.\n\nUNSPECIFIED is reserved for legacy rows created before the explicit state\nmachine existed; reconcilers must not sweep it.\n\n - EXPIRED: Clean lifecycle expiry (owning session went idle / was torn down), not a\ntrainer failure. Distinct from FAILED so callers can tell the two apart. state","enum":["STATE_UNSPECIFIED","PENDING_MATERIALIZATION","READY","FAILED","EXPIRED"]}}},"example":{"name":"","createTime":"","updateTime":"","createdBy":"","baseModel":"","loraRank":"","status":{},"sourceTrainingSessionId":"","state":""}}}}}},"/v1/accounts/{account_id}/trainingRuns/{training_run_id}":{"get":{"tags":["Training"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"training_run_id","in":"path","description":"The Training Run Id","required":true,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"readMask","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/trainingRuns/{training_run_id}"},"summary":"Get a training run (Tinker RestClient get_training_run parity).","description":"Get a training run (Tinker RestClient get_training_run parity).","security":[{"bearerAuth":[]}]}},"/v1/accounts/{account_id}/trainingRuns/{training_run_id}:abortMaterialization":{"post":{"tags":["Training"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"training_run_id","in":"path","description":"The Training Run Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/trainingRuns/{training_run_id}:abortMaterialization"},"summary":"Abort a pending training run when trainer materialization failed or timed\nout. INTERNAL: api_gateway calls this on failed Tinker create_model.","description":"Abort a pending training run when trainer materialization failed or timed\nout. INTERNAL: api_gateway calls this on failed Tinker create_model.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"status":{"type":"object","description":"Mimics [https://github.com/googleapis/googleapis/blob/master/google/rpc/status.proto] status","properties":{"code":{"type":"string","description":"- OK: Not an error; returned on success.\n\nHTTP Mapping: 200 OK\n - CANCELLED: The operation was cancelled, typically by the caller.\n\nHTTP Mapping: 499 Client Closed Request\n - UNKNOWN: Unknown error.  For example, this error may be returned when\na `Status` value received from another address space belongs to\nan error space that is not known in this address space.  Also\nerrors raised by APIs that do not return enough error information\nmay be converted to this error.\n\nHTTP Mapping: 500 Internal Server Error\n - INVALID_ARGUMENT: The client specified an invalid argument.  Note that this differs\nfrom `FAILED_PRECONDITION`.  `INVALID_ARGUMENT` indicates arguments\nthat are problematic regardless of the state of the system\n(e.g., a malformed file name).\n\nHTTP Mapping: 400 Bad Request\n - DEADLINE_EXCEEDED: The deadline expired before the operation could complete. For operations\nthat change the state of the system, this error may be returned\neven if the operation has completed successfully.  For example, a\nsuccessful response from a server could have been delayed long\nenough for the deadline to expire.\n\nHTTP Mapping: 504 Gateway Timeout\n - NOT_FOUND: Some requested entity (e.g., file or directory) was not found.\n\nNote to server developers: if a request is denied for an entire class\nof users, such as gradual feature rollout or undocumented allowlist,\n`NOT_FOUND` may be used. If a request is denied for some users within\na class of users, such as user-based access control, `PERMISSION_DENIED`\nmust be used.\n\nHTTP Mapping: 404 Not Found\n - ALREADY_EXISTS: The entity that a client attempted to create (e.g., file or directory)\nalready exists.\n\nHTTP Mapping: 409 Conflict\n - PERMISSION_DENIED: The caller does not have permission to execute the specified\noperation. `PERMISSION_DENIED` must not be used for rejections\ncaused by exhausting some resource (use `RESOURCE_EXHAUSTED`\ninstead for those errors). `PERMISSION_DENIED` must not be\nused if the caller can not be identified (use `UNAUTHENTICATED`\ninstead for those errors). This error code does not imply the\nrequest is valid or the requested entity exists or satisfies\nother pre-conditions.\n\nHTTP Mapping: 403 Forbidden\n - UNAUTHENTICATED: The request does not have valid authentication credentials for the\noperation.\n\nHTTP Mapping: 401 Unauthorized\n - RESOURCE_EXHAUSTED: Some resource has been exhausted, perhaps a per-user quota, or\nperhaps the entire file system is out of space.\n\nHTTP Mapping: 429 Too Many Requests\n - FAILED_PRECONDITION: The operation was rejected because the system is not in a state\nrequired for the operation's execution.  For example, the directory\nto be deleted is non-empty, an rmdir operation is applied to\na non-directory, etc.\n\nService implementors can use the following guidelines to decide\nbetween `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`:\n (a) Use `UNAVAILABLE` if the client can retry just the failing call.\n (b) Use `ABORTED` if the client should retry at a higher level. For\n     example, when a client-specified test-and-set fails, indicating the\n     client should restart a read-modify-write sequence.\n (c) Use `FAILED_PRECONDITION` if the client should not retry until\n     the system state has been explicitly fixed. For example, if an \"rmdir\"\n     fails because the directory is non-empty, `FAILED_PRECONDITION`\n     should be returned since the client should not retry unless\n     the files are deleted from the directory.\n\nHTTP Mapping: 400 Bad Request\n - ABORTED: The operation was aborted, typically due to a concurrency issue such as\na sequencer check failure or transaction abort.\n\nSee the guidelines above for deciding between `FAILED_PRECONDITION`,\n`ABORTED`, and `UNAVAILABLE`.\n\nHTTP Mapping: 409 Conflict\n - OUT_OF_RANGE: The operation was attempted past the valid range.  E.g., seeking or\nreading past end-of-file.\n\nUnlike `INVALID_ARGUMENT`, this error indicates a problem that may\nbe fixed if the system state changes. For example, a 32-bit file\nsystem will generate `INVALID_ARGUMENT` if asked to read at an\noffset that is not in the range [0,2^32-1], but it will generate\n`OUT_OF_RANGE` if asked to read from an offset past the current\nfile size.\n\nThere is a fair bit of overlap between `FAILED_PRECONDITION` and\n`OUT_OF_RANGE`.  We recommend using `OUT_OF_RANGE` (the more specific\nerror) when it applies so that callers who are iterating through\na space can easily look for an `OUT_OF_RANGE` error to detect when\nthey are done.\n\nHTTP Mapping: 400 Bad Request\n - UNIMPLEMENTED: The operation is not implemented or is not supported/enabled in this\nservice.\n\nHTTP Mapping: 501 Not Implemented\n - INTERNAL: Internal errors.  This means that some invariants expected by the\nunderlying system have been broken.  This error code is reserved\nfor serious errors.\n\nHTTP Mapping: 500 Internal Server Error\n - UNAVAILABLE: The service is currently unavailable.  This is most likely a\ntransient condition, which can be corrected by retrying with\na backoff. Note that it is not always safe to retry\nnon-idempotent operations.\n\nSee the guidelines above for deciding between `FAILED_PRECONDITION`,\n`ABORTED`, and `UNAVAILABLE`.\n\nHTTP Mapping: 503 Service Unavailable\n - DATA_LOSS: Unrecoverable data loss or corruption.\n\nHTTP Mapping: 500 Internal Server Error code","enum":["OK","CANCELLED","UNKNOWN","INVALID_ARGUMENT","DEADLINE_EXCEEDED","NOT_FOUND","ALREADY_EXISTS","PERMISSION_DENIED","UNAUTHENTICATED","RESOURCE_EXHAUSTED","FAILED_PRECONDITION","ABORTED","OUT_OF_RANGE","UNIMPLEMENTED","INTERNAL","UNAVAILABLE","DATA_LOSS"]},"message":{"type":"string","description":"A developer-facing error message in English. message"}}}}},"example":{"status":{}}}}}}},"/v1/accounts/{account_id}/trainingRuns/{training_run_id}:finalizeMaterialization":{"post":{"tags":["Training"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"training_run_id","in":"path","description":"The Training Run Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/trainingRuns/{training_run_id}:finalizeMaterialization"},"summary":"Finalize a training run after the trainer has successfully materialized\nits run-scoped model id. INTERNAL: api_gateway calls this after proxying\nTinker create_model to the trainer.","description":"Finalize a training run after the trainer has successfully materialized\nits run-scoped model id. INTERNAL: api_gateway calls this after proxying\nTinker create_model to the trainer.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"modelId":{"type":"string","description":"Trainer-returned model id. Must be run-scoped, e.g. \"{run_id}:train:0\". modelId","required":true}}},"example":{"modelId":""}}}}}},"/v1/accounts/{account_id}/trainingSessions":{"get":{"tags":["Training"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"pageSize","in":"query","description":"pageSize","required":false,"schema":{"type":"integer","example":""}},{"name":"pageToken","in":"query","description":"pageToken","required":false,"schema":{"type":"string","example":""}},{"name":"filter","in":"query","description":"filter","required":false,"schema":{"type":"string","example":""}},{"name":"orderBy","in":"query","description":"orderBy","required":false,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"readMask","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/trainingSessions"},"summary":"List training sessions under an account.","description":"List training sessions under an account.","security":[{"bearerAuth":[]}]},"post":{"tags":["Training"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"trainingSessionId","in":"query","description":"trainingSessionId","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/trainingSessions"},"summary":"Create a training session under an account.","description":"Create a training session under an account.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"name"},"displayName":{"type":"string","description":"Human-readable display name of the training session. e.g. \"Training session\"\nMust be fewer than 64 characters long. displayName"},"createTime":{"type":"string","description":"createTime"},"updateTime":{"type":"string","description":"updateTime"},"state":{"type":"string","description":"AIP-216 lifecycle. DELETING is observable when DeleteTrainingSession\nreleases the shared-trainer binding before the row is removed; Create\nis synchronous today and lands in READY directly, so no CREATING\nvalue is declared until an async Create path actually emits it\n(minimal-surface rule). state","enum":["TRAINING_SESSION_STATE_UNSPECIFIED","READY","FAILED","DELETING","EXPIRED"]},"status":{"type":"object","description":"Mimics [https://github.com/googleapis/googleapis/blob/master/google/rpc/status.proto] status","properties":{"code":{"type":"string","description":"- OK: Not an error; returned on success.\n\nHTTP Mapping: 200 OK\n - CANCELLED: The operation was cancelled, typically by the caller.\n\nHTTP Mapping: 499 Client Closed Request\n - UNKNOWN: Unknown error.  For example, this error may be returned when\na `Status` value received from another address space belongs to\nan error space that is not known in this address space.  Also\nerrors raised by APIs that do not return enough error information\nmay be converted to this error.\n\nHTTP Mapping: 500 Internal Server Error\n - INVALID_ARGUMENT: The client specified an invalid argument.  Note that this differs\nfrom `FAILED_PRECONDITION`.  `INVALID_ARGUMENT` indicates arguments\nthat are problematic regardless of the state of the system\n(e.g., a malformed file name).\n\nHTTP Mapping: 400 Bad Request\n - DEADLINE_EXCEEDED: The deadline expired before the operation could complete. For operations\nthat change the state of the system, this error may be returned\neven if the operation has completed successfully.  For example, a\nsuccessful response from a server could have been delayed long\nenough for the deadline to expire.\n\nHTTP Mapping: 504 Gateway Timeout\n - NOT_FOUND: Some requested entity (e.g., file or directory) was not found.\n\nNote to server developers: if a request is denied for an entire class\nof users, such as gradual feature rollout or undocumented allowlist,\n`NOT_FOUND` may be used. If a request is denied for some users within\na class of users, such as user-based access control, `PERMISSION_DENIED`\nmust be used.\n\nHTTP Mapping: 404 Not Found\n - ALREADY_EXISTS: The entity that a client attempted to create (e.g., file or directory)\nalready exists.\n\nHTTP Mapping: 409 Conflict\n - PERMISSION_DENIED: The caller does not have permission to execute the specified\noperation. `PERMISSION_DENIED` must not be used for rejections\ncaused by exhausting some resource (use `RESOURCE_EXHAUSTED`\ninstead for those errors). `PERMISSION_DENIED` must not be\nused if the caller can not be identified (use `UNAUTHENTICATED`\ninstead for those errors). This error code does not imply the\nrequest is valid or the requested entity exists or satisfies\nother pre-conditions.\n\nHTTP Mapping: 403 Forbidden\n - UNAUTHENTICATED: The request does not have valid authentication credentials for the\noperation.\n\nHTTP Mapping: 401 Unauthorized\n - RESOURCE_EXHAUSTED: Some resource has been exhausted, perhaps a per-user quota, or\nperhaps the entire file system is out of space.\n\nHTTP Mapping: 429 Too Many Requests\n - FAILED_PRECONDITION: The operation was rejected because the system is not in a state\nrequired for the operation's execution.  For example, the directory\nto be deleted is non-empty, an rmdir operation is applied to\na non-directory, etc.\n\nService implementors can use the following guidelines to decide\nbetween `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`:\n (a) Use `UNAVAILABLE` if the client can retry just the failing call.\n (b) Use `ABORTED` if the client should retry at a higher level. For\n     example, when a client-specified test-and-set fails, indicating the\n     client should restart a read-modify-write sequence.\n (c) Use `FAILED_PRECONDITION` if the client should not retry until\n     the system state has been explicitly fixed. For example, if an \"rmdir\"\n     fails because the directory is non-empty, `FAILED_PRECONDITION`\n     should be returned since the client should not retry unless\n     the files are deleted from the directory.\n\nHTTP Mapping: 400 Bad Request\n - ABORTED: The operation was aborted, typically due to a concurrency issue such as\na sequencer check failure or transaction abort.\n\nSee the guidelines above for deciding between `FAILED_PRECONDITION`,\n`ABORTED`, and `UNAVAILABLE`.\n\nHTTP Mapping: 409 Conflict\n - OUT_OF_RANGE: The operation was attempted past the valid range.  E.g., seeking or\nreading past end-of-file.\n\nUnlike `INVALID_ARGUMENT`, this error indicates a problem that may\nbe fixed if the system state changes. For example, a 32-bit file\nsystem will generate `INVALID_ARGUMENT` if asked to read at an\noffset that is not in the range [0,2^32-1], but it will generate\n`OUT_OF_RANGE` if asked to read from an offset past the current\nfile size.\n\nThere is a fair bit of overlap between `FAILED_PRECONDITION` and\n`OUT_OF_RANGE`.  We recommend using `OUT_OF_RANGE` (the more specific\nerror) when it applies so that callers who are iterating through\na space can easily look for an `OUT_OF_RANGE` error to detect when\nthey are done.\n\nHTTP Mapping: 400 Bad Request\n - UNIMPLEMENTED: The operation is not implemented or is not supported/enabled in this\nservice.\n\nHTTP Mapping: 501 Not Implemented\n - INTERNAL: Internal errors.  This means that some invariants expected by the\nunderlying system have been broken.  This error code is reserved\nfor serious errors.\n\nHTTP Mapping: 500 Internal Server Error\n - UNAVAILABLE: The service is currently unavailable.  This is most likely a\ntransient condition, which can be corrected by retrying with\na backoff. Note that it is not always safe to retry\nnon-idempotent operations.\n\nSee the guidelines above for deciding between `FAILED_PRECONDITION`,\n`ABORTED`, and `UNAVAILABLE`.\n\nHTTP Mapping: 503 Service Unavailable\n - DATA_LOSS: Unrecoverable data loss or corruption.\n\nHTTP Mapping: 500 Internal Server Error code","enum":["OK","CANCELLED","UNKNOWN","INVALID_ARGUMENT","DEADLINE_EXCEEDED","NOT_FOUND","ALREADY_EXISTS","PERMISSION_DENIED","UNAUTHENTICATED","RESOURCE_EXHAUSTED","FAILED_PRECONDITION","ABORTED","OUT_OF_RANGE","UNIMPLEMENTED","INTERNAL","UNAVAILABLE","DATA_LOSS"]},"message":{"type":"string","description":"A developer-facing error message in English. message"}}},"createdBy":{"type":"string","description":"createdBy"},"referenceState":{"type":"string","description":"ReferenceState indicates whether the session currently references the\nbase model or a loaded LoRA adapter. Updated automatically when\nLoadTrainingSessionState is called.\n\n - BASE: Session is using the base model (no adapter loaded).\n - ADAPTER: Session has a LoRA adapter loaded. referenceState","enum":["TRAINING_SESSION_REFERENCE_STATE_UNSPECIFIED","BASE","ADAPTER"]},"baseModel":{"type":"string","description":"Base model resource name (accounts/{a}/models/{m}). Supplied at create_model\n(bind), not at create_session (reserve) — so OPTIONAL at the wire level and\nset-once / IMMUTABLE thereafter. baseModel"}}},"example":{"name":"","displayName":"","createTime":"","updateTime":"","state":"","status":{},"createdBy":"","referenceState":"","baseModel":""}}}}}},"/v1/accounts/{account_id}/trainingSessions/{training_session_id}":{"get":{"tags":["Training"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"training_session_id","in":"path","description":"The Training Session Id","required":true,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"readMask","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/trainingSessions/{training_session_id}"},"summary":"Get a training session.","description":"Get a training session.","security":[{"bearerAuth":[]}]},"delete":{"tags":["Training"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"training_session_id","in":"path","description":"The Training Session Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/trainingSessions/{training_session_id}"},"summary":"Delete a training session. Releases the shared-trainer binding before\nremoving the row; the session transitions DELETING → gone.","description":"Delete a training session. Releases the shared-trainer binding before\nremoving the row; the session transitions DELETING → gone.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/v1/accounts/{account_id}/trainingSessions/{training_session_id}/checkpoints":{"get":{"tags":["Checkpoints"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"training_session_id","in":"path","description":"The Training Session Id","required":true,"schema":{"type":"string","example":""}},{"name":"pageSize","in":"query","description":"pageSize","required":false,"schema":{"type":"integer","example":""}},{"name":"pageToken","in":"query","description":"Opaque cursor from a previous response's next_page_token; resume\nlisting after it. Do not parse or construct this value.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/trainingSessions/{training_session_id}/checkpoints"},"summary":"List the checkpoints saved during a TrainingSession. Access is scoped\nto the session's account.","description":"List the checkpoints saved during a TrainingSession. Access is scoped\nto the session's account.","security":[{"bearerAuth":[]}]}},"/v1/accounts/{account_id}/trainingSessions/{training_session_id}/checkpoints/{checkpoint_id}:promote":{"post":{"tags":["Checkpoints"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"training_session_id","in":"path","description":"The Training Session Id","required":true,"schema":{"type":"string","example":""}},{"name":"checkpoint_id","in":"path","description":"The Checkpoint Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/trainingSessions/{training_session_id}/checkpoints/{checkpoint_id}:promote"},"summary":"Promote a checkpoint saved during a TrainingSession into a\ncustomer-owned Model, identified by checkpoint_name. Only promotable\n(inference) checkpoints can be promoted.","description":"Promote a checkpoint saved during a TrainingSession into a\ncustomer-owned Model, identified by checkpoint_name. Only promotable\n(inference) checkpoints can be promoted.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"outputModel":{"type":"string","description":"Output Model resource name (accounts/{a}/models/{m}); the account must\nmatch the checkpoint's account. outputModel","required":true},"baseModel":{"type":"string","description":"Base Model resource name the training run started from. baseModel","required":true}}},"example":{"outputModel":"","baseModel":""}}}}}},"/v1/accounts/{account_id}/trainingSessions/{training_session_id}/chunkOutputs":{"get":{"tags":["Chunk Outputs"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"training_session_id","in":"path","description":"The Training Session Id","required":true,"schema":{"type":"string","example":""}},{"name":"pageSize","in":"query","description":"pageSize","required":false,"schema":{"type":"integer","example":""}},{"name":"pageToken","in":"query","description":"pageToken","required":false,"schema":{"type":"string","example":""}},{"name":"filter","in":"query","description":"AIP filter expression evaluated against TrainingSessionChunkOutput's\nFilterDefs (step, end_of_epoch, epoch_id, output_dataset_name, etc).\nEmpty = no filter.","required":false,"schema":{"type":"string","example":""}},{"name":"orderBy","in":"query","description":"AIP order-by clause evaluated against TrainingSessionChunkOutput's\nOrderDefs. Empty defaults to \"step asc\" (chunks appear in training order).","required":false,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"readMask","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/trainingSessions/{training_session_id}/chunkOutputs"},"summary":"List chunk completion events on a TrainingSession.","description":"List chunk completion events on a TrainingSession.","security":[{"bearerAuth":[]}]},"post":{"tags":["Chunk Outputs"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"training_session_id","in":"path","description":"The Training Session Id","required":true,"schema":{"type":"string","example":""}},{"name":"trainingSessionChunkOutputId","in":"query","description":"Optional client-chosen id; server generates one if empty. The natural\nkey on the row is (session, step) — server rejects duplicates.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/trainingSessions/{training_session_id}/chunkOutputs"},"summary":"Create a chunk-completion row on a TrainingSession (per-chunk\ndistributions, dataset refs, checkpoints). Trainer-driven write; the\nserver validates the parent session and materializes the row.","description":"Create a chunk-completion row on a TrainingSession (per-chunk\ndistributions, dataset refs, checkpoints). Trainer-driven write; the\nserver validates the parent session and materializes the row.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"name"},"step":{"type":"integer","description":"step"},"endOfEpoch":{"type":"boolean","description":"endOfEpoch"},"outputDatasetName":{"type":"string","description":"outputDatasetName"},"checkpointPath":{"type":"string","description":"Server-signed URL (24h TTL) suitable for direct browser download. Empty\nstring when signing is unavailable for the underlying object. checkpointPath"},"epochStreamlogPath":{"type":"string","description":"Server-signed URL (24h TTL). Empty when signing is unavailable. epochStreamlogPath"},"distribution":{"type":"object","description":"distribution","properties":{"metrics":{"type":"object","description":"Keyed by metric name (e.g. \"reward\", \"format_valid\"). metrics"},"correlation":{"type":"object","description":"CorrelationMatrix is a square matrix; rows[i].values[j] is the Pearson\ncorrelation between labels[i] and labels[j]. correlation"}}},"epochId":{"type":"string","description":"epochId"},"createTime":{"type":"string","description":"createTime"},"updateTime":{"type":"string","description":"updateTime"}}},"example":{"name":"","step":"","endOfEpoch":"","outputDatasetName":"","checkpointPath":"","epochStreamlogPath":"","distribution":{},"epochId":"","createTime":"","updateTime":""}}}}}},"/v1/accounts/{account_id}/trainingSessions/{training_session_id}/trainingCurves":{"get":{"tags":["Training"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"training_session_id","in":"path","description":"The Training Session Id","required":true,"schema":{"type":"string","example":""}},{"name":"metricKeys","in":"query","description":"Metric keys to project (a row-selector over the returned curves, NOT\nan AIP-160 predicate — see `filter` below). Empty = all metrics.","required":false,"schema":{"type":"array","example":""}},{"name":"maxPoints","in":"query","description":"Optional server-side downsampling cap per curve. 0 disables downsampling.","required":false,"schema":{"type":"integer","example":""}},{"name":"pageSize","in":"query","description":"Standard List fields (AIP-132).","required":false,"schema":{"type":"integer","example":""}},{"name":"pageToken","in":"query","description":"pageToken","required":false,"schema":{"type":"string","example":""}},{"name":"filter","in":"query","description":"AIP-160 filter — predicate over curve rows (e.g. step ranges). Distinct\nfrom `metric_keys`, which is a projection over which metrics to return.","required":false,"schema":{"type":"string","example":""}},{"name":"orderBy","in":"query","description":"orderBy","required":false,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"readMask","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/trainingSessions/{training_session_id}/trainingCurves"},"summary":"List scalar training curves for line charts on a TrainingSession.","description":"List scalar training curves for line charts on a TrainingSession.","security":[{"bearerAuth":[]}]}},"/v1/accounts/{account_id}/trainingSessions/{training_session_id}:loadState":{"post":{"tags":["Training"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"training_session_id","in":"path","description":"The Training Session Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/trainingSessions/{training_session_id}:loadState"},"summary":"Load or switch the LoRA adapter state for a training session.","description":"Load or switch the LoRA adapter state for a training session.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"path":{"type":"string","description":"Adapter checkpoint path to load into the training session. path","required":true}}},"example":{"path":""}}}}}},"/v1/accounts/{account_id}/trainingSessions/{training_session_id}:logMetrics":{"post":{"tags":["Training"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"training_session_id","in":"path","description":"The Training Session Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/trainingSessions/{training_session_id}:logMetrics"},"summary":"Log scalar training metrics on a TrainingSession (append-only time-series,\nupserts on (session, key, step) so retries are idempotent).","description":"Log scalar training metrics on a TrainingSession (append-only time-series,\nupserts on (session, key, step) so retries are idempotent).","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"points":{"type":"array","description":"Batch of metric observations. Server caps the per-request batch size to\nbound upsert statement parameter count. points","required":true,"items":{"type":"object","properties":{"key":{"type":"string","description":"Metric identifier (e.g. \"reward\", \"loss\", \"accuracy\"). Required. key"},"value":{"type":"number","description":"Observed scalar value at this step. value"},"step":{"type":"string","description":"Training step the observation was made at. Monotonic per (session, key). step"},"timestamp":{"type":"string","description":"Optional client-supplied wall-clock timestamp. Defaults to server time. timestamp"}}}}}},"example":{"points":[]}}}}}},"/v1/accounts/{account_id}/trainingShapes":{"get":{"tags":["Training"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"pageSize","in":"query","description":"The maximum number of resources to return. Max page_size is 200; values above 200 are coerced to 200.\nIf unspecified, the default is 50.","required":false,"schema":{"type":"integer","example":""}},{"name":"pageToken","in":"query","description":"A page token from a previous ListTrainingShapes call.","required":false,"schema":{"type":"string","example":""}},{"name":"filter","in":"query","description":"Filter per AIP-160.","required":false,"schema":{"type":"string","example":""}},{"name":"orderBy","in":"query","description":"Order by fields, default \"create_time\".","required":false,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/trainingShapes"},"summary":"List Training Shapes","description":"List Training Shapes","security":[{"bearerAuth":[]}]},"post":{"tags":["Training"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"trainingShapeId","in":"query","description":"The ID of the training shape. If not specified, a random ID will be generated.\nMust follow AIP-122 segment format and start with a letter.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/trainingShapes"},"summary":"CRUD APIs for training shape.\nCreate Training Shape","description":"CRUD APIs for training shape.\nCreate Training Shape","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"The resource name of the training shape. e.g. accounts/my-account/trainingShapes/my-training-shape name"},"displayName":{"type":"string","description":"Human-readable display name of the training shape. e.g. \"Llama3 70B H200 BF16\"\nMust be fewer than 64 characters long. displayName"},"description":{"type":"string","description":"The description of the training shape. Must be fewer than 1000 characters long. description"},"createTime":{"type":"string","description":"The creation time of the training shape. createTime"},"updateTime":{"type":"string","description":"The update time for the training shape. updateTime"},"baseModel":{"type":"string","description":"The base model name. e.g. accounts/fireworks/models/llama-3-70b baseModel","required":true},"deploymentShapeVersion":{"type":"string","description":"The validated deployment shape version used for numerics verification.\ne.g. accounts/fireworks/deploymentShapes/rft-qwen3-4b/versions/abcd1234 deploymentShapeVersion"},"trainerImageTag":{"type":"string","description":"The validated trainer runtime image tag used for numerics verification. trainerImageTag","required":true},"trainerMode":{"type":"string","description":"Trainer execution mode used for validated launch-profile matching. trainerMode","enum":["TRAINER_MODE_UNSPECIFIED","POLICY_TRAINER","FORWARD_ONLY","LORA_TRAINER"]},"nodeCount":{"type":"integer","description":"Node count validated for the launch profile. nodeCount"},"trainerShardingScheme":{"type":"object","description":"Structured parallelism/sharding profile used by trainer launches. trainerShardingScheme","properties":{"tensorParallelism":{"type":"integer","description":"Tensor-parallel degree. 0 means unspecified (server defaults to 1). tensorParallelism"},"pipelineParallelism":{"type":"integer","description":"Pipeline-parallel degree. 0 means unspecified (server defaults to 1). pipelineParallelism"},"contextParallelism":{"type":"integer","description":"Context-parallel degree. 0 means unspecified (server defaults to 1). contextParallelism"},"expertParallelism":{"type":"integer","description":"Expert-parallel degree. 0 means unspecified (server defaults to 1). expertParallelism"},"sequenceParallelism":{"type":"boolean","description":"Whether sequence parallelism should be enabled. sequenceParallelism"}}},"modelType":{"type":"string","description":"The model type of the base model (e.g. \"llama\", \"qwen\"). modelType"},"parameterCount":{"type":"string","description":"The parameter count of the base model, used for billion-parameter bucket matching. parameterCount"},"acceleratorType":{"type":"string","description":"acceleratorType","enum":["ACCELERATOR_TYPE_UNSPECIFIED","NVIDIA_A100_80GB","NVIDIA_H100_80GB","AMD_MI300X_192GB","NVIDIA_A10G_24GB","NVIDIA_A100_40GB","NVIDIA_L4_24GB","NVIDIA_H200_141GB","NVIDIA_B200_180GB","AMD_MI325X_256GB","AMD_MI350X_288GB","NVIDIA_B300_288GB","NVIDIA_GB200","NVIDIA_GB300"]},"acceleratorCount":{"type":"integer","description":"Total number of accelerators used by the job. acceleratorCount"},"baseModelWeightPrecision":{"type":"string","description":"The weight precision for model training/inference.\n\n - BFLOAT16: no quantization applied\n - INT8: enable 8-bit quantization with LLM.int8()\n - NF4: enable 4-bit quantization with LLM.nf4()\n - FP8: base model quantization in FP8\n - FP4_FP8: base model linear module quantization in FP4, mixed with experts and some special keys/layers in FP8. baseModelWeightPrecision","enum":["WEIGHT_PRECISION_UNSPECIFIED","BFLOAT16","INT8","NF4","FP8","FP4_FP8"]},"maxSupportedContextLength":{"type":"integer","description":"Capacity limits validated for this shape. maxSupportedContextLength"},"minTotalAcceleratorCount":{"type":"integer","description":"Minimum total accelerator count (world size, across all data-parallel\nreplicas) this shape has been validated at.\nWritten from shape-validation CI evidence; do not hand-edit downward. minTotalAcceleratorCount"}}},"example":{"name":"","displayName":"","description":"","createTime":"","updateTime":"","baseModel":"","deploymentShapeVersion":"","trainerImageTag":"","trainerMode":"","nodeCount":"","trainerShardingScheme":{},"modelType":"","parameterCount":"","acceleratorType":"","acceleratorCount":"","baseModelWeightPrecision":"","maxSupportedContextLength":"","minTotalAcceleratorCount":""}}}}}},"/v1/accounts/{account_id}/trainingShapes/{training_shape_id}":{"get":{"tags":["Training"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"training_shape_id","in":"path","description":"The Training Shape Id","required":true,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/trainingShapes/{training_shape_id}"},"summary":"Get Training Shape","description":"Get Training Shape","security":[{"bearerAuth":[]}]},"patch":{"tags":["Training"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"training_shape_id","in":"path","description":"The Training Shape Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/trainingShapes/{training_shape_id}"},"summary":"Update Training Shape","description":"Update Training Shape","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"displayName":{"type":"string","description":"Human-readable display name of the training shape. e.g. \"Llama3 70B H200 BF16\"\nMust be fewer than 64 characters long. displayName"},"description":{"type":"string","description":"The description of the training shape. Must be fewer than 1000 characters long. description"},"createTime":{"type":"string","description":"The creation time of the training shape. createTime"},"updateTime":{"type":"string","description":"The update time for the training shape. updateTime"},"baseModel":{"type":"string","description":"The base model name. e.g. accounts/fireworks/models/llama-3-70b baseModel","required":true},"deploymentShapeVersion":{"type":"string","description":"The validated deployment shape version used for numerics verification.\ne.g. accounts/fireworks/deploymentShapes/rft-qwen3-4b/versions/abcd1234 deploymentShapeVersion"},"trainerImageTag":{"type":"string","description":"The validated trainer runtime image tag used for numerics verification. trainerImageTag","required":true},"trainerMode":{"type":"string","description":"Trainer execution mode used for validated launch-profile matching. trainerMode","enum":["TRAINER_MODE_UNSPECIFIED","POLICY_TRAINER","FORWARD_ONLY","LORA_TRAINER"]},"nodeCount":{"type":"integer","description":"Node count validated for the launch profile. nodeCount"},"trainerShardingScheme":{"type":"object","description":"Structured parallelism/sharding profile used by trainer launches. trainerShardingScheme","properties":{"tensorParallelism":{"type":"integer","description":"Tensor-parallel degree. 0 means unspecified (server defaults to 1). tensorParallelism"},"pipelineParallelism":{"type":"integer","description":"Pipeline-parallel degree. 0 means unspecified (server defaults to 1). pipelineParallelism"},"contextParallelism":{"type":"integer","description":"Context-parallel degree. 0 means unspecified (server defaults to 1). contextParallelism"},"expertParallelism":{"type":"integer","description":"Expert-parallel degree. 0 means unspecified (server defaults to 1). expertParallelism"},"sequenceParallelism":{"type":"boolean","description":"Whether sequence parallelism should be enabled. sequenceParallelism"}}},"modelType":{"type":"string","description":"The model type of the base model (e.g. \"llama\", \"qwen\"). modelType"},"parameterCount":{"type":"string","description":"The parameter count of the base model, used for billion-parameter bucket matching. parameterCount"},"acceleratorType":{"type":"string","description":"acceleratorType","enum":["ACCELERATOR_TYPE_UNSPECIFIED","NVIDIA_A100_80GB","NVIDIA_H100_80GB","AMD_MI300X_192GB","NVIDIA_A10G_24GB","NVIDIA_A100_40GB","NVIDIA_L4_24GB","NVIDIA_H200_141GB","NVIDIA_B200_180GB","AMD_MI325X_256GB","AMD_MI350X_288GB","NVIDIA_B300_288GB","NVIDIA_GB200","NVIDIA_GB300"]},"acceleratorCount":{"type":"integer","description":"Total number of accelerators used by the job. acceleratorCount"},"baseModelWeightPrecision":{"type":"string","description":"The weight precision for model training/inference.\n\n - BFLOAT16: no quantization applied\n - INT8: enable 8-bit quantization with LLM.int8()\n - NF4: enable 4-bit quantization with LLM.nf4()\n - FP8: base model quantization in FP8\n - FP4_FP8: base model linear module quantization in FP4, mixed with experts and some special keys/layers in FP8. baseModelWeightPrecision","enum":["WEIGHT_PRECISION_UNSPECIFIED","BFLOAT16","INT8","NF4","FP8","FP4_FP8"]},"maxSupportedContextLength":{"type":"integer","description":"Capacity limits validated for this shape. maxSupportedContextLength"},"minTotalAcceleratorCount":{"type":"integer","description":"Minimum total accelerator count (world size, across all data-parallel\nreplicas) this shape has been validated at.\nWritten from shape-validation CI evidence; do not hand-edit downward. minTotalAcceleratorCount"}}},"example":{"displayName":"","description":"","createTime":"","updateTime":"","baseModel":"","deploymentShapeVersion":"","trainerImageTag":"","trainerMode":"","nodeCount":"","trainerShardingScheme":{},"modelType":"","parameterCount":"","acceleratorType":"","acceleratorCount":"","baseModelWeightPrecision":"","maxSupportedContextLength":"","minTotalAcceleratorCount":""}}}}},"delete":{"tags":["Training"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"training_shape_id","in":"path","description":"The Training Shape Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/trainingShapes/{training_shape_id}"},"summary":"Delete Training Shape","description":"Delete Training Shape","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/v1/accounts/{account_id}/trainingShapes/{training_shape_id}/versions":{"get":{"tags":["Model Versions"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"training_shape_id","in":"path","description":"The Training Shape Id","required":true,"schema":{"type":"string","example":""}},{"name":"pageSize","in":"query","description":"The maximum number of versions to return. Max page_size is 200; values above 200 are coerced.\nIf unspecified, the default is 50.","required":false,"schema":{"type":"integer","example":""}},{"name":"pageToken","in":"query","description":"A page token from a previous ListTrainingShapeVersions call.","required":false,"schema":{"type":"string","example":""}},{"name":"filter","in":"query","description":"Filter per AIP-160.","required":false,"schema":{"type":"string","example":""}},{"name":"orderBy","in":"query","description":"Order by fields, default \"create_time\".","required":false,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/trainingShapes/{training_shape_id}/versions"},"summary":"List Training Shapes Versions","description":"List Training Shapes Versions","security":[{"bearerAuth":[]}]}},"/v1/accounts/{account_id}/trainingShapes/{training_shape_id}/versions/{version_id}":{"get":{"tags":["Model Versions"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"training_shape_id","in":"path","description":"The Training Shape Id","required":true,"schema":{"type":"string","example":""}},{"name":"version_id","in":"path","description":"The Version Id","required":true,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/trainingShapes/{training_shape_id}/versions/{version_id}"},"summary":"Get Training Shape Version","description":"Get Training Shape Version","security":[{"bearerAuth":[]}]},"patch":{"tags":["Model Versions"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"training_shape_id","in":"path","description":"The Training Shape Id","required":true,"schema":{"type":"string","example":""}},{"name":"version_id","in":"path","description":"The Version Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/trainingShapes/{training_shape_id}/versions/{version_id}"},"summary":"Update Training Shape Version","description":"Update Training Shape Version","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"createTime":{"type":"string","description":"Creation time (used for ordering desc by default) createTime"},"snapshot":{"type":"object","description":"A training shape standardizes hardware/precision/parallelism defaults for training jobs\nof a given base model family and parameter bucket. snapshot","properties":{"name":{"type":"string","description":"The resource name of the training shape. e.g. accounts/my-account/trainingShapes/my-training-shape name"},"displayName":{"type":"string","description":"Human-readable display name of the training shape. e.g. \"Llama3 70B H200 BF16\"\nMust be fewer than 64 characters long. displayName"},"description":{"type":"string","description":"The description of the training shape. Must be fewer than 1000 characters long. description"},"createTime":{"type":"string","description":"The creation time of the training shape. createTime"},"updateTime":{"type":"string","description":"The update time for the training shape. updateTime"},"baseModel":{"type":"string","description":"The base model name. e.g. accounts/fireworks/models/llama-3-70b baseModel"},"deploymentShapeVersion":{"type":"string","description":"The validated deployment shape version used for numerics verification.\ne.g. accounts/fireworks/deploymentShapes/rft-qwen3-4b/versions/abcd1234 deploymentShapeVersion"},"trainerImageTag":{"type":"string","description":"The validated trainer runtime image tag used for numerics verification. trainerImageTag"},"trainerMode":{"type":"string","description":"Trainer execution mode used for validated launch-profile matching. trainerMode","enum":["TRAINER_MODE_UNSPECIFIED","POLICY_TRAINER","FORWARD_ONLY","LORA_TRAINER"]},"nodeCount":{"type":"integer","description":"Node count validated for the launch profile. nodeCount"}}},"validated":{"type":"boolean","description":"Whether this version has been validated through capacity tests.\nOnly superusers can set this flag. validated"},"public":{"type":"boolean","description":"If true, this version will be publicly readable. public"},"latestValidated":{"type":"boolean","description":"If true, this version is the latest validated version (at most one per shape). latestValidated"},"updateTime":{"type":"string","description":"Last update time of mutable fields such as validated/public. updateTime"}}},"example":{"createTime":"","snapshot":{},"validated":"","public":"","latestValidated":"","updateTime":""}}}}}},"/v1/accounts/{account_id}/usageCosts:query":{"post":{"tags":["Usage And Quotas"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/usageCosts:query"},"summary":"Query grouped usage cost subtotals for an account.","description":"Query grouped usage cost subtotals for an account.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"startTime":{"type":"string","description":"Inclusive lower bound for usage event timestamps. startTime"},"endTime":{"type":"string","description":"Exclusive upper bound for usage event timestamps. endTime"},"scope":{"type":"string","description":"scope","enum":["SCOPE_UNSPECIFIED","ACCOUNT","SELF"]},"groupBy":{"type":"array","description":"Dimensions to group by. At most two dimensions may be combined. HOUR and\nDAY are mutually exclusive. SESSION is intentionally filter-only to\nprevent high-cardinality enumeration. groupBy","items":{"type":"object","properties":{}}},"filter":{"type":"object","description":"Exact property filters for a usage cost query. Populated fields are ANDed. filter","properties":{"model":{"type":"string","description":"Canonical model resource name.\nFormat: accounts/{account}/models/{model} model"},"user":{"type":"string","description":"User resource name. Valid only for account-scoped queries.\nFormat: accounts/{account}/users/{user} user"},"apiKeyId":{"type":"string","description":"Stable API key ID. This is never plaintext key material. apiKeyId"},"sessionId":{"type":"string","description":"Exact client session ID. Valid only for self-scoped queries. This value is\nused only as a filter and is never returned in the response. sessionId"}}},"pageSize":{"type":"integer","description":"For paginated queries, the maximum number of grouped values to return. A\npage can contain more rows when each value spans multiple time buckets.\nZero uses the server default; values above the maximum are clamped. pageSize"},"pageToken":{"type":"string","description":"Opaque token from a previous response. Set this to retrieve the next page\nwhile keeping all other request fields unchanged. pageToken"}}},"example":{"startTime":"","endTime":"","scope":"","groupBy":[],"filter":{},"pageSize":"","pageToken":""}}}}}},"/v1/accounts/{account_id}/usageLimitIncreaseRequests":{"get":{"tags":["Usage And Quotas"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"filter","in":"query","description":"Filter expression. If empty, all requests are returned.","required":false,"schema":{"type":"string","example":""}},{"name":"pageSize","in":"query","description":"Maximum number of requests to return. Coerced to a default when unset and to\na maximum when too large.","required":false,"schema":{"type":"integer","example":""}},{"name":"pageToken","in":"query","description":"A page token from a previous call; only marks where the next page starts.","required":false,"schema":{"type":"string","example":""}},{"name":"orderBy","in":"query","description":"A comma-separated list of fields to order by. Defaults to \"create_time\".","required":false,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields are returned.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/usageLimitIncreaseRequests"},"summary":"Lists the account's limit-increase requests (admin), filterable by state.","description":"Lists the account's limit-increase requests (admin), filterable by state.","security":[{"bearerAuth":[]}]},"post":{"tags":["Usage And Quotas"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/usageLimitIncreaseRequests"},"summary":"Files a member's request to raise their own per-user serverless cap.","description":"Files a member's request to raise their own per-user serverless cap.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"Resource name.\nFormat: accounts/{account_id}/usageLimitIncreaseRequests/{request_id} name"},"userId":{"type":"string","description":"The user the request is for. Self-serve only: a member may request only for\nthemselves, so this is also the requester. userId","required":true},"requestedLimit":{"type":"object","description":"Represents an amount of money with its currency type. requestedLimit","required":true,"properties":{"currencyCode":{"type":"string","description":"The three-letter currency code defined in ISO 4217. currencyCode"},"units":{"type":"string","description":"The whole units of the amount.\nFor example if `currencyCode` is `\"USD\"`, then 1 unit is one US dollar. units"},"nanos":{"type":"integer","description":"Number of nano (10^-9) units of the amount.\nThe value must be between -999,999,999 and +999,999,999 inclusive.\nIf `units` is positive, `nanos` must be positive or zero.\nIf `units` is zero, `nanos` can be positive, zero, or negative.\nIf `units` is negative, `nanos` must be negative or zero.\nFor example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000. nanos"}}},"requestState":{"type":"string","description":"Lifecycle state of the request. requestState","enum":["REQUEST_STATE_UNSPECIFIED","PENDING","APPROVED","REJECTED"]},"createTime":{"type":"string","description":"When the request was filed. createTime"},"previousLimit":{"type":"object","description":"Represents an amount of money with its currency type. previousLimit","properties":{"currencyCode":{"type":"string","description":"The three-letter currency code defined in ISO 4217. currencyCode"},"units":{"type":"string","description":"The whole units of the amount.\nFor example if `currencyCode` is `\"USD\"`, then 1 unit is one US dollar. units"},"nanos":{"type":"integer","description":"Number of nano (10^-9) units of the amount.\nThe value must be between -999,999,999 and +999,999,999 inclusive.\nIf `units` is positive, `nanos` must be positive or zero.\nIf `units` is zero, `nanos` can be positive, zero, or negative.\nIf `units` is negative, `nanos` must be negative or zero.\nFor example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000. nanos"}}},"decisionTime":{"type":"string","description":"When the request was approved or rejected. Unset while PENDING. decisionTime"},"decidedBy":{"type":"string","description":"The admin who approved or rejected it (user id, else email). Unset while\nPENDING. decidedBy"}}},"example":{"name":"","userId":"","requestedLimit":{},"requestState":"","createTime":"","previousLimit":{},"decisionTime":"","decidedBy":""}}}}}},"/v1/accounts/{account_id}/usageLimitIncreaseRequests/{usage_limit_increase_request_id}:approve":{"post":{"tags":["Usage And Quotas"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"usage_limit_increase_request_id","in":"path","description":"The Usage Limit Increase Request Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/usageLimitIncreaseRequests/{usage_limit_increase_request_id}:approve"},"summary":"Approves a pending limit-increase request (admin).","description":"Approves a pending limit-increase request (admin).","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/v1/accounts/{account_id}/usageLimitIncreaseRequests/{usage_limit_increase_request_id}:reject":{"post":{"tags":["Usage And Quotas"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"usage_limit_increase_request_id","in":"path","description":"The Usage Limit Increase Request Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/usageLimitIncreaseRequests/{usage_limit_increase_request_id}:reject"},"summary":"Rejects a pending limit-increase request (admin).","description":"Rejects a pending limit-increase request (admin).","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/v1/accounts/{account_id}/usageLimits":{"get":{"tags":["Usage And Quotas"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/usageLimits"},"summary":"Returns the account-level usage-limits singleton (default per-user cap,\nenforcement, account-wide usage rollup).","description":"Returns the account-level usage-limits singleton (default per-user cap,\nenforcement, account-wide usage rollup).","security":[{"bearerAuth":[]}]},"patch":{"tags":["Usage And Quotas"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/usageLimits"},"summary":"Updates the account-level usage-limits singleton (default per-user cap,\nenforcement).","description":"Updates the account-level usage-limits singleton (default per-user cap,\nenforcement).","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"defaultUserLimit":{"type":"object","description":"Represents an amount of money with its currency type. defaultUserLimit","properties":{"currencyCode":{"type":"string","description":"The three-letter currency code defined in ISO 4217. currencyCode"},"units":{"type":"string","description":"The whole units of the amount.\nFor example if `currencyCode` is `\"USD\"`, then 1 unit is one US dollar. units"},"nanos":{"type":"integer","description":"Number of nano (10^-9) units of the amount.\nThe value must be between -999,999,999 and +999,999,999 inclusive.\nIf `units` is positive, `nanos` must be positive or zero.\nIf `units` is zero, `nanos` can be positive, zero, or negative.\nIf `units` is negative, `nanos` must be negative or zero.\nFor example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000. nanos"}}},"enforcementMode":{"type":"string","description":"EnforcementMode controls what happens when a user reaches their limit.\n\n - DISABLED: No tracking, no notifications, no enforcement.\n - WARN: Usage is tracked but never blocked. A safe stage before BLOCK.\n - BLOCK: Usage is tracked and the user is blocked at their limit until the period\nresets. enforcementMode","enum":["ENFORCEMENT_MODE_UNSPECIFIED","DISABLED","WARN","BLOCK"]},"used":{"type":"object","description":"Represents an amount of money with its currency type. used","properties":{"currencyCode":{"type":"string","description":"The three-letter currency code defined in ISO 4217. currencyCode"},"units":{"type":"string","description":"The whole units of the amount.\nFor example if `currencyCode` is `\"USD\"`, then 1 unit is one US dollar. units"},"nanos":{"type":"integer","description":"Number of nano (10^-9) units of the amount.\nThe value must be between -999,999,999 and +999,999,999 inclusive.\nIf `units` is positive, `nanos` must be positive or zero.\nIf `units` is zero, `nanos` can be positive, zero, or negative.\nIf `units` is negative, `nanos` must be negative or zero.\nFor example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000. nanos"}}},"updateTime":{"type":"string","description":"The time the account usage limits (default cap / enforcement mode) were\nlast updated. Unset until the account row is first written. updateTime"}}},"example":{"defaultUserLimit":{},"enforcementMode":"","used":{},"updateTime":""}}}}}},"/v1/accounts/{account_id}/userUsageLimits":{"get":{"tags":["Users"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"pageSize","in":"query","description":"Maximum number of users to return. Coerced to a default when unset and to a\nmaximum when too large.","required":false,"schema":{"type":"integer","example":""}},{"name":"pageToken","in":"query","description":"A page token from a previous ListUserUsageLimits call. page_size still\nbounds every page; the token only marks where the next page starts.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/userUsageLimits"},"summary":"Lists every user's usage limits in the account (the roster: usage vs.\neffective cap and over-limit status per user).","description":"Lists every user's usage limits in the account (the roster: usage vs.\neffective cap and over-limit status per user).","security":[{"bearerAuth":[]}]}},"/v1/accounts/{account_id}/users":{"get":{"tags":["Users"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"pageSize","in":"query","description":"The maximum number of users to return. The maximum page_size is 200,\nvalues above 200 will be coerced to 200.\nIf unspecified, the default is 50.","required":false,"schema":{"type":"integer","example":""}},{"name":"pageToken","in":"query","description":"A page token, received from a previous ListUsers call. Provide this\nto retrieve the subsequent page. When paginating, all other parameters\nprovided to ListUsers must match the call that provided the page\ntoken.","required":false,"schema":{"type":"string","example":""}},{"name":"filter","in":"query","description":"Only users satisfying the provided filter (if specified) will be\nreturned. See https://google.aip.dev/160 for the filter grammar.","required":false,"schema":{"type":"string","example":""}},{"name":"orderBy","in":"query","description":"A comma-separated list of fields to order by. e.g. \"foo,bar\"\nThe default sort order is ascending. To specify a descending order for a\nfield, append a \" desc\" suffix. e.g. \"foo desc,bar\"\nSubfields are specified with a \".\" character. e.g. \"foo.bar\"\nIf not specified, the default order is by \"name\".","required":false,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/users"},"summary":"List Users","description":"List Users","security":[{"bearerAuth":[]}]},"post":{"tags":["Users"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"userId","in":"query","description":"The user ID to use in the user name. e.g. my-user\nIf not specified, a default ID is generated from user.email.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/users"},"summary":"Create User","description":"Create User","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"The resource name of the user. e.g. accounts/my-account/users/my-user name"},"displayName":{"type":"string","description":"Human-readable display name of the user. e.g. \"Alice\"\nMust be fewer than 64 characters long. displayName"},"serviceAccount":{"type":"boolean","description":"Whether this user is a service account (can only be set by admins) serviceAccount"},"createTime":{"type":"string","description":"The creation time of the user. createTime"},"role":{"type":"string","description":"The user's role: admin, user, contributor, inference-user, or custom.\nWhen set to \"custom\", the user's permissions are governed by permission_preset. role","required":true},"email":{"type":"string","description":"The user's email address. email"},"state":{"type":"string","description":"state","enum":["STATE_UNSPECIFIED","CREATING","READY","UPDATING","DELETING"]},"status":{"type":"object","description":"Mimics [https://github.com/googleapis/googleapis/blob/master/google/rpc/status.proto] status","properties":{"code":{"type":"string","description":"- OK: Not an error; returned on success.\n\nHTTP Mapping: 200 OK\n - CANCELLED: The operation was cancelled, typically by the caller.\n\nHTTP Mapping: 499 Client Closed Request\n - UNKNOWN: Unknown error.  For example, this error may be returned when\na `Status` value received from another address space belongs to\nan error space that is not known in this address space.  Also\nerrors raised by APIs that do not return enough error information\nmay be converted to this error.\n\nHTTP Mapping: 500 Internal Server Error\n - INVALID_ARGUMENT: The client specified an invalid argument.  Note that this differs\nfrom `FAILED_PRECONDITION`.  `INVALID_ARGUMENT` indicates arguments\nthat are problematic regardless of the state of the system\n(e.g., a malformed file name).\n\nHTTP Mapping: 400 Bad Request\n - DEADLINE_EXCEEDED: The deadline expired before the operation could complete. For operations\nthat change the state of the system, this error may be returned\neven if the operation has completed successfully.  For example, a\nsuccessful response from a server could have been delayed long\nenough for the deadline to expire.\n\nHTTP Mapping: 504 Gateway Timeout\n - NOT_FOUND: Some requested entity (e.g., file or directory) was not found.\n\nNote to server developers: if a request is denied for an entire class\nof users, such as gradual feature rollout or undocumented allowlist,\n`NOT_FOUND` may be used. If a request is denied for some users within\na class of users, such as user-based access control, `PERMISSION_DENIED`\nmust be used.\n\nHTTP Mapping: 404 Not Found\n - ALREADY_EXISTS: The entity that a client attempted to create (e.g., file or directory)\nalready exists.\n\nHTTP Mapping: 409 Conflict\n - PERMISSION_DENIED: The caller does not have permission to execute the specified\noperation. `PERMISSION_DENIED` must not be used for rejections\ncaused by exhausting some resource (use `RESOURCE_EXHAUSTED`\ninstead for those errors). `PERMISSION_DENIED` must not be\nused if the caller can not be identified (use `UNAUTHENTICATED`\ninstead for those errors). This error code does not imply the\nrequest is valid or the requested entity exists or satisfies\nother pre-conditions.\n\nHTTP Mapping: 403 Forbidden\n - UNAUTHENTICATED: The request does not have valid authentication credentials for the\noperation.\n\nHTTP Mapping: 401 Unauthorized\n - RESOURCE_EXHAUSTED: Some resource has been exhausted, perhaps a per-user quota, or\nperhaps the entire file system is out of space.\n\nHTTP Mapping: 429 Too Many Requests\n - FAILED_PRECONDITION: The operation was rejected because the system is not in a state\nrequired for the operation's execution.  For example, the directory\nto be deleted is non-empty, an rmdir operation is applied to\na non-directory, etc.\n\nService implementors can use the following guidelines to decide\nbetween `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`:\n (a) Use `UNAVAILABLE` if the client can retry just the failing call.\n (b) Use `ABORTED` if the client should retry at a higher level. For\n     example, when a client-specified test-and-set fails, indicating the\n     client should restart a read-modify-write sequence.\n (c) Use `FAILED_PRECONDITION` if the client should not retry until\n     the system state has been explicitly fixed. For example, if an \"rmdir\"\n     fails because the directory is non-empty, `FAILED_PRECONDITION`\n     should be returned since the client should not retry unless\n     the files are deleted from the directory.\n\nHTTP Mapping: 400 Bad Request\n - ABORTED: The operation was aborted, typically due to a concurrency issue such as\na sequencer check failure or transaction abort.\n\nSee the guidelines above for deciding between `FAILED_PRECONDITION`,\n`ABORTED`, and `UNAVAILABLE`.\n\nHTTP Mapping: 409 Conflict\n - OUT_OF_RANGE: The operation was attempted past the valid range.  E.g., seeking or\nreading past end-of-file.\n\nUnlike `INVALID_ARGUMENT`, this error indicates a problem that may\nbe fixed if the system state changes. For example, a 32-bit file\nsystem will generate `INVALID_ARGUMENT` if asked to read at an\noffset that is not in the range [0,2^32-1], but it will generate\n`OUT_OF_RANGE` if asked to read from an offset past the current\nfile size.\n\nThere is a fair bit of overlap between `FAILED_PRECONDITION` and\n`OUT_OF_RANGE`.  We recommend using `OUT_OF_RANGE` (the more specific\nerror) when it applies so that callers who are iterating through\na space can easily look for an `OUT_OF_RANGE` error to detect when\nthey are done.\n\nHTTP Mapping: 400 Bad Request\n - UNIMPLEMENTED: The operation is not implemented or is not supported/enabled in this\nservice.\n\nHTTP Mapping: 501 Not Implemented\n - INTERNAL: Internal errors.  This means that some invariants expected by the\nunderlying system have been broken.  This error code is reserved\nfor serious errors.\n\nHTTP Mapping: 500 Internal Server Error\n - UNAVAILABLE: The service is currently unavailable.  This is most likely a\ntransient condition, which can be corrected by retrying with\na backoff. Note that it is not always safe to retry\nnon-idempotent operations.\n\nSee the guidelines above for deciding between `FAILED_PRECONDITION`,\n`ABORTED`, and `UNAVAILABLE`.\n\nHTTP Mapping: 503 Service Unavailable\n - DATA_LOSS: Unrecoverable data loss or corruption.\n\nHTTP Mapping: 500 Internal Server Error code","enum":["OK","CANCELLED","UNKNOWN","INVALID_ARGUMENT","DEADLINE_EXCEEDED","NOT_FOUND","ALREADY_EXISTS","PERMISSION_DENIED","UNAUTHENTICATED","RESOURCE_EXHAUSTED","FAILED_PRECONDITION","ABORTED","OUT_OF_RANGE","UNIMPLEMENTED","INTERNAL","UNAVAILABLE","DATA_LOSS"]},"message":{"type":"string","description":"A developer-facing error message in English. message"}}},"updateTime":{"type":"string","description":"The update time for the user. updateTime"},"permissionPreset":{"type":"string","description":"The permission preset for this user. Only valid when role is \"custom\". permissionPreset"}}},"example":{"name":"","displayName":"","serviceAccount":"","createTime":"","role":"","email":"","state":"","status":{},"updateTime":"","permissionPreset":""}}}}}},"/v1/accounts/{account_id}/users/{user_id}":{"get":{"tags":["Users"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"user_id","in":"path","description":"The User Id","required":true,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/users/{user_id}"},"summary":"Get User","description":"Get User","security":[{"bearerAuth":[]}]},"patch":{"tags":["Users"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"user_id","in":"path","description":"The User Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/users/{user_id}"},"summary":"Update User","description":"Update User","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"displayName":{"type":"string","description":"Human-readable display name of the user. e.g. \"Alice\"\nMust be fewer than 64 characters long. displayName"},"serviceAccount":{"type":"boolean","description":"Whether this user is a service account (can only be set by admins) serviceAccount"},"createTime":{"type":"string","description":"The creation time of the user. createTime"},"role":{"type":"string","description":"The user's role: admin, user, contributor, inference-user, or custom.\nWhen set to \"custom\", the user's permissions are governed by permission_preset. role","required":true},"email":{"type":"string","description":"The user's email address. email"},"state":{"type":"string","description":"state","enum":["STATE_UNSPECIFIED","CREATING","READY","UPDATING","DELETING"]},"status":{"type":"object","description":"Mimics [https://github.com/googleapis/googleapis/blob/master/google/rpc/status.proto] status","properties":{"code":{"type":"string","description":"- OK: Not an error; returned on success.\n\nHTTP Mapping: 200 OK\n - CANCELLED: The operation was cancelled, typically by the caller.\n\nHTTP Mapping: 499 Client Closed Request\n - UNKNOWN: Unknown error.  For example, this error may be returned when\na `Status` value received from another address space belongs to\nan error space that is not known in this address space.  Also\nerrors raised by APIs that do not return enough error information\nmay be converted to this error.\n\nHTTP Mapping: 500 Internal Server Error\n - INVALID_ARGUMENT: The client specified an invalid argument.  Note that this differs\nfrom `FAILED_PRECONDITION`.  `INVALID_ARGUMENT` indicates arguments\nthat are problematic regardless of the state of the system\n(e.g., a malformed file name).\n\nHTTP Mapping: 400 Bad Request\n - DEADLINE_EXCEEDED: The deadline expired before the operation could complete. For operations\nthat change the state of the system, this error may be returned\neven if the operation has completed successfully.  For example, a\nsuccessful response from a server could have been delayed long\nenough for the deadline to expire.\n\nHTTP Mapping: 504 Gateway Timeout\n - NOT_FOUND: Some requested entity (e.g., file or directory) was not found.\n\nNote to server developers: if a request is denied for an entire class\nof users, such as gradual feature rollout or undocumented allowlist,\n`NOT_FOUND` may be used. If a request is denied for some users within\na class of users, such as user-based access control, `PERMISSION_DENIED`\nmust be used.\n\nHTTP Mapping: 404 Not Found\n - ALREADY_EXISTS: The entity that a client attempted to create (e.g., file or directory)\nalready exists.\n\nHTTP Mapping: 409 Conflict\n - PERMISSION_DENIED: The caller does not have permission to execute the specified\noperation. `PERMISSION_DENIED` must not be used for rejections\ncaused by exhausting some resource (use `RESOURCE_EXHAUSTED`\ninstead for those errors). `PERMISSION_DENIED` must not be\nused if the caller can not be identified (use `UNAUTHENTICATED`\ninstead for those errors). This error code does not imply the\nrequest is valid or the requested entity exists or satisfies\nother pre-conditions.\n\nHTTP Mapping: 403 Forbidden\n - UNAUTHENTICATED: The request does not have valid authentication credentials for the\noperation.\n\nHTTP Mapping: 401 Unauthorized\n - RESOURCE_EXHAUSTED: Some resource has been exhausted, perhaps a per-user quota, or\nperhaps the entire file system is out of space.\n\nHTTP Mapping: 429 Too Many Requests\n - FAILED_PRECONDITION: The operation was rejected because the system is not in a state\nrequired for the operation's execution.  For example, the directory\nto be deleted is non-empty, an rmdir operation is applied to\na non-directory, etc.\n\nService implementors can use the following guidelines to decide\nbetween `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`:\n (a) Use `UNAVAILABLE` if the client can retry just the failing call.\n (b) Use `ABORTED` if the client should retry at a higher level. For\n     example, when a client-specified test-and-set fails, indicating the\n     client should restart a read-modify-write sequence.\n (c) Use `FAILED_PRECONDITION` if the client should not retry until\n     the system state has been explicitly fixed. For example, if an \"rmdir\"\n     fails because the directory is non-empty, `FAILED_PRECONDITION`\n     should be returned since the client should not retry unless\n     the files are deleted from the directory.\n\nHTTP Mapping: 400 Bad Request\n - ABORTED: The operation was aborted, typically due to a concurrency issue such as\na sequencer check failure or transaction abort.\n\nSee the guidelines above for deciding between `FAILED_PRECONDITION`,\n`ABORTED`, and `UNAVAILABLE`.\n\nHTTP Mapping: 409 Conflict\n - OUT_OF_RANGE: The operation was attempted past the valid range.  E.g., seeking or\nreading past end-of-file.\n\nUnlike `INVALID_ARGUMENT`, this error indicates a problem that may\nbe fixed if the system state changes. For example, a 32-bit file\nsystem will generate `INVALID_ARGUMENT` if asked to read at an\noffset that is not in the range [0,2^32-1], but it will generate\n`OUT_OF_RANGE` if asked to read from an offset past the current\nfile size.\n\nThere is a fair bit of overlap between `FAILED_PRECONDITION` and\n`OUT_OF_RANGE`.  We recommend using `OUT_OF_RANGE` (the more specific\nerror) when it applies so that callers who are iterating through\na space can easily look for an `OUT_OF_RANGE` error to detect when\nthey are done.\n\nHTTP Mapping: 400 Bad Request\n - UNIMPLEMENTED: The operation is not implemented or is not supported/enabled in this\nservice.\n\nHTTP Mapping: 501 Not Implemented\n - INTERNAL: Internal errors.  This means that some invariants expected by the\nunderlying system have been broken.  This error code is reserved\nfor serious errors.\n\nHTTP Mapping: 500 Internal Server Error\n - UNAVAILABLE: The service is currently unavailable.  This is most likely a\ntransient condition, which can be corrected by retrying with\na backoff. Note that it is not always safe to retry\nnon-idempotent operations.\n\nSee the guidelines above for deciding between `FAILED_PRECONDITION`,\n`ABORTED`, and `UNAVAILABLE`.\n\nHTTP Mapping: 503 Service Unavailable\n - DATA_LOSS: Unrecoverable data loss or corruption.\n\nHTTP Mapping: 500 Internal Server Error code","enum":["OK","CANCELLED","UNKNOWN","INVALID_ARGUMENT","DEADLINE_EXCEEDED","NOT_FOUND","ALREADY_EXISTS","PERMISSION_DENIED","UNAUTHENTICATED","RESOURCE_EXHAUSTED","FAILED_PRECONDITION","ABORTED","OUT_OF_RANGE","UNIMPLEMENTED","INTERNAL","UNAVAILABLE","DATA_LOSS"]},"message":{"type":"string","description":"A developer-facing error message in English. message"}}},"updateTime":{"type":"string","description":"The update time for the user. updateTime"},"permissionPreset":{"type":"string","description":"The permission preset for this user. Only valid when role is \"custom\". permissionPreset"}}},"example":{"displayName":"","serviceAccount":"","createTime":"","role":"","email":"","state":"","status":{},"updateTime":"","permissionPreset":""}}}}}},"/v1/accounts/{account_id}/users/{user_id}/apiKeys":{"get":{"tags":["API Keys"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"user_id","in":"path","description":"The User Id","required":true,"schema":{"type":"string","example":""}},{"name":"pageSize","in":"query","description":"Number of API keys to return in the response. Pagination support to be added.","required":false,"schema":{"type":"integer","example":""}},{"name":"pageToken","in":"query","description":"Token for fetching the next page of results. Pagination support to be added.","required":false,"schema":{"type":"string","example":""}},{"name":"filter","in":"query","description":"Field for filtering results.","required":false,"schema":{"type":"string","example":""}},{"name":"orderBy","in":"query","description":"Field for ordering results.","required":false,"schema":{"type":"string","example":""}},{"name":"readMask","in":"query","description":"The fields to be returned in the response. If empty or \"*\", all fields will be returned.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/users/{user_id}/apiKeys"},"summary":"List API Keys","description":"List API Keys","security":[{"bearerAuth":[]}]},"post":{"tags":["API Keys"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"user_id","in":"path","description":"The User Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/users/{user_id}/apiKeys"},"summary":"Create API Key","description":"Create API Key","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"apiKey":{"type":"object","description":"apiKey","required":true,"properties":{"keyId":{"type":"string","description":"Unique identifier (Key ID) for the API key, used primarily for deletion. keyId"},"displayName":{"type":"string","description":"Display name for the API key, defaults to \"default\" if not specified. displayName"},"key":{"type":"string","description":"The actual API key value, only available upon creation and not stored thereafter. key"},"createTime":{"type":"string","description":"Timestamp indicating when the API key was created. createTime"},"secure":{"type":"boolean","description":"Indicates whether the plaintext value of the API key is unknown to Fireworks.\nIf true, Fireworks does not know this API key's plaintext value. If false, Fireworks does\nknow the plaintext value. secure"},"email":{"type":"string","description":"Email of the user who owns this API key. email"},"prefix":{"type":"string","description":"The first few characters of the API key to visually identify it prefix"},"expireTime":{"type":"string","description":"Timestamp indicating when the API key will expire. If not set, the key never expires. expireTime"},"annotations":{"type":"object","description":"Optional key-value annotations for this API key. annotations"},"lastUsed":{"type":"string","description":"Timestamp indicating when the API key was last used. Not set if the key has never been used. lastUsed"}}}}},"example":{"apiKey":{}}}}}}},"/v1/accounts/{account_id}/users/{user_id}/apiKeys/accounts/{account_id}/users/{user_id}":{"get":{"tags":["API Keys"],"parameters":[{"name":"keyId","in":"path","description":"The key ID for the API key.","required":true,"schema":{"type":"string","example":""}},{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"user_id","in":"path","description":"The User Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/users/{user_id}/apiKeys/accounts/{account_id}/users/{user_id}"},"summary":"Get API Key","description":"Get API Key","security":[{"bearerAuth":[]}]},"patch":{"tags":["API Keys"],"parameters":[{"name":"apiKey.keyId","in":"path","description":"Unique identifier (Key ID) for the API key, used primarily for deletion.","required":true,"schema":{"type":"string","example":""}},{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"user_id","in":"path","description":"The User Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/users/{user_id}/apiKeys/accounts/{account_id}/users/{user_id}"},"summary":"Update API Key. Only `display_name` and `expire_time` may be modified;","description":"Update API Key. Only `display_name` and `expire_time` may be modified;","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"displayName":{"type":"string","description":"Display name for the API key, defaults to \"default\" if not specified. displayName"},"key":{"type":"string","description":"The actual API key value, only available upon creation and not stored thereafter. key"},"createTime":{"type":"string","description":"Timestamp indicating when the API key was created. createTime"},"secure":{"type":"boolean","description":"Indicates whether the plaintext value of the API key is unknown to Fireworks.\nIf true, Fireworks does not know this API key's plaintext value. If false, Fireworks does\nknow the plaintext value. secure"},"email":{"type":"string","description":"Email of the user who owns this API key. email"},"prefix":{"type":"string","description":"The first few characters of the API key to visually identify it prefix"},"expireTime":{"type":"string","description":"Timestamp indicating when the API key will expire. If not set, the key never expires. expireTime"},"annotations":{"type":"object","description":"Optional key-value annotations for this API key. annotations"},"lastUsed":{"type":"string","description":"Timestamp indicating when the API key was last used. Not set if the key has never been used. lastUsed"},"isFirepass":{"type":"boolean","description":"True when this key is a FirePass inference key. isFirepass"}}},"example":{"displayName":"","key":"","createTime":"","secure":"","email":"","prefix":"","expireTime":"","annotations":{},"lastUsed":"","isFirepass":""}}}}}},"/v1/accounts/{account_id}/users/{user_id}/apiKeys:delete":{"post":{"tags":["API Keys"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"user_id","in":"path","description":"The User Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/users/{user_id}/apiKeys:delete"},"summary":"Delete API Key","description":"Delete API Key","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"keyId":{"type":"string","description":"The key ID for the API key. keyId","required":true}}},"example":{"keyId":""}}}}}},"/v1/accounts/{account_id}/users/{user_id}/usageLimits":{"get":{"tags":["Usage And Quotas"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"user_id","in":"path","description":"The User Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/users/{user_id}/usageLimits"},"summary":"Returns a single user's usage-limits singleton (override, effective cap,\nusage, and whether they are over limit).","description":"Returns a single user's usage-limits singleton (override, effective cap,\nusage, and whether they are over limit).","security":[{"bearerAuth":[]}]},"patch":{"tags":["Usage And Quotas"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}},{"name":"user_id","in":"path","description":"The User Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}/users/{user_id}/usageLimits"},"summary":"Updates a single user's usage-limits singleton (limit_override). Clearing\nthe override reverts the user to the account default.","description":"Updates a single user's usage-limits singleton (limit_override). Clearing\nthe override reverts the user to the account default.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"limitOverride":{"type":"object","description":"Represents an amount of money with its currency type. limitOverride","properties":{"currencyCode":{"type":"string","description":"The three-letter currency code defined in ISO 4217. currencyCode"},"units":{"type":"string","description":"The whole units of the amount.\nFor example if `currencyCode` is `\"USD\"`, then 1 unit is one US dollar. units"},"nanos":{"type":"integer","description":"Number of nano (10^-9) units of the amount.\nThe value must be between -999,999,999 and +999,999,999 inclusive.\nIf `units` is positive, `nanos` must be positive or zero.\nIf `units` is zero, `nanos` can be positive, zero, or negative.\nIf `units` is negative, `nanos` must be negative or zero.\nFor example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000. nanos"}}},"effectiveLimit":{"type":"object","description":"Represents an amount of money with its currency type. effectiveLimit","properties":{"currencyCode":{"type":"string","description":"The three-letter currency code defined in ISO 4217. currencyCode"},"units":{"type":"string","description":"The whole units of the amount.\nFor example if `currencyCode` is `\"USD\"`, then 1 unit is one US dollar. units"},"nanos":{"type":"integer","description":"Number of nano (10^-9) units of the amount.\nThe value must be between -999,999,999 and +999,999,999 inclusive.\nIf `units` is positive, `nanos` must be positive or zero.\nIf `units` is zero, `nanos` can be positive, zero, or negative.\nIf `units` is negative, `nanos` must be negative or zero.\nFor example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000. nanos"}}},"used":{"type":"object","description":"Represents an amount of money with its currency type. used","properties":{"currencyCode":{"type":"string","description":"The three-letter currency code defined in ISO 4217. currencyCode"},"units":{"type":"string","description":"The whole units of the amount.\nFor example if `currencyCode` is `\"USD\"`, then 1 unit is one US dollar. units"},"nanos":{"type":"integer","description":"Number of nano (10^-9) units of the amount.\nThe value must be between -999,999,999 and +999,999,999 inclusive.\nIf `units` is positive, `nanos` must be positive or zero.\nIf `units` is zero, `nanos` can be positive, zero, or negative.\nIf `units` is negative, `nanos` must be negative or zero.\nFor example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000. nanos"}}},"enforcementMode":{"type":"string","description":"EnforcementMode controls what happens when a user reaches their limit.\n\n - DISABLED: No tracking, no notifications, no enforcement.\n - WARN: Usage is tracked but never blocked. A safe stage before BLOCK.\n - BLOCK: Usage is tracked and the user is blocked at their limit until the period\nresets. enforcementMode","enum":["ENFORCEMENT_MODE_UNSPECIFIED","DISABLED","WARN","BLOCK"]},"exceededUntil":{"type":"string","description":"When set, the user is over their limit and blocked until this time (the end\nof the current consumption period). Unset when the user is not over limit.\nComputed at read time; not stored. exceededUntil"},"updateTime":{"type":"string","description":"The time this user's override was last set or changed. Unset when the user\nhas no override (they inherit the account default); it tracks the override\nrow, not account-default changes. updateTime"}}},"example":{"limitOverride":{},"effectiveLimit":{},"used":{},"enforcementMode":"","exceededUntil":"","updateTime":""}}}}}},"/v1/accounts/{account_id}:testeval":{"post":{"tags":["Other"],"parameters":[{"name":"account_id","in":"path","description":"The Account Id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/accounts/{account_id}:testeval"},"summary":"Similar to preview evaluation, but no need to create the evaluation entry first.","description":"Similar to preview evaluation, but no need to create the evaluation entry first.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"evaluation":{"type":"object","description":"evaluation","required":true,"properties":{"name":{"type":"string","description":"Current fields in your proto name"},"createTime":{"type":"string","description":"createTime"},"createdBy":{"type":"string","description":"createdBy"},"status":{"type":"object","description":"Mimics [https://github.com/googleapis/googleapis/blob/master/google/rpc/status.proto] status"},"evaluationType":{"type":"string","description":"string llm_evaluator_prompt = 6; evaluationType"},"description":{"type":"string","description":"Optional description of the evaluation description"},"providers":{"type":"array","description":"One or more providers to use providers"},"assertions":{"type":"array","description":"One or more assertions to evaluate assertions"},"updateTime":{"type":"string","description":"The update time for the evaluation. updateTime"}}},"sampleData":{"type":"string","description":"Sample data in JSON format (array of samples) sampleData","required":true}}},"example":{"evaluation":{},"sampleData":""}}}}}},"/v1/auth/refresh":{"post":{"tags":["Refresh"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/auth/refresh"},"summary":"Refresh a session JWT before expiry with a fresh TTL.","description":"Refresh a session JWT before expiry with a fresh TTL.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"refreshToken":{"type":"string","description":"The refresh token used to mint a fresh access token. refreshToken"}}},"example":{"refreshToken":""}}}}}},"/v1/creditCodes:redeem":{"post":{"tags":["Other"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/creditCodes:redeem"},"summary":"APIs for credit codes.\nRedeem Credit Code","description":"APIs for credit codes.\nRedeem Credit Code","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"code":{"type":"string","description":"The user-facing credit code string (e.g., \"HACKATHON_2025\"). code","required":true},"name":{"type":"string","description":"The resource name of the account redeeming the credit code. name","required":true}}},"example":{"code":"","name":""}}}}}},"/v1/validateModelConfig":{"post":{"tags":["Other"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/v1/validateModelConfig"},"summary":"Validate Model Config","description":"Validate Model Config","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"configJson":{"type":"string","description":"The config JSON of the model. configJson","required":true},"tokenizerConfigJson":{"type":"string","description":"The tokenizer config JSON of the model. tokenizerConfigJson"}}},"example":{"configJson":"","tokenizerConfigJson":""}}}}}},"/v1/chat/completions":{"post":{"tags":["Chat Completions"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/chat-completions","api_endpoint":"https://api.fireworks.ai/inference/v1/chat/completions"},"summary":"Create Chat Completion","description":"Create Chat Completion","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"model":{"type":"string","description":"The name of the model to use.\n\nExample: `\"accounts/fireworks/models/kimi-k2-instruct-0905\"` model","required":true},"messages":{"type":"array","description":"A list of messages comprising the conversation so far. When ``prompt_token_ids`` is supplied this field is ignored (the caller is taking responsibility for chat-template rendering and tokenization upstream). messages","items":{"type":"object","properties":{"role":{"type":"string","description":"The role of the messages author. One of `system`, `user`, or `assistant`. role"},"content":{"type":"string","description":"content"},"reasoning_content":{"type":"string","description":"reasoning_content"},"tool_calls":{"type":"array","description":"tool_calls"},"tool_call_id":{"type":"string","description":"tool_call_id"}}}},"tools":{"type":"array","description":"A list of tools the model may call. Currently, only functions are supported as a tool.\n\nUse this to provide a list of functions the model may generate JSON inputs for.\n\nSee the our [model library](https://app.fireworks.ai/models/?filter=LLM&functionCalling=true) for the list of supported models tools","items":{"type":"object","properties":{"type":{"type":"string","description":"The type of the tool. Currently, only `function` is supported. type","enum":["function"]},"function":{"type":"object","description":"ChatCompletionFunction function"}}}},"tool_choice":{"type":"string","description":"tool_choice","enum":["auto","none","any","required"]},"stream":{"type":"boolean","description":"stream"},"response_format":{"type":"object","description":"ResponseFormat response_format","properties":{"type":{"type":"string","description":"Type type","enum":["json_object","json_schema","grammar","text"]},"schema":{"type":"object","description":"schema"},"grammar":{"type":"string","description":"grammar"},"json_schema":{"type":"object","description":"json_schema"}}},"temperature":{"type":"number","description":"temperature"},"top_k":{"type":"integer","description":"top_k"},"user":{"type":"string","description":"user"},"prompt_cache_key":{"type":"string","description":"prompt_cache_key"},"prompt_cache_isolation_key":{"type":"string","description":"prompt_cache_isolation_key"},"raw_output":{"type":"boolean","description":"raw_output"},"perf_metrics_in_response":{"type":"boolean","description":"perf_metrics_in_response"},"stream_options":{"type":"object","description":"StreamOptions stream_options","properties":{"include_usage":{"type":"boolean","description":"include_usage"},"include_internal_content":{"type":"boolean","description":"include_internal_content"},"buffer_tokens":{"type":"integer","description":"buffer_tokens"},"buffer_ms":{"type":"number","description":"buffer_ms"},"buffer_mode":{"type":"string","description":"buffer_mode","enum":["any","all"]}}},"n":{"type":"integer","description":"How many completions to generate for each prompt.\n\n**Note:** Because this parameter generates many completions, it can quickly consume your token quota. Use carefully and ensure that you have reasonable settings for `max_tokens` and `stop`.\n\nRequired range: `1 <= x <= 128`\n\nExample: `1` n"},"service_tier":{"type":"string","description":"The service tier to use for the request. Specifies the processing type used for serving the request. Only \"priority\" is supported, while all other values will be treated as \"default\" tier. service_tier","enum":["auto","default","flex","priority"]},"stop":{"type":"string","description":"stop"},"max_tokens":{"type":"integer","description":"max_tokens"},"max_completion_tokens":{"type":"integer","description":"max_completion_tokens"},"top_p":{"type":"number","description":"top_p"},"min_p":{"type":"number","description":"min_p"},"typical_p":{"type":"number","description":"typical_p"},"frequency_penalty":{"type":"number","description":"frequency_penalty"},"presence_penalty":{"type":"number","description":"presence_penalty"},"repetition_penalty":{"type":"number","description":"repetition_penalty"},"mirostat_target":{"type":"number","description":"mirostat_target"},"mirostat_lr":{"type":"number","description":"mirostat_lr"},"seed":{"type":"integer","description":"seed"},"logprobs":{"type":"integer","description":"logprobs"},"top_logprobs":{"type":"integer","description":"top_logprobs"},"sampling_mask":{"type":"string","description":"sampling_mask","enum":["count","non_zero_list","non_zero_buffer"]},"echo":{"type":"boolean","description":"echo"},"echo_last":{"type":"integer","description":"echo_last"},"ignore_eos":{"type":"boolean","description":"This setting controls whether the model should ignore the End of Sequence (EOS) token. When set to `True`, the model will continue generating tokens even after the EOS token is produced. By default, it stops when the EOS token is reached. ignore_eos"},"context_length_exceeded_behavior":{"type":"string","description":"What to do if the token count of prompt plus `max_tokens` exceeds the model's context window.\n\nPassing `truncate` limits the `max_tokens` to at most `context_window_length - prompt_length`. This is the default.\n\nPassing `error` would trigger a request error.\n\nThe default of `'truncate'` is selected as it allows to ask for high `max_tokens` value while respecting the context window length without having to do client-side prompt tokenization.\n\nNote, that it differs from OpenAI's behavior that matches that of `error`. context_length_exceeded_behavior","enum":["error","truncate"]},"logit_bias":{"type":"object","description":"logit_bias"},"speculation":{"type":"string","description":"speculation"},"prediction":{"type":"object","description":"OpenAI-compatible struct for the \"speculation\" field. prediction","properties":{"content":{"type":"string","description":"content"},"type":{"type":"string","description":"Type type"}}},"metadata":{"type":"object","description":"metadata"},"reasoning_effort":{"type":"string","description":"reasoning_effort","enum":["low","medium","high","xhigh","max","none","adaptive"]},"reasoning_history":{"type":"string","description":"reasoning_history","enum":["disabled","interleaved","preserved"]},"thinking":{"type":"object","description":"Configuration for enabling extended thinking (Anthropic-compatible format). thinking","properties":{"type":{"type":"string","description":"Type type"},"budget_tokens":{"type":"integer","description":"budget_tokens"},"keep":{"type":"string","description":"keep"},"budget_end_str":{"type":"string","description":"budget_end_str"},"effort":{"type":"string","description":"effort","enum":["low","medium","high","xhigh","max","none","adaptive"]}}},"return_token_ids":{"type":"boolean","description":"return_token_ids"},"prompt_token_ids":{"type":"array","description":"prompt_token_ids","items":{"type":"number"}},"functions":{"type":"array","description":"Deprecated in OpenAI. Use 'tools' instead. This will be automatically transformed to tools. functions","items":{"type":"object","properties":{"name":{"type":"string","description":"The name of the function to be called. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64. name"},"description":{"type":"string","description":"description"},"parameters":{"type":"object","description":"The parameters the function accepts, described as a JSON Schema object.\n\nThe JSON Schema object should have the following structure:\n\n```json\n{\n  \"type\": \"object\",\n  \"required\": [\"param1\", \"param2\"],\n  \"properties\": {\n    \"param1\": {\n      \"type\": \"string\",\n      \"description\": \"...\"\n    },\n    \"param2\": {\n      \"type\": \"number\",\n      \"description\": \"...\"\n    }\n  }\n}\n```\n\n- The `type` field must be `\"object\"`.\n- The `required` field is an array of strings indicating which parameters are required.\n- The `properties` field is a map of property names to their definitions, where each property is an object with `type` (string) and `description` (string) fields.\n\nTo describe a function that accepts no parameters, provide the value:\n\n```json\n{\"type\": \"object\", \"properties\": {}}\n``` parameters"},"strict":{"type":"boolean","description":"strict"}}}},"prompt_truncate_len":{"type":"integer","description":"prompt_truncate_len"},"parallel_tool_calls":{"type":"boolean","description":"parallel_tool_calls"},"safe_tokenization":{"type":"boolean","description":"safe_tokenization"},"function_call":{"type":"string","description":"function_call","enum":["auto","none"]}}},"example":{"model":"","messages":[],"tools":[],"tool_choice":"","stream":"","response_format":{},"temperature":"","top_k":"","user":"","prompt_cache_key":"","prompt_cache_isolation_key":"","raw_output":"","perf_metrics_in_response":"","stream_options":{},"n":"","service_tier":"","stop":"","max_tokens":"","max_completion_tokens":"","top_p":"","min_p":"","typical_p":"","frequency_penalty":"","presence_penalty":"","repetition_penalty":"","mirostat_target":"","mirostat_lr":"","seed":"","logprobs":"","top_logprobs":"","sampling_mask":"","echo":"","echo_last":"","ignore_eos":"","context_length_exceeded_behavior":"","logit_bias":{},"speculation":"","prediction":{},"metadata":{},"reasoning_effort":"","reasoning_history":"","thinking":{},"return_token_ids":"","prompt_token_ids":[],"functions":[],"prompt_truncate_len":"","parallel_tool_calls":"","safe_tokenization":"","function_call":""}}}}}},"/v1/completions":{"post":{"tags":["Text Completions"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/text-completion","api_endpoint":"https://api.fireworks.ai/inference/v1/completions"},"summary":"Create Completion","description":"Create Completion","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"model":{"type":"string","description":"The name of the model to use.\n\nExample: `\"accounts/fireworks/models/kimi-k2-instruct-0905\"` model","required":true},"user":{"type":"string","description":"user"},"prompt_cache_key":{"type":"string","description":"prompt_cache_key"},"prompt_cache_isolation_key":{"type":"string","description":"prompt_cache_isolation_key"},"raw_output":{"type":"boolean","description":"raw_output"},"perf_metrics_in_response":{"type":"boolean","description":"perf_metrics_in_response"},"stream":{"type":"boolean","description":"stream"},"stream_options":{"type":"object","description":"StreamOptions stream_options","properties":{"include_usage":{"type":"boolean","description":"include_usage"},"include_internal_content":{"type":"boolean","description":"include_internal_content"},"buffer_tokens":{"type":"integer","description":"buffer_tokens"},"buffer_ms":{"type":"number","description":"buffer_ms"},"buffer_mode":{"type":"string","description":"buffer_mode","enum":["any","all"]}}},"n":{"type":"integer","description":"How many completions to generate for each prompt.\n\n**Note:** Because this parameter generates many completions, it can quickly consume your token quota. Use carefully and ensure that you have reasonable settings for `max_tokens` and `stop`.\n\nRequired range: `1 <= x <= 128`\n\nExample: `1` n"},"service_tier":{"type":"string","description":"The service tier to use for the request. Specifies the processing type used for serving the request. Only \"priority\" is supported, while all other values will be treated as \"default\" tier. service_tier","enum":["auto","default","flex","priority"]},"stop":{"type":"string","description":"stop"},"max_tokens":{"type":"integer","description":"max_tokens"},"max_completion_tokens":{"type":"integer","description":"max_completion_tokens"},"temperature":{"type":"number","description":"temperature"},"top_k":{"type":"integer","description":"top_k"},"top_p":{"type":"number","description":"top_p"},"min_p":{"type":"number","description":"min_p"},"typical_p":{"type":"number","description":"typical_p"},"frequency_penalty":{"type":"number","description":"frequency_penalty"},"presence_penalty":{"type":"number","description":"presence_penalty"},"repetition_penalty":{"type":"number","description":"repetition_penalty"},"mirostat_target":{"type":"number","description":"mirostat_target"},"mirostat_lr":{"type":"number","description":"mirostat_lr"},"seed":{"type":"integer","description":"seed"},"logprobs":{"type":"integer","description":"logprobs"},"top_logprobs":{"type":"integer","description":"top_logprobs"},"sampling_mask":{"type":"string","description":"sampling_mask","enum":["count","non_zero_list","non_zero_buffer"]},"echo":{"type":"boolean","description":"echo"},"echo_last":{"type":"integer","description":"echo_last"},"ignore_eos":{"type":"boolean","description":"This setting controls whether the model should ignore the End of Sequence (EOS) token. When set to `True`, the model will continue generating tokens even after the EOS token is produced. By default, it stops when the EOS token is reached. ignore_eos"},"context_length_exceeded_behavior":{"type":"string","description":"What to do if the token count of prompt plus `max_tokens` exceeds the model's context window.\n\nPassing `truncate` limits the `max_tokens` to at most `context_window_length - prompt_length`. This is the default.\n\nPassing `error` would trigger a request error.\n\nThe default of `'truncate'` is selected as it allows to ask for high `max_tokens` value while respecting the context window length without having to do client-side prompt tokenization.\n\nNote, that it differs from OpenAI's behavior that matches that of `error`. context_length_exceeded_behavior","enum":["error","truncate"]},"response_format":{"type":"object","description":"ResponseFormat response_format","properties":{"type":{"type":"string","description":"Type type","enum":["json_object","json_schema","grammar","text"]},"schema":{"type":"object","description":"schema"},"grammar":{"type":"string","description":"grammar"},"json_schema":{"type":"object","description":"json_schema"}}},"logit_bias":{"type":"object","description":"logit_bias"},"speculation":{"type":"string","description":"speculation"},"prediction":{"type":"object","description":"OpenAI-compatible struct for the \"speculation\" field. prediction","properties":{"content":{"type":"string","description":"content"},"type":{"type":"string","description":"Type type"}}},"metadata":{"type":"object","description":"metadata"},"reasoning_effort":{"type":"string","description":"reasoning_effort","enum":["low","medium","high","xhigh","max","none","adaptive"]},"reasoning_history":{"type":"string","description":"reasoning_history","enum":["disabled","interleaved","preserved"]},"thinking":{"type":"object","description":"Configuration for enabling extended thinking (Anthropic-compatible format). thinking","properties":{"type":{"type":"string","description":"Type type"},"budget_tokens":{"type":"integer","description":"budget_tokens"},"keep":{"type":"string","description":"keep"},"budget_end_str":{"type":"string","description":"budget_end_str"},"effort":{"type":"string","description":"effort","enum":["low","medium","high","xhigh","max","none","adaptive"]}}},"return_token_ids":{"type":"boolean","description":"return_token_ids"},"prompt":{"type":"string","description":"prompt","required":true},"images":{"type":"array","description":"images","items":{"type":"string"}}}},"example":{"model":"","user":"","prompt_cache_key":"","prompt_cache_isolation_key":"","raw_output":"","perf_metrics_in_response":"","stream":"","stream_options":{},"n":"","service_tier":"","stop":"","max_tokens":"","max_completion_tokens":"","temperature":"","top_k":"","top_p":"","min_p":"","typical_p":"","frequency_penalty":"","presence_penalty":"","repetition_penalty":"","mirostat_target":"","mirostat_lr":"","seed":"","logprobs":"","top_logprobs":"","sampling_mask":"","echo":"","echo_last":"","ignore_eos":"","context_length_exceeded_behavior":"","response_format":{},"logit_bias":{},"speculation":"","prediction":{},"metadata":{},"reasoning_effort":"","reasoning_history":"","thinking":{},"return_token_ids":"","prompt":"","images":[]}}}}}},"/v1/responses":{"get":{"tags":["Responses"],"parameters":[{"name":"limit","in":"query","description":"limit","required":false,"schema":{"type":"integer","example":""}},{"name":"after","in":"query","description":"after","required":false,"schema":{"type":"string","example":""}},{"name":"before","in":"query","description":"before","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/responses","api_endpoint":"https://api.fireworks.ai/inference/v1/responses"},"summary":"List Responses","description":"List Responses","security":[{"bearerAuth":[]}]},"post":{"tags":["Responses"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/responses","api_endpoint":"https://api.fireworks.ai/inference/v1/responses"},"summary":"Create Response","description":"Create Response","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"model":{"type":"string","description":"The model to use for generating the response. Example: `accounts/<ACCOUNT_ID>/models/<MODEL_ID>`. model","required":true},"input":{"type":"string","description":"input","required":true},"previous_response_id":{"type":"string","description":"previous_response_id"},"instructions":{"type":"string","description":"instructions"},"max_output_tokens":{"type":"integer","description":"max_output_tokens"},"max_tool_calls":{"type":"integer","description":"max_tool_calls"},"metadata":{"type":"object","description":"metadata"},"parallel_tool_calls":{"type":"boolean","description":"parallel_tool_calls"},"reasoning":{"type":"object","description":"reasoning"},"store":{"type":"boolean","description":"store"},"stream":{"type":"boolean","description":"stream"},"temperature":{"type":"number","description":"temperature"},"text":{"type":"object","description":"text"},"tool_choice":{"type":"string","description":"tool_choice"},"tools":{"type":"array","description":"tools","items":{"type":"object","properties":{}}},"top_p":{"type":"number","description":"top_p"},"truncation":{"type":"string","description":"truncation"},"user":{"type":"string","description":"user"}}},"example":{"model":"","input":"","previous_response_id":"","instructions":"","max_output_tokens":"","max_tool_calls":"","metadata":{},"parallel_tool_calls":"","reasoning":{},"store":"","stream":"","temperature":"","text":{},"tool_choice":"","tools":[],"top_p":"","truncation":"","user":""}}}}}},"/v1/responses/{response_id}":{"get":{"tags":["Responses"],"parameters":[{"name":"response_id","in":"path","description":"response_id","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/inference/v1/responses/{response_id}"},"summary":"Get Response","description":"Get Response","security":[{"bearerAuth":[]}]},"delete":{"tags":["Responses"],"parameters":[{"name":"response_id","in":"path","description":"The ID of the response to delete","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/introduction","api_endpoint":"https://api.fireworks.ai/inference/v1/responses/{response_id}"},"summary":"Delete Response","description":"Delete Response","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/v1/messages":{"post":{"tags":["Anthropic Messages"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/anthropic-messages","api_endpoint":"https://api.fireworks.ai/inference/v1/messages"},"summary":"Create a Message","description":"Create a Message","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"model":{"type":"string","description":"The model that will complete your prompt. See the [Fireworks Model Library](https://app.fireworks.ai/models) for available models. model","required":true},"messages":{"type":"array","description":"Input messages.\n\nModels are trained to operate on alternating `user` and `assistant` conversational turns. When creating a new `Message`, you specify the prior conversational turns with the `messages` parameter, and the model then generates the next `Message` in the conversation. Consecutive `user` or `assistant` turns in your request will be combined into a single turn.\n\nEach input message must be an object with a `role` and `content`. You can specify a single `user`-role message, or you can include multiple `user` and `assistant` messages.\n\nIf the final message uses the `assistant` role, the response content will continue immediately from the content in that message. This can be used to constrain part of the model's response.\n\nExample with a single `user` message:\n\n```json\n[{\"role\": \"user\", \"content\": \"Hello\"}]\n```\n\nExample with multiple conversational turns:\n\n```json\n[\n  {\"role\": \"user\", \"content\": \"Hello there.\"},\n  {\"role\": \"assistant\", \"content\": \"Hi, I'm here to help. How can I help you?\"},\n  {\"role\": \"user\", \"content\": \"Can you explain LLMs in plain English?\"},\n]\n```\n\nExample with a partially-filled response from the model:\n\n```json\n[\n  {\"role\": \"user\", \"content\": \"What's the Greek name for Sun? (A) Sol (B) Helios (C) Sun\"},\n  {\"role\": \"assistant\", \"content\": \"The best answer is (\"},\n]\n```\n\nEach input message `content` may be either a single `string` or an array of content blocks, where each block has a specific `type`. Using a `string` for `content` is shorthand for an array of one content block of type `\"text\"`. The following input messages are equivalent:\n\n```json\n{\"role\": \"user\", \"content\": \"Hello\"}\n```\n\n```json\n{\"role\": \"user\", \"content\": [{\"type\": \"text\", \"text\": \"Hello\"}]}\n```\n\nSee [input examples](https://docs.claude.com/en/api/messages-examples).\n\nNote that if you want to include a [system prompt](/guides/querying-text-models), you can use the top-level `system` parameter — there is no `\"system\"` role for input messages in the Messages API.\n\nThere is a limit of 100,000 messages in a single request. messages","required":true,"items":{"type":"object","properties":{"content":{"type":"string","description":"content"},"role":{"type":"string","description":"Role role","enum":["user","assistant"]}}}},"max_tokens":{"type":"integer","description":"The maximum number of tokens to generate before stopping.\n\nNote that models may stop _before_ reaching this maximum. This parameter only specifies the absolute maximum number of tokens to generate.\n\nDifferent models have different maximum values for this parameter.  See [models](https://app.fireworks.ai/models) for details. max_tokens"},"metadata":{"type":"object","description":"Metadata metadata","properties":{"user_id":{"type":"string","description":"user_id"}}},"output_config":{"type":"object","description":"OutputConfig output_config","properties":{"effort":{"type":"string","description":"All possible effort levels. effort","enum":["low","medium","high","max"]},"format":{"type":"object","description":"JsonOutputFormat format"}}},"stop_sequences":{"type":"array","description":"Custom text sequences that will cause the model to stop generating.\n\nModels will normally stop when they have naturally completed their turn, which will result in a response `stop_reason` of `\"end_turn\"`.\n\nIf you want the model to stop generating when it encounters custom strings of text, you can use the `stop_sequences` parameter. If the model encounters one of the custom sequences, the response `stop_reason` value will be `\"stop_sequence\"` and the response `stop_sequence` value will contain the matched stop sequence. stop_sequences","items":{"type":"string"}},"stream":{"type":"boolean","description":"Whether to incrementally stream the response using server-sent events.\n\nSee [streaming](/guides/querying-text-models) for details. stream"},"system":{"type":"string","description":"system"},"temperature":{"type":"number","description":"Amount of randomness injected into the response.\n\nDefaults to `1.0`. Ranges from `0.0` to `1.0`. Use `temperature` closer to `0.0` for analytical / multiple choice, and closer to `1.0` for creative and generative tasks.\n\nNote that even with `temperature` of `0.0`, the results will not be fully deterministic. temperature"},"thinking":{"type":"object","description":"ThinkingConfigEnabled thinking","properties":{"budget_tokens":{"type":"integer","description":"Determines how many tokens the model can use for its internal reasoning process. Larger budgets can enable more thorough analysis for complex problems, improving response quality.\n\nMust be ≥1024 and less than `max_tokens`.\n\nSee [reasoning](/guides/reasoning) for details. budget_tokens"},"type":{"type":"string","description":"Type type"}}},"tool_choice":{"type":"object","description":"The model will automatically decide whether to use tools. tool_choice","properties":{"disable_parallel_tool_use":{"type":"boolean","description":"Whether to disable parallel tool use.\n\nDefaults to `false`. If set to `true`, the model will output at most one tool use. disable_parallel_tool_use"},"type":{"type":"string","description":"Type type"}}},"tools":{"type":"array","description":"Definitions of tools that the model may use.\n\nIf you include `tools` in your API request, the model may return `tool_use` content blocks that represent the model's use of those tools. You can then run those tools using the tool input generated by the model and then optionally return results back to the model using `tool_result` content blocks.\n\nEach tool definition includes:\n\n* `name`: Name of the tool.\n* `description`: Optional, but strongly-recommended description of the tool.\n* `input_schema`: [JSON schema](https://json-schema.org/draft/2020-12) for the tool `input` shape that the model will produce in `tool_use` output content blocks.\n\nFor example, if you defined `tools` as:\n\n```json\n[\n  {\n    \"name\": \"get_stock_price\",\n    \"description\": \"Get the current stock price for a given ticker symbol.\",\n    \"input_schema\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"ticker\": {\n          \"type\": \"string\",\n          \"description\": \"The stock ticker symbol, e.g. AAPL for Apple Inc.\"\n        }\n      },\n      \"required\": [\"ticker\"]\n    }\n  }\n]\n```\n\nAnd then asked the model \"What's the S&P 500 at today?\", the model might produce `tool_use` content blocks in the response like this:\n\n```json\n[\n  {\n    \"type\": \"tool_use\",\n    \"id\": \"toolu_01D7FLrfh4GYq7yT1ULFeyMV\",\n    \"name\": \"get_stock_price\",\n    \"input\": { \"ticker\": \"^GSPC\" }\n  }\n]\n```\n\nYou might then run your `get_stock_price` tool with `{\"ticker\": \"^GSPC\"}` as an input, and return the following back to the model in a subsequent `user` message:\n\n```json\n[\n  {\n    \"type\": \"tool_result\",\n    \"tool_use_id\": \"toolu_01D7FLrfh4GYq7yT1ULFeyMV\",\n    \"content\": \"259.75 USD\"\n  }\n]\n```\n\nTools can be used for workflows that include running client-side tools and functions, or more generally whenever you want the model to produce a particular JSON structure of output.\n\nSee the [guide](/guides/function-calling) for more details. tools","items":{"type":"object","properties":{}}},"top_k":{"type":"integer","description":"Only sample from the top K options for each subsequent token.\n\nUsed to remove \"long tail\" low probability responses. [Learn more technical details here](https://towardsdatascience.com/how-to-sample-from-language-models-682bceb97277).\n\nRecommended for advanced use cases only. You usually only need to use `temperature`. top_k"},"top_p":{"type":"number","description":"Use nucleus sampling.\n\nIn nucleus sampling, we compute the cumulative distribution over all the options for each subsequent token in decreasing probability order and cut it off once it reaches a particular probability specified by `top_p`. You should either alter `temperature` or `top_p`, but not both.\n\nRecommended for advanced use cases only. You usually only need to use `temperature`. top_p"},"raw_output":{"type":"boolean","description":"raw_output"}}},"example":{"model":"","messages":[],"max_tokens":"","metadata":{},"output_config":{},"stop_sequences":[],"stream":"","system":"","temperature":"","thinking":{},"tool_choice":{},"tools":[],"top_k":"","top_p":"","raw_output":""}}}}}},"/embeddings":{"post":{"tags":["Embeddings"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/creates-an-embedding-vector-representing-the-input-text","api_endpoint":"https://api.fireworks.ai/inference/v1/embeddings"},"summary":"Create embeddings","description":"Create embeddings for text input","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"model":{"type":"string","description":"The model to use for generating embeddings","required":true},"input":{"type":"string","description":"Input text to embed. Can be a string or array of strings","required":true},"prompt_template":{"type":"string","description":"Template string for processing input data before embedding using Jinja2 syntax"},"dimensions":{"type":"integer","description":"Number of dimensions for output embeddings. Only supported by resizable models"},"normalize":{"type":"boolean","description":"Controls normalization. Default true (L2 normalized). Set false when using return_logits","enum":[true,false]},"return_logits":{"type":"array","description":"Return raw model logits for specified token/class indices","items":{"type":"number"}}}},"example":{"model":"nomic-ai/nomic-embed-text-v1.5","input":"The quick brown fox jumped over the lazy dog","prompt_template":"Embed this text: {text}","dimensions":"768","normalize":"true","return_logits":"[0, 1, 2]"}}}}}},"/rerank":{"post":{"tags":["Reranking"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.fireworks.ai/api-reference/rerank-documents","api_endpoint":"https://api.fireworks.ai/inference/v1/rerank"},"summary":"Rerank documents","description":"Rerank documents for a query using relevance scoring","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"model":{"type":"string","description":"The name of the reranker model to use"},"query":{"type":"string","description":"The search query to use for reranking documents","required":true},"documents":{"type":"array","description":"List of documents to rerank. Each document is a string","required":true,"items":{"type":"string"}},"top_n":{"type":"integer","description":"Number of most relevant documents to return. If not specified, all documents are returned"},"return_documents":{"type":"boolean","description":"Whether to return the document text in the response","enum":[true,false]},"task":{"type":"string","description":"Optional task description to guide the reranking process"}}},"example":{"model":"accounts/fireworks/models/qwen3-reranker-8b","query":"What is machine learning?","documents":"[\"Machine learning is a subset of AI.\", \"The weather is sunny today.\"]","top_n":"5","return_documents":"true","task":"Given a web search query, retrieve relevant passages that answer the query"}}}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}}},"security":[{"bearerAuth":[]}]}