***

title: validate_args
slug: /reference/python/agents/swaig-function/validate-args
description: Validate arguments against the parameter JSON Schema.
max-toc-depth: 3
---------------------

For a complete index of all SignalWire documentation pages, fetch https://signalwire.com/docs/llms.txt

Validate arguments against the parameter JSON Schema. Uses `jsonschema_rs`
(Rust-based) if available, falls back to `jsonschema` (pure Python), or
skips validation if neither is installed.

## **Parameters**

<ParamField path="args" type="dict[str, Any]" required={true} toc={true}>
  Arguments to validate.
</ParamField>

## **Returns**

`tuple[bool, list[str]]` -- A tuple of `(is_valid, errors)`. When no validation
library is available, returns `(True, [])`.

## **Example**

```python {18,23}
from signalwire import SWAIGFunction
from signalwire import FunctionResult

func = SWAIGFunction(
    name="lookup_account",
    handler=lambda args, raw_data: FunctionResult("ok"),
    description="Look up account status",
    parameters={
        "type": "object",
        "properties": {
            "account_id": {"type": "string", "description": "Account ID"}
        },
        "required": ["account_id"]
    }
)

# Valid arguments
is_valid, errors = func.validate_args({"account_id": "12345"})
print(f"Valid: {is_valid}, Errors: {errors}")
# Valid: True, Errors: []

# Missing required argument
is_valid, errors = func.validate_args({})
print(f"Valid: {is_valid}, Errors: {errors}")
# Valid: False, Errors: ["'account_id' is a required property"]
```