# Grok voice

Needs audio url. Served by fal.ai.

Grok Voice, served by fal.ai. The OpenAPI schema for the xai/grok-voice queue. Price: $0.00083 per seconds Actual-cost billing: the initial reservation is an estimate, not a maximum. 60 billed seconds at $0.00083/s; the actual reply and optional tools may add usage. The unique Billing Events receipt for this exact endpoint and request_id is the final USD charge, including usage above the estimate. Missing receipts retain the reservation for reconciliation; no guessed final fee. Asynchronous: returns a request_id; poll fal/status and fetch fal/result with model "xai/grok-voice" and that request_id. Billed once, when the result is ready; a generation that fails is refunded.

- Tool ID: `fal/xai-grok-voice`
- Name in the catalog: Grok Voice
- Provider: [fal.ai](/providers/fal.md)
- Capability: [AI audio](/tools/audio-generation.md)
- Price: usage based, the maximum is shown before a run
- Authentication: an authorised Agentik workspace is required for execution, including zero-price tools.

## Pricing contract

Billed at the exact provider cost, without a per-call cap. The initial reservation is an estimate; additional usage is debited and unused funds are refunded.


```json
{
  "model": "reported",
  "costPath": "cost_usd",
  "requireCost": true,
  "costMode": "actual",
  "reservationBasis": "60 billed seconds at $0.00083/s; the actual reply and optional tools may add usage.",
  "maxUsdDefault": 0.0498,
  "maxUsdCap": 0.0498
}
```

Pricing source: [https://fal.ai/models/xai/grok-voice](https://fal.ai/models/xai/grok-voice). $0.00083 per seconds Actual-cost billing: the initial reservation is an estimate, not a maximum. 60 billed seconds at $0.00083/s; the actual reply and optional tools may add usage. The unique Billing Events receipt for this exact endpoint and request_id is the final USD charge, including usage above the estimate. Missing receipts retain the reservation for reconciliation; no guessed final fee..

Price verification date: 2026-10-07.

## Complete input schema


```json
{
  "type": "object",
  "properties": {
    "audio_url": {
      "description": "URL of the audio containing the user's speech. The Grok agent listens to it and replies with speech. Most common audio formats are supported; the audio is converted to 16-bit 24 kHz mono PCM before being sent to Grok. Maximum duration 10 minutes, maximum file size 50 MB.",
      "title": "Audio URL",
      "type": "string"
    },
    "prompt": {
      "anyOf": [
        {
          "maxLength": 20000,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Prompt",
      "description": "Optional system instructions describing the agent's persona and conversation context. Uses Grok's default persona when omitted."
    },
    "tools": {
      "properties": {
        "x_search": {
          "properties": {
            "from_date": {
              "anyOf": [
                {
                  "format": "date",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Earliest post date, as ISO YYYY-MM-DD.",
              "title": "From Date",
              "default": null
            },
            "enabled": {
              "description": "Whether to include x_search in session.tools. Disabled by default; set true to let the agent search X posts.",
              "title": "Enabled",
              "default": false,
              "type": "boolean"
            },
            "enable_video_understanding": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Allow the agent to inspect videos found on X.",
              "title": "Enable Video Understanding",
              "default": null
            },
            "enable_image_understanding": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Allow the agent to inspect images found on X.",
              "title": "Enable Image Understanding",
              "default": null
            },
            "excluded_x_handles": {
              "anyOf": [
                {
                  "items": {
                    "type": "string"
                  },
                  "minItems": 1,
                  "type": "array",
                  "maxItems": 20
                },
                {
                  "type": "null"
                }
              ],
              "description": "Exclude posts from at most 20 X handles.",
              "title": "Excluded X Handles",
              "default": null
            },
            "allowed_x_handles": {
              "anyOf": [
                {
                  "items": {
                    "type": "string"
                  },
                  "minItems": 1,
                  "type": "array",
                  "maxItems": 20
                },
                {
                  "type": "null"
                }
              ],
              "description": "Restrict results to posts from at most 20 X handles.",
              "title": "Allowed X Handles",
              "default": null
            },
            "to_date": {
              "anyOf": [
                {
                  "format": "date",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Latest post date, as ISO YYYY-MM-DD.",
              "title": "To Date",
              "default": null
            }
          },
          "description": "Configuration for one xAI x_search tool declaration.",
          "title": "GrokXSearchTool",
          "type": "object",
          "additionalProperties": false
        },
        "web_search": {
          "properties": {
            "enabled": {
              "description": "Whether to include web_search in session.tools. Disabled by default; set true to let the agent search the web.",
              "title": "Enabled",
              "default": false,
              "type": "boolean"
            },
            "enable_image_understanding": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Allow the agent to inspect images found during web search.",
              "title": "Enable Image Understanding",
              "default": null
            },
            "location": {
              "anyOf": [
                {
                  "properties": {
                    "country": {
                      "anyOf": [
                        {
                          "minLength": 1,
                          "maxLength": 128,
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Country used to localize web-search results.",
                      "title": "Country",
                      "default": null
                    },
                    "city": {
                      "anyOf": [
                        {
                          "minLength": 1,
                          "maxLength": 128,
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "City used to localize web-search results.",
                      "title": "City",
                      "default": null
                    },
                    "timezone": {
                      "anyOf": [
                        {
                          "minLength": 1,
                          "maxLength": 128,
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "IANA timezone name, for example America/New_York.",
                      "title": "Timezone",
                      "default": null
                    },
                    "region": {
                      "anyOf": [
                        {
                          "minLength": 1,
                          "maxLength": 128,
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Region used to localize web-search results.",
                      "title": "Region",
                      "default": null
                    }
                  },
                  "title": "GrokSearchLocation",
                  "type": "object",
                  "additionalProperties": false
                },
                {
                  "type": "null"
                }
              ],
              "description": "Optional location used to localize search results.",
              "default": null
            },
            "excluded_domains": {
              "anyOf": [
                {
                  "items": {
                    "type": "string"
                  },
                  "minItems": 1,
                  "type": "array",
                  "maxItems": 5
                },
                {
                  "type": "null"
                }
              ],
              "description": "Exclude results from at most five domains, without protocol or path.",
              "title": "Excluded Domains",
              "default": null
            },
            "allowed_domains": {
              "anyOf": [
                {
                  "items": {
                    "type": "string"
                  },
                  "minItems": 1,
                  "type": "array",
                  "maxItems": 5
                },
                {
                  "type": "null"
                }
              ],
              "description": "Restrict results to at most five domains, without protocol or path.",
              "title": "Allowed Domains",
              "default": null
            }
          },
          "description": "Configuration for one xAI web_search tool declaration.",
          "title": "GrokWebSearchTool",
          "type": "object",
          "additionalProperties": false
        },
        "mcp_servers": {
          "items": {
            "properties": {
              "server_description": {
                "anyOf": [
                  {
                    "maxLength": 2000,
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Description of the capabilities exposed by this server.",
                "title": "Server Description",
                "default": null
              },
              "enabled": {
                "description": "False omits this server.",
                "title": "Enabled",
                "default": true,
                "type": "boolean"
              },
              "authorization": {
                "anyOf": [
                  {
                    "format": "password",
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Sensitive authorization value forwarded only to xAI.",
                "title": "Authorization",
                "default": null
              },
              "headers": {
                "anyOf": [
                  {
                    "type": "object",
                    "additionalProperties": {
                      "format": "password",
                      "type": "string"
                    }
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Sensitive MCP request headers forwarded only to xAI.",
                "title": "Headers",
                "default": null
              },
              "allowed_tools": {
                "anyOf": [
                  {
                    "items": {
                      "type": "string"
                    },
                    "minItems": 1,
                    "type": "array"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Optional allow-list of tool names exposed from this server.",
                "title": "Allowed Tools",
                "default": null
              },
              "server_url": {
                "format": "uri",
                "minLength": 1,
                "description": "Caller-selected HTTP(S) MCP endpoint. xAI makes the remote connection and supports Streaming HTTP/SSE transports. Use at your own risk; fal does not connect to or SSRF-fetch this URL.",
                "title": "Server Url",
                "type": "string"
              },
              "server_label": {
                "minLength": 1,
                "description": "Label xAI uses to identify and prefix this server's tools.",
                "title": "Server Label",
                "type": "string",
                "maxLength": 128
              }
            },
            "required": [
              "server_url",
              "server_label"
            ],
            "description": "A caller-selected remote MCP server that xAI will connect to.\n\nUse at your own risk. The connection is made by xAI's infrastructure,\nnot by fal; choosing this tool explicitly accepts that trust boundary.\nAuthentication and headers are masked in fal error metadata and logs.",
            "title": "GrokRemoteMCPTool",
            "type": "object",
            "additionalProperties": false
          },
          "description": "Remote MCP servers that xAI connects to and executes.",
          "title": "MCP Servers",
          "type": "array"
        }
      },
      "description": "Typed xAI tools supported by this app's convenience configuration.\n\nEvery tool is disabled in the default configuration: the searches must\nbe switched on via their ``enabled`` flags and ``mcp_servers`` starts\nempty. ``file_search`` / collections are intentionally absent and\nunsupported due to Zero Data Retention (ZDR) requirements. Caller-side\nfunction tools are likewise absent from the typed configuration — they\nrequire a client that answers callback events over /realtime, so they\nremain available only to raw ``session.update`` passthrough clients.\nRaw realtime passthrough stays generic except that ZDR-incompatible\ntool declarations are rejected in-band.",
      "title": "GrokToolsConfiguration",
      "type": "object",
      "additionalProperties": false
    },
    "voice": {
      "anyOf": [
        {
          "enum": [
            "carina",
            "zagan",
            "helix",
            "orion",
            "luna",
            "iris",
            "altair",
            "zenith",
            "perseus",
            "helios",
            "lux",
            "kepler",
            "rigel",
            "cosmo",
            "celeste",
            "ursa",
            "sirius",
            "lumen",
            "castor",
            "naksh",
            "atlas",
            "aurora",
            "liora",
            "ara",
            "eve",
            "leo",
            "rex",
            "sal"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Built-in xAI voice for the agent's reply. Uses Grok's default voice when omitted.",
      "title": "Voice"
    }
  },
  "required": [
    "audio_url"
  ],
  "additionalProperties": false
}
```

## Published example

This is the provider tool’s published example. Replace example values with the user’s requested inputs, respecting the schema; do not execute an example merely to test a connection.


```json
{
  "tool_id": "fal/xai-grok-voice",
  "input": {
    "audio_url": "https://v3b.fal.media/files/b/0a8dd5a2/hS140ygvRuxn-eY_qPhlv_assets_test_input_service.wav"
  }
}
```

## Execute and retrieve

Inspect again before execution, explain the price and obtain the required authority. Use MCP run_tool or POST /v1/run with this tool ID, valid input and an idempotency key. Save the returned run ID and follow the actual state. If Agentik answers that the tool is temporarily unavailable, do not retry it blindly; use discovery to propose an alternative.

This tool uses deferred settlement. Follow its returned task/run instructions; preserve the existing reservation until the result is reconciled.

A partial or uncertain result can still have consumed provider resources. Consult [billing](/docs/billing.md), [idempotency](/docs/idempotency.md) and [asynchronous results](/docs/async.md).

[Provider documentation](https://fal.ai/models/xai/grok-voice)

[REST inspection](https://api.agentik.cc/v1/tools/fal/xai-grok-voice) · [OpenAPI](/openapi.json) · [Connection guide](/connect.md)

---

[HTML page](/providers/fal/xai-grok-voice) · [Agent index](/llms.txt)
