> ## Documentation Index
> Fetch the complete documentation index at: https://docs.averta.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Custom integrations

> Build a provider adapter or call the raw API when wrappers are not enough.

## When to use this section

Most teams should use the provider wrappers:

* [OpenAI](/openai/overview)
* [Anthropic](/anthropic/overview)

Use this section when:

* you are building your own provider adapter
* you want to call Averta before and after provider operations manually
* you need provider-agnostic decision helpers instead of a provider-specific wrapper
* you use a programming language without an Averta SDK package

This is the advanced path. JavaScript and Python adapters can use core packages. Other runtimes should call the [raw decision API](/custom/raw-api).

## Raw API vs. Core SDK

| Path                        | Use it when                                                                  |
| --------------------------- | ---------------------------------------------------------------------------- |
| [Raw API](/custom/raw-api)  | Your app is written in another language, or you want to own every HTTP call. |
| `@averta-security/sdk-core` | You are building a JavaScript adapter and want typed checkpoint helpers.     |
| `averta-core`               | You are building Python custom adapter helpers from the SDK source beta.     |

## The Low-level Client

`AvertaDecisionClient` calls Averta's `/v1/decide` endpoint and exposes methods for the same checkpoint lifecycle used by the wrappers:

* `preflight(...)`
* `checkToolCall(...)`
* `checkToolResult(...)`
* `checkOutput(...)`

## Reading Path

<CardGroup cols={2}>
  <Card title="Raw API" icon="braces" href="/custom/raw-api">
    Call Averta directly from any language.
  </Card>

  <Card title="Decision client" icon="code" href="/custom/decision-client">
    Create a low-level Averta client.
  </Card>

  <Card title="Request checkpoint" icon="shield-check" href="/custom/request-checkpoint">
    Evaluate provider input before the upstream call.
  </Card>

  <Card title="Tool exposure" icon="sliders" href="/custom/tool-exposure">
    Filter tools after a `restrict_tools` decision.
  </Card>

  <Card title="Tool-call checkpoint" icon="terminal" href="/custom/tool-call-checkpoint">
    Check model-requested tool calls before execution.
  </Card>

  <Card title="Tool results" icon="file-shield" href="/custom/tool-results">
    Screen returned tool content before it goes back to the model.
  </Card>

  <Card title="Output checkpoint" icon="file-check" href="/custom/output-checkpoint">
    Check final output before returning it.
  </Card>
</CardGroup>
