Fleet · Schema
JobCreateRequestPayload
Request body for creating a job via the API. Matches the JobParams TypedDict used by Temporal workflows. Exactly one of env_key, project_key, task_keys, or task_group_id must be provided.
CompanyArtificial IntelligenceAI AgentsReinforcement Learning EnvironmentsEvaluationsSimulationTraining Data
Properties
| Name | Type | Description |
|---|---|---|
| name | object | |
| models | array | |
| pass_k | integer | |
| cluster_name | object | Fleet-only exact cluster placement for every environment in this job. Omission preserves normal routing. |
| environment_overrides | object | Fleet-only runtime settings keyed by unversioned environment key. Requires an explicit fleet-dev-*, fleet-sandbox-*, or fleet-prod-* cluster; task versions and seeds stay pinned. |
| unrestricted_tools_reason | object | Admin-only diagnostic override of task tool policies; reason and exact versions are recorded with the run. |
| scoring_mode | object | How each verifier scores its own checks. 'binary' requests strict 0/1 grading; 'partial' allows partial credit when the verifier supports it. Omitted (the default) means the job states no preference: |
| multi_app_aggregation_mode | string | How a generated multi-app verifier combines its per-app scores. 'binary' returns 1 only when every app receives a full score; 'fractional' returns the arithmetic mean of the individual app verifier sc |
| agent_runtime | boolean | Run supported sessions on the hosted Agent Runtime instead of executing the agent harness inside the Temporal worker. When omitted, compatible Fleet-hosted models default to true except Gemini models, |
| browser_harness_computer | boolean | With browser_harness=true, also expose the task computer tool. Native CLI tools remain disabled. |
| browser_harness | boolean | Computer-use on Agent Runtime with Grok Build, Codex, Claude Code, or Antigravity: expose a single browser-harness Python tool using the task browser CDP endpoint. Native CLI tools remain disabled. Ot |
| native_workspace | boolean | Opt-in Codex native Bash in the bound approved Cyber workspace. cyber-safety@2 selects cyber-native@1; cyber-safety@3 selects cyber-native@2; explicit native versions are preserved. Requires an approv |
| tools | object | Optional native CLI capability whitelist for agent_runtime=true. Omit, pass null, or pass [] to disable native CLI tools; Fleet MCP servers remain available. A nonempty list explicitly enables the sup |
| env_key | object | |
| project_key | object | |
| task_keys | object | |
| task_group_id | object | Task group UUID selector. Runs exactly the group's pinned eval_task_version_id members instead of resolving a task key's current version. |
| project_id | object | Project ID (UUID) to associate with this job for tracking and analytics |
| excluded_task_keys | object | |
| max_steps | object | Maximum steps (tool calls) per session. If omitted, defaults to 500. |
| max_duration_minutes | object | Deprecated: prefer max_steps as the session budget. Still ENFORCED (contrary to earlier docs): a hard wall clock measured from the session's original start that also caps each activity timeout and pro |
| max_concurrent_per_model | object | Deprecated: Concurrency is now controlled at the Temporal worker level. This field is ignored for new jobs. |
| mode | object | |
| parallel_tool_calls | object | Optional OpenAI tool-call batching override. Set false to force one tool call per model turn, which is useful for stateful computer-use flows that must observe each action before planning the next. Om |
| codex_runtime | object | Optional Codex app-server controls. Applies to OpenAI models run through Agent Runtime or the explicit Codex harness. Omit every field to preserve the installed Codex/model defaults. |
| antigravity_runtime | object | Optional Antigravity controls for Google Gemini models run through Agent Runtime. Omit every field to preserve standard Gemini processing. |
| browser_tool_surface | object | For mode='computer-use' browser sessions, selects the model-facing browser surface: default=computer/screenshot only, dom=DOM tools only, full=computer plus DOM. Prefer this over browser aliases in jo |
| flagging_policy | object | Optional native environment flagging policy. When omitted, job creation and environment startup are unchanged. When provided, the orchestrator passes a deterministic policy envelope to flagging-capabl |
| task_flagging_policies | object | Optional per-task flagging policy overrides keyed by task key. Each matched task receives its override in the job's generated task_specs. Overrides take precedence over the job-level flagging_policy f |
| reasoning_effort | object | Reasoning effort for reasoning-capable models (OpenAI, xAI grok, Z.AI GLM, native Gemini 3, and native Claude). Supported values depend on the model: gpt-6-astra accepts {low,medium,high,xhigh,max}; g |
| turn_budget_tokens | object | Per-turn advisory token budget (Anthropic Task Budgets beta) that steers task-budget-capable Claude models (Opus 5, Fable 5, Mythos 5, Opus 4.8, Opus 4.7) to finish each response before the max_tokens |
| context_management | object | Optional per-run context management. It defaults on for Meta-only computer-use jobs and off otherwise; set enabled=false to opt out. Provider-specific implementations bound old screenshots or tool res |
| max_screenshot_history | object | Keep only this many most-recent screenshots in each model request for computer-use sessions, replacing older screenshot image blocks with a short text placeholder so long sessions do not exhaust the m |
| compaction_threshold_tokens | object | Opt-in in-loop context compaction for computer-use sessions. When the last model call's input tokens exceed this threshold, the session summarizes its work so far with its own model and the model-faci |
| adaptive_resolution | object | Optional model-facing screenshot resolution for computer-use browser sessions. The browser viewport remains native; screenshots are resized to this width/height and coordinates are scaled back to nati |
| tool_selection_mode | object | Optional MCP tool-selection strategy for tool-use sessions. 'none' exposes the full tool list, 'similarity' starts with the tool-selection helper and retrieves a top-k tool subset, and 'environment' d |
| tool_selection_top_k | object | Top-k MCP tools to retrieve when tool_selection_mode is 'similarity'. If omitted, the session workflow default is used. |
| system_prompt | object | |
| model_prompts | object | |
| model_tool_formats | object | Tool format per model (e.g., {'x-ai/grok-4': 'openai', 'qwen/qwen3-vl-8b-thinking': 'qwen'}). Only x-ai and qwen models allowed. Values: 'default' (passthrough — tools sent as discovered, in OpenAI sh |
| model_qwen_cua_profiles | object | Opt-in Qwen computer-use serving contract per exact model id. Omitted models retain the historical Qwen schema and dispatcher. |
| model_spiffy_cua_profiles | object | Deprecated compatibility field. Spiffy desktop computer-use jobs automatically use normalized coordinates. |
| model_agent_runtime_spiffy_cua_profiles | object | Deprecated compatibility field. Spiffy Agent Runtime desktop computer-use jobs automatically use normalized coordinates. |
| ci | object | |
| task_version_id | object | |
| cost_team_id | object | Optional team UUID used for keyring/rate-limit tenant routing. Defaults to the owning team's configured payer (normally the job team_id) when omitted. Bad UUIDs return HTTP 422; the team must also be |
| cost_team_id_pinned | boolean | Set when cost_team_id is a deliberate, human-configured billing choice rather than a default the caller happened to compute. A pinned cost_team_id is used verbatim and is NEVER remapped through the op |
| sales_product_id | object | Sales product UUID for internal cost allocation. It is propagated to every session and emitted with workload cost events; it does not change job ownership or customer billing. |
| sales_product_key | object | Human-readable active sales product key. The API resolves it to the canonical sales_product_id before creating the job. |
| require_sales_product | boolean | Optional caller-side tightening of the server policy. When true, omitting both sales_product_id and sales_product_key returns the same structured error as server-enforced attribution. It cannot relax |
| required_key_capabilities | array | Fleet/admin-only key capabilities required for model key selection. Leave empty for default keys. |
| created_by | object | ADMIN-ONLY override for the job's created_by (submitter) user. Defaults to the authenticated principal. Used by service callers (e.g. the cross-session meta-investigator job loop) to stamp jobs with t |
| approval_exempt | object | ADMIN-ONLY. When true, the job bypasses the cost-approval gate entirely (like local/byok jobs): it is never blocked by another pending job and never itself parked in awaiting_approval. For internal, a |
| byok_keys | object | Map of provider names to API keys for BYOK (e.g., {'openai': 'sk-...'}) |
| byok_ttl_minutes | object | TTL in minutes for BYOK key validity (defaults to 60 minutes) |
| harness | object | Opt into a special session harness ('codex', 'grok', 'grok-bot', 'claude_code', 'muse', 'antigravity', or 'opencode') for every model in the job. Explicit only: when omitted, every model runs through |
| model_harnesses | object | Explicit (model, harness) run assignments, for jobs that mix harnesses across models — e.g. one model on an external harness and another on the native loop in a single job. Model and harness are paire |
| codex | object | Codex app-server runner overrides when harness='codex' (for example mcp_auth, initial_navigate, final_answer_json). Executable paths and SDK locations are configured by the worker runtime. |
| grok | object | Grok Build runner overrides when harness='grok' (for example mcp_auth, timeout_seconds). timeout_seconds narrows the job's max_duration_minutes budget and its matching environment lease. disabled_tool |
| claude_code | object | Claude Code runner overrides when harness='claude_code' (for example mcp_auth, timeout_seconds, allowed_tools, disallowed_tools). Executable paths and credentials are configured by the worker runtime. |
| scripted_network_probe | object | Staging-only, exact-version synthetic network diagnostic. Requires harness='scripted_network_probe'; actions are fixed server-side. |
| enable_bug_report | boolean | Enable the report_environment_bug tool and include instructions in the system prompt |
| enable_final_answer_tool | boolean | Enable the submit_final_answer tool (default: True). Set to false to remove the tool from the agent's toolset. |
| pass_conversation_to_verifier | boolean | Pass the full conversation history in JSON serialized format to the verifier, under parameter 'conversation' for verification |
| disable_live_mcp_recovery | boolean | Disable the one-time live MCP environment reprovisioning fallback after persistent transport failure. Use this when a run must retain one immutable environment/evidence provenance chain. |
| post_summarization_setting | object | Summarization mode: 'first_session_per_task' summarizes the first session for each task, 'first_failure_per_task' summarizes the first failure for each task, 'all' summarizes every session |
| xsa_on_completion | boolean | Register the job for one cross-session analysis pipeline after it reaches completed state. The same request can be registered later with POST /v1/jobs/{job_id}/xsa-on-completion. |
| keep_instance_alive | boolean | If True, do not close the instance after the session completes. Useful for debugging or manual investigation. |
| local | boolean | Local tracking mode: creates job record only, skips task loading and workflow execution |
| job_type | object | Job type for filtering and analytics. Defaults to 'manual' if not specified, or 'ci' if ci=True. For mode='computer-use', the legacy public-only values 'default', 'dom', and 'full' select the browser |
| metadata | object | Arbitrary metadata to store in the job's input JSON (e.g., github_commit_url, run_id) |
| capture_db_diff | boolean | Capture database diff after each session for reproducible verifier re-runs. |
| consumer_psi_startup_state_receipt | boolean | Consumer PSI only: capture the healthy post-startup database boundary and provide it to an explicitly compatible verifier. Requires capture_db_diff=true. |
| enable_step_checkpoints | boolean | Deprecated and disabled. New jobs cannot enable step checkpoints. |
| local_image | object | Local Docker image to run (e.g., 'my-image:tag'). When provided, data_key/env_key become optional and the container runs locally. |
| local_task | object | Full task dict with prompt, verifier, env_variables, etc. Used with local_image to run without database task loading. Required fields: 'prompt'. Optional: 'verifier' (dict with 'code' field), 'env_var |
| local_tasks | object | List of task dicts for running multiple tasks with local_image. Each task requires 'prompt'. Optional per task: 'key' (auto-generated if missing), 'verifier', 'env_variables', 'output_json_schema'. Mu |
| mcp_port | integer | MCP server port inside the container for local_image mode. |
| local_mcp_expected_tool_count | object | Wait up to 60 seconds for exactly this many MCP tools in local_image mode. Task tool policies additionally require matching pinned names and raw schemas. |
| seed_database | object | Path to a local SQLite database file to mount into the container at /alloc/data/current.sqlite. Used with local_image for local testing with real data. |
| skill_bundle_ids | object | List of skill bundle UUIDs to load for this job |
| memory_bundle_ids | object | List of memory bundle UUIDs to load for this job |
| memory | object | Memory strategy version (e.g., 'openclaw-v1') |
| skills_root | object | Parallel list of filesystem roots (absolute paths inside the running env pod) for runner-fs skills — `skills_root[i]` is the path for `task_keys[i]`. Length must equal `len(task_keys)`. Each entry is |
| memory_root | object | Parallel list of filesystem roots (absolute paths inside the running env pod) for runner-fs memory — `memory_root[i]` is the path for `task_keys[i]`. Length must equal `len(task_keys)`. Each entry is |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/fleetai-com/json-schema/fleetai-com-job-create-request-payload-schema.json",
"title": "JobCreateRequestPayload",
"description": "Request body for creating a job via the API.\n\nMatches the JobParams TypedDict used by Temporal workflows.\nExactly one of env_key, project_key, task_keys, or task_group_id must be provided.",
"x-generated": "2026-10-27",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/fleetai-com-openapi.yml#/components/schemas/JobCreateRequestPayload",
"properties": {
"name": {
"anyOf": [
{
"type": "string",
"maxLength": 255,
"minLength": 1
},
{
"type": "null"
}
],
"title": "Name"
},
"models": {
"items": {
"type": "string"
},
"type": "array",
"minItems": 1,
"title": "Models"
},
"pass_k": {
"type": "integer",
"minimum": 1.0,
"title": "Pass K",
"default": 1
},
"cluster_name": {
"anyOf": [
{
"type": "string",
"maxLength": 100,
"pattern": "^[a-z0-9][a-z0-9-]*[a-z0-9]$"
},
{
"type": "null"
}
],
"title": "Cluster Name",
"description": "Fleet-only exact cluster placement for every environment in this job. Omission preserves normal routing."
},
"environment_overrides": {
"anyOf": [
{
"additionalProperties": {
"$ref": "#/$defs/JobEnvironmentOverride"
},
"type": "object",
"maxProperties": 100,
"minProperties": 1
},
{
"type": "null"
}
],
"title": "Environment Overrides",
"description": "Fleet-only runtime settings keyed by unversioned environment key. Requires an explicit fleet-dev-*, fleet-sandbox-*, or fleet-prod-* cluster; task versions and seeds stay pinned."
},
"unrestricted_tools_reason": {
"anyOf": [
{
"type": "string",
"maxLength": 1000,
"minLength": 10
},
{
"type": "null"
}
],
"title": "Unrestricted Tools Reason",
"description": "Admin-only diagnostic override of task tool policies; reason and exact versions are recorded with the run."
},
"scoring_mode": {
"anyOf": [
{
"type": "string",
"enum": [
"binary",
"partial"
]
},
{
"type": "null"
}
],
"title": "Scoring Mode",
"description": "How each verifier scores its own checks. 'binary' requests strict 0/1 grading; 'partial' allows partial credit when the verifier supports it. Omitted (the default) means the job states no preference: the mode is not forwarded to the verifier at all, and each verifier keeps its own grading. Only set this when the verifiers being run are known to accept a scoring_mode argument."
},
"multi_app_aggregation_mode": {
"type": "string",
"enum": [
"binary",
"fractional"
],
"title": "Multi App Aggregation Mode",
"description": "How a generated multi-app verifier combines its per-app scores. 'binary' returns 1 only when every app receives a full score; 'fractional' returns the arithmetic mean of the individual app verifier scores.",
"default": "fractional"
},
"agent_runtime": {
"type": "boolean",
"title": "Agent Runtime",
"description": "Run supported sessions on the hosted Agent Runtime instead of executing the agent harness inside the Temporal worker. When omitted, compatible Fleet-hosted models default to true except Gemini models, which default to the Temporal harness. This is resolved per model in mixed-model jobs. BYOK, full-conversation verification, and local jobs also stay on the Temporal harness. An explicit true or false applies to every model in the job.",
"default": true
},
"browser_harness_computer": {
"type": "boolean",
"title": "Browser Harness Computer",
"description": "With browser_harness=true, also expose the task computer tool. Native CLI tools remain disabled.",
"default": false
},
"browser_harness": {
"type": "boolean",
"title": "Browser Harness",
"description": "Computer-use on Agent Runtime with Grok Build, Codex, Claude Code, or Antigravity: expose a single browser-harness Python tool using the task browser CDP endpoint. Native CLI tools remain disabled. Other MCP tools are disabled, except computer when browser_harness_computer is also enabled.",
"default": false
},
"native_workspace": {
"type": "boolean",
"title": "Native Workspace",
"description": "Opt-in Codex native Bash in the bound approved Cyber workspace. cyber-safety@2 selects cyber-native@1; cyber-safety@3 selects cyber-native@2; explicit native versions are preserved. Requires an approved cluster and ctf_only Cyber workspace tasks. Existing task definitions remain unchanged.",
"default": false
},
"tools": {
"anyOf": [
{
"items": {
"type": "string",
"enum": [
"subagents",
"web_search",
"bash",
"filesystem",
"skills",
"planning",
"image",
"browser",
"computer_use",
"apps",
"plugins",
"goals"
]
},
"type": "array",
"maxItems": 12
},
{
"type": "null"
}
],
"title": "Tools",
"description": "Optional native CLI capability whitelist for agent_runtime=true. Omit, pass null, or pass [] to disable native CLI tools; Fleet MCP servers remain available. A nonempty list explicitly enables the supported capabilities. Antigravity never enables native bash. Computer-use sessions never enable native shell tools. OpenCode tool-use and computer-use evals always disable native CLI tools, including explicit whitelists. Grok harnesses support only an empty whitelist."
},
"env_key": {
"anyOf": [
{
"type": "string",
"maxLength": 255,
"minLength": 1
},
{
"type": "null"
}
],
"title": "Env Key"
},
"project_key": {
"anyOf": [
{
"type": "string",
"maxLength": 255,
"minLength": 1
},
{
"type": "null"
}
],
"title": "Project Key"
},
"task_keys": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array",
"minItems": 1
},
{
"type": "null"
}
],
"title": "Task Keys"
},
"task_group_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Task Group Id",
"description": "Task group UUID selector. Runs exactly the group's pinned eval_task_version_id members instead of resolving a task key's current version."
},
"project_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Project Id",
"description": "Project ID (UUID) to associate with this job for tracking and analytics"
},
"excluded_task_keys": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Excluded Task Keys"
},
"max_steps": {
"anyOf": [
{
"type": "integer",
"minimum": 1.0
},
{
"type": "null"
}
],
"title": "Max Steps",
"description": "Maximum steps (tool calls) per session. If omitted, defaults to 500."
},
"max_duration_minutes": {
"anyOf": [
{
"type": "integer",
"minimum": 1.0
},
{
"type": "null"
}
],
"title": "Max Duration Minutes",
"description": "Deprecated: prefer max_steps as the session budget. Still ENFORCED (contrary to earlier docs): a hard wall clock measured from the session's original start that also caps each activity timeout and provisions matching lease time for external harnesses, so a session stops mid-turn when it expires. Defaults to 2880 minutes; set it explicitly only as a runaway backstop.",
"deprecated": true
},
"max_concurrent_per_model": {
"anyOf": [
{
"type": "integer",
"minimum": 1.0
},
{
"type": "null"
}
],
"title": "Max Concurrent Per Model",
"description": "Deprecated: Concurrency is now controlled at the Temporal worker level. This field is ignored for new jobs.",
"deprecated": true
},
"mode": {
"anyOf": [
{
"type": "string",
"pattern": "^(tool-use|computer-use)$"
},
{
"type": "null"
}
],
"title": "Mode"
},
"parallel_tool_calls": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Parallel Tool Calls",
"description": "Optional OpenAI tool-call batching override. Set false to force one tool call per model turn, which is useful for stateful computer-use flows that must observe each action before planning the next. Omit to preserve the provider/model default. Agent Runtime supports only false because some Codex transports force serialization. Hardening profiles also force false even when a native-loop job explicitly requests true."
},
"codex_runtime": {
"anyOf": [
{
"$ref": "#/$defs/CodexRuntimeConfig"
},
{
"type": "null"
}
],
"description": "Optional Codex app-server controls. Applies to OpenAI models run through Agent Runtime or the explicit Codex harness. Omit every field to preserve the installed Codex/model defaults."
},
"antigravity_runtime": {
"anyOf": [
{
"$ref": "#/$defs/AntigravityRuntimeConfig"
},
{
"type": "null"
}
],
"description": "Optional Antigravity controls for Google Gemini models run through Agent Runtime. Omit every field to preserve standard Gemini processing."
},
"browser_tool_surface": {
"anyOf": [
{
"type": "string",
"enum": [
"default",
"dom",
"full"
]
},
{
"type": "null"
}
],
"title": "Browser Tool Surface",
"description": "For mode='computer-use' browser sessions, selects the model-facing browser surface: default=computer/screenshot only, dom=DOM tools only, full=computer plus DOM. Prefer this over browser aliases in job_type so analytics job_type can remain meaningful."
},
"flagging_policy": {
"anyOf": [
{
"$ref": "#/$defs/FlaggingPolicy"
},
{
"type": "null"
}
],
"description": "Optional native environment flagging policy. When omitted, job creation and environment startup are unchanged. When provided, the orchestrator passes a deterministic policy envelope to flagging-capable envs."
},
"task_flagging_policies": {
"anyOf": [
{
"additionalProperties": {
"$ref": "#/$defs/FlaggingPolicy"
},
"type": "object"
},
{
"type": "null"
}
],
"title": "Task Flagging Policies",
"description": "Optional per-task flagging policy overrides keyed by task key. Each matched task receives its override in the job's generated task_specs. Overrides take precedence over the job-level flagging_policy for matched tasks."
},
"reasoning_effort": {
"anyOf": [
{
"type": "string",
"pattern": "^(none|minimal|low|medium|high|xhigh|max)$"
},
{
"type": "null"
}
],
"title": "Reasoning Effort",
"description": "Reasoning effort for reasoning-capable models (OpenAI, xAI grok, Z.AI GLM, native Gemini 3, and native Claude). Supported values depend on the model: gpt-6-astra accepts {low,medium,high,xhigh,max}; gpt-5.6-sol (alias gpt-5.6) accepts {none,low,medium,high,xhigh,max} in native Temporal; Agent Runtime Codex does not accept none. New Jobs API evals default Astra, Sol, Claude Opus 5, Sonnet 5, and Fable 5.1 (including its claude-fable-5.1 alias) to xhigh unless an explicit effort is provided, for both native Temporal and Agent Runtime. Direct Agent Runtime calls are unchanged. Per-model defaults are persisted in model_reasoning_efforts in the job input; other models in a mixed job retain their existing defaults. gpt-5.5/5.4/5.2 accept {none,low,medium,high,xhigh}; gpt-5.4-pro and gpt-5.2-pro accept {medium,high,xhigh}; gpt-5.3-codex/gpt-5.2-codex accept {low,medium,high,xhigh}; gpt-5.1 accepts {none,low,medium,high}; gpt-5 accepts {minimal,low,medium,high}; gpt-5-pro only supports {high}; o-series accepts {low,medium,high}; grok-4.7 and grok-4.6 accept {low,medium,high,xhigh}; grok-4.5 accepts {low,medium,high,xhigh} but xAI treats xhigh as high; grok-4.3 accepts {none,low,medium,high}; glm-5.2 accepts {none,minimal,low,medium,high,xhigh,max}; glm-5.3 accepts {low,high,max}. Native Gemini 3 maps the value to thinking_level (none/minimal->MINIMAL, low->LOW, medium->MEDIUM, high/xhigh/max->HIGH). Native Claude maps the value to adaptive thinking output_config.effort where supported. If the value is unsupported by a specific model the harness falls back to that model's documented default; otherwise when omitted, native gpt-5* models that support xhigh default to xhigh, gpt-5-pro defaults to high, and older gpt-5* models fall back to medium, while Claude adaptive thinking models default to max where supported; non-reasoning models (incl. non-native Gemini such as 2.5) ignore it."
},
"turn_budget_tokens": {
"anyOf": [
{
"type": "integer",
"minimum": 20000.0
},
{
"type": "null"
}
],
"title": "Turn Budget Tokens",
"description": "Per-turn advisory token budget (Anthropic Task Budgets beta) that steers task-budget-capable Claude models (Opus 5, Fable 5, Mythos 5, Opus 4.8, Opus 4.7) to finish each response before the max_tokens hard cap. Advisory (soft) and reset every request; silently ignored on other models/providers. Minimum 20,000."
},
"context_management": {
"anyOf": [
{
"$ref": "#/$defs/ContextManagementConfig"
},
{
"type": "null"
}
],
"description": "Optional per-run context management. It defaults on for Meta-only computer-use jobs and off otherwise; set enabled=false to opt out. Provider-specific implementations bound old screenshots or tool results. Direct Meta filesystem spill is a separate opt-in."
},
"max_screenshot_history": {
"anyOf": [
{
"type": "integer",
"minimum": 0.0
},
{
"type": "null"
}
],
"title": "Max Screenshot History",
"description": "Keep only this many most-recent screenshots in each model request for computer-use sessions, replacing older screenshot image blocks with a short text placeholder so long sessions do not exhaust the model context window. The persisted session transcript stays full (pruning is per-API-call only). Omit for the current behavior of sending the full screenshot history."
},
"compaction_threshold_tokens": {
"anyOf": [
{
"type": "integer",
"minimum": 1.0
},
{
"type": "null"
}
],
"title": "Compaction Threshold Tokens",
"description": "Opt-in in-loop context compaction for computer-use sessions. When the last model call's input tokens exceed this threshold, the session summarizes its work so far with its own model and the model-facing context resets to [system prompt, original task prompt + auto-summary, latest screenshot]. The persisted transcript keeps the full history plus the compaction message. Composes with max_screenshot_history (pruning caps steady-state growth; compaction handles resets). Omit to disable."
},
"adaptive_resolution": {
"anyOf": [
{
"$ref": "#/$defs/AdaptiveResolutionConfig"
},
{
"type": "null"
}
],
"description": "Optional model-facing screenshot resolution for computer-use browser sessions. The browser viewport remains native; screenshots are resized to this width/height and coordinates are scaled back to native pixels. Required for meta/spiffy_blimp350 computer-use jobs on Agent Runtime; omitting it or passing null returns HTTP 422. DOM-only Spiffy browser sessions must omit it or pass null. Mobile sessions accept the required value without desktop scaling."
},
"tool_selection_mode": {
"anyOf": [
{
"type": "string",
"pattern": "^(none|similarity|environment)$"
},
{
"type": "null"
}
],
"title": "Tool Selection Mode",
"description": "Optional MCP tool-selection strategy for tool-use sessions. 'none' exposes the full tool list, 'similarity' starts with the tool-selection helper and retrieves a top-k tool subset, and 'environment' defers selection to the environment."
},
"tool_selection_top_k": {
"anyOf": [
{
"type": "integer",
"minimum": 1.0
},
{
"type": "null"
}
],
"title": "Tool Selection Top K",
"description": "Top-k MCP tools to retrieve when tool_selection_mode is 'similarity'. If omitted, the session workflow default is used."
},
"system_prompt": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "System Prompt"
},
"model_prompts": {
"anyOf": [
{
"additionalProperties": {
"type": "string"
},
"type": "object"
},
{
"type": "null"
}
],
"title": "Model Prompts"
},
"model_tool_formats": {
"anyOf": [
{
"additionalProperties": {
"type": "string"
},
"type": "object"
},
{
"type": "null"
}
],
"title": "Model Tool Formats",
"description": "Tool format per model (e.g., {'x-ai/grok-4': 'openai', 'qwen/qwen3-vl-8b-thinking': 'qwen'}). Only x-ai and qwen models allowed. Values: 'default' (passthrough — tools sent as discovered, in OpenAI shape), 'openai' (simplified), or 'qwen' (qwen-agent ComputerUse schema, 0-1000 normalized coords). 'claude' is accepted as a legacy alias for 'default'."
},
"model_qwen_cua_profiles": {
"anyOf": [
{
"additionalProperties": {
"type": "string",
"const": "qwen3-cua-v1"
},
"type": "object"
},
{
"type": "null"
}
],
"title": "Model Qwen Cua Profiles",
"description": "Opt-in Qwen computer-use serving contract per exact model id. Omitted models retain the historical Qwen schema and dispatcher."
},
"model_spiffy_cua_profiles": {
"anyOf": [
{
"additionalProperties": {
"type": "string",
"const": "spiffy-normalized-v1"
},
"type": "object"
},
{
"type": "null"
}
],
"title": "Model Spiffy Cua Profiles",
"description": "Deprecated compatibility field. Spiffy desktop computer-use jobs automatically use normalized coordinates.",
"deprecated": true
},
"model_agent_runtime_spiffy_cua_profiles": {
"anyOf": [
{
"additionalProperties": {
"type": "string",
"const": "spiffy-normalized-v1"
},
"type": "object"
},
{
"type": "null"
}
],
"title": "Model Agent Runtime Spiffy Cua Profiles",
"description": "Deprecated compatibility field. Spiffy Agent Runtime desktop computer-use jobs automatically use normalized coordinates.",
"deprecated": true
},
"ci": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Ci"
},
"task_version_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Task Version Id"
},
"cost_team_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Cost Team Id",
"description": "Optional team UUID used for keyring/rate-limit tenant routing. Defaults to the owning team's configured payer (normally the job team_id) when omitted. Bad UUIDs return HTTP 422; the team must also be on the cost_team_id allowlist (teams.cost_team_billing_enabled = true) or the request returns 403."
},
"cost_team_id_pinned": {
"type": "boolean",
"title": "Cost Team Id Pinned",
"description": "Set when cost_team_id is a deliberate, human-configured billing choice rather than a default the caller happened to compute. A pinned cost_team_id is used verbatim and is NEVER remapped through the operator's COST_TEAM_DEFAULT_OVERRIDES table, even when it names the job's own owning team. Without this flag, asking to bill your own team is indistinguishable from omitting cost_team_id, so the operator default silently reroutes the spend to a different payer and the configured choice is lost. Ignored when cost_team_id is omitted. The cross-team membership and cost_team_billing_enabled gates still apply.",
"default": false
},
"sales_product_id": {
"anyOf": [
{
"type": "string",
"maxLength": 255,
"minLength": 1
},
{
"type": "null"
}
],
"title": "Sales Product Id",
"description": "Sales product UUID for internal cost allocation. It is propagated to every session and emitted with workload cost events; it does not change job ownership or customer billing."
},
"sales_product_key": {
"anyOf": [
{
"type": "string",
"maxLength": 255,
"minLength": 1
},
{
"type": "null"
}
],
"title": "Sales Product Key",
"description": "Human-readable active sales product key. The API resolves it to the canonical sales_product_id before creating the job."
},
"require_sales_product": {
"type": "boolean",
"title": "Require Sales Product",
"description": "Optional caller-side tightening of the server policy. When true, omitting both sales_product_id and sales_product_key returns the same structured error as server-enforced attribution. It cannot relax server enforcement.",
"default": false
},
"required_key_capabilities": {
"items": {
"type": "string",
"const": "cyber"
},
"type": "array",
"title": "Required Key Capabilities",
"description": "Fleet/admin-only key capabilities required for model key selection. Leave empty for default keys."
},
"created_by": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Created By",
"description": "ADMIN-ONLY override for the job's created_by (submitter) user. Defaults to the authenticated principal. Used by service callers (e.g. the cross-session meta-investigator job loop) to stamp jobs with the human/principal who submitted the parent run, so the per-user pending-approval gate is scoped per submitter instead of collapsing every run onto the shared service key. Non-admin callers passing this get HTTP 403; bad UUIDs return HTTP 422."
},
"approval_exempt": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Approval Exempt",
"description": "ADMIN-ONLY. When true, the job bypasses the cost-approval gate entirely (like local/byok jobs): it is never blocked by another pending job and never itself parked in awaiting_approval. For internal, already-authorized service fan-outs (the cross-session meta-investigator job loop launches one child job per task) where the per-user pending-approval gate would otherwise serialize the whole fan-out through a single approval slot. Non-admin callers passing this get HTTP 403."
},
"byok_keys": {
"anyOf": [
{
"additionalProperties": {
"type": "string"
},
"type": "object"
},
{
"type": "null"
}
],
"title": "Byok Keys",
"description": "Map of provider names to API keys for BYOK (e.g., {'openai': 'sk-...'})"
},
"byok_ttl_minutes": {
"anyOf": [
{
"type": "integer",
"minimum": 1.0
},
{
"type": "null"
}
],
"title": "Byok Ttl Minutes",
"description": "TTL in minutes for BYOK key validity (defaults to 60 minutes)"
},
"harness": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Harness",
"description": "Opt into a special session harness ('codex', 'grok', 'grok-bot', 'claude_code', 'muse', 'antigravity', or 'opencode') for every model in the job. Explicit only: when omitted, every model runs through the native harness. The selected harness is pre-validated against each requested model. To mix harnesses within one job (e.g. an external harness for one model and the native loop for another), use `model_harnesses` instead."
},
"model_harnesses": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/ModelHarnessAssignment"
},
"type": "array",
"minItems": 1
},
{
"type": "null"
}
],
"title": "Model Harnesses",
"description": "Explicit (model, harness) run assignments, for jobs that mix harnesses across models — e.g. one model on an external harness and another on the native loop in a single job. Model and harness are paired explicitly rather than inferred from one another. When set, this supersedes the job-level `harness` for fan-out: each assignment runs `pass_k` attempts of its model under its harness (null harness = native loop). Assignments and `models` must cover the same set of models — every model in `models` is assigned exactly once — and each non-null harness is pre-validated against its model. A model may take at most one harness per job (sessions are keyed by (task, model, attempt)); to run one model under several harnesses, use separate jobs."
},
"codex": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"title": "Codex",
"description": "Codex app-server runner overrides when harness='codex' (for example mcp_auth, initial_navigate, final_answer_json). Executable paths and SDK locations are configured by the worker runtime."
},
"grok": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"title": "Grok",
"description": "Grok Build runner overrides when harness='grok' (for example mcp_auth, timeout_seconds). timeout_seconds narrows the job's max_duration_minutes budget and its matching environment lease. disabled_tools maps MCP server name to tool names hidden from the agent; applied only when mode='computer-use'. Executable paths and credentials are configured by the worker runtime."
},
"claude_code": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"title": "Claude Code",
"description": "Claude Code runner overrides when harness='claude_code' (for example mcp_auth, timeout_seconds, allowed_tools, disallowed_tools). Executable paths and credentials are configured by the worker runtime."
},
"scripted_network_probe": {
"anyOf": [
{
"type": "string",
"enum": [
"positive",
"negative",
"fubspot_login_positive",
"fubspot_login_negative"
]
},
{
"type": "null"
}
],
"title": "Scripted Network Probe",
"description": "Staging-only, exact-version synthetic network diagnostic. Requires harness='scripted_network_probe'; actions are fixed server-side."
},
"enable_bug_report": {
"type": "boolean",
"title": "Enable Bug Report",
"description": "Enable the report_environment_bug tool and include instructions in the system prompt",
"default": false
},
"enable_final_answer_tool": {
"type": "boolean",
"title": "Enable Final Answer Tool",
"description": "Enable the submit_final_answer tool (default: True). Set to false to remove the tool from the agent's toolset.",
"default": true
},
"pass_conversation_to_verifier": {
"type": "boolean",
"title": "Pass Conversation To Verifier",
"description": "Pass the full conversation history in JSON serialized format to the verifier, under parameter 'conversation' for verification",
"default": false
},
"disable_live_mcp_recovery": {
"type": "boolean",
"title": "Disable Live Mcp Recovery",
"description": "Disable the one-time live MCP environment reprovisioning fallback after persistent transport failure. Use this when a run must retain one immutable environment/evidence provenance chain.",
"default": false
},
"post_summarization_setting": {
"anyOf": [
{
"type": "string",
"pattern": "^(first_session_per_task|first_failure_per_task|all)$"
},
{
"type": "null"
}
],
"title": "Post Summarization Setting",
"description": "Summarization mode: 'first_session_per_task' summarizes the first session for each task, 'first_failure_per_task' summarizes the first failure for each task, 'all' summarizes every session"
},
"xsa_on_completion": {
"type": "boolean",
"title": "Xsa On Completion",
"description": "Register the job for one cross-session analysis pipeline after it reaches completed state. The same request can be registered later with POST /v1/jobs/{job_id}/xsa-on-completion.",
"default": false
},
"keep_instance_alive": {
"type": "boolean",
"title": "Keep Instance Alive",
"description": "If True, do not close the instance after the session completes. Useful for debugging or manual investigation.",
"default": false
},
"local": {
"type": "boolean",
"title": "Local",
"description": "Local tracking mode: creates job record only, skips task loading and workflow execution",
"default": false
},
"job_type": {
"anyOf": [
{
"$ref": "#/$defs/JobType"
},
{
"type": "string",
"enum": [
"default",
"dom",
"full"
]
},
{
"type": "null"
}
],
"title": "Job Type",
"description": "Job type for filtering and analytics. Defaults to 'manual' if not specified, or 'ci' if ci=True. For mode='computer-use', the legacy public-only values 'default', 'dom', and 'full' select the browser tool surface: default=computer/screenshot only, dom=DOM tools only, full=computer plus DOM. Prefer browser_tool_surface for new callers. These aliases are stored as job_type='manual'.
# --- truncated at 32 KB (50 KB total) ---
# Full source: https://artifacts.apis.io/fleetai-com/json-schema/fleetai-com-job-create-request-payload-schema.json
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/fleetai-com-job-create-request-payload"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.