---
url: >-
  https://adk.nht.io/api/@nhtio/adk/batteries/tools/searxng/functions/createSearxngSearchToolSync.md
---

# Function: createSearxngSearchToolSync()

```ts
function createSearxngSearchToolSync(
  config: SearxngToolConfig<SyncArtifactResolver>,
): Tool;
```

Defined in: [batteries/tools/searxng/index.ts:426](https://github.com/NHTIO/ADK/blob/v1.20260609.1/src/batteries/tools/searxng/index.ts#L426)

Synchronous [createSearxngSearchTool](createSearxngSearchTool.md) — the ergonomic common path.

## Parameters

| Parameter | Type                                                                                                                                      | Description                                                                                                     |
| --------- | ----------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- |
| `config`  | [`SearxngToolConfig`](../interfaces/SearxngToolConfig.md)<[`SyncArtifactResolver`](../../_shared/type-aliases/SyncArtifactResolver.md)> | Same as [SearxngToolConfig](../interfaces/SearxngToolConfig.md), with `artifact` restricted to the sync subset. |

## Returns

[`Tool`](../../../../forge/classes/Tool.md)

A `Tool` ready to register in a `ToolRegistry`.

## Remarks

`artifact` is narrowed to the sync subset (a constructor or a sync resolver). Passing an async
resolver is a compile-time type error and a runtime [E\_INVALID\_SEARXNG\_CONFIG](../../../variables/E_INVALID_SEARXNG_CONFIG.md); for
dynamic-import resolvers use the async [createSearxngSearchTool](createSearxngSearchTool.md). See its docs for the
`number_of_results` caveat and 403/JSON-disabled behaviour.

## Throws

[E\_INVALID\_SEARXNG\_CONFIG](../../../variables/E_INVALID_SEARXNG_CONFIG.md) when `instanceUrl` or `artifact` is invalid (incl. an async resolver).
