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

# SDKs

> Official client libraries for the anyformat API

anyformat ships hand-written client libraries for TypeScript and Python. Both expose the same fluent builder over the [typed-graph workflow definition](/concepts/workflows), so the only thing that differs across languages is the syntax.

## TypeScript

<Card title="@anyformat/sdk" icon="js" iconType="brands" href="https://www.npmjs.com/package/@anyformat/sdk">
  Official TypeScript / Node client library — `npm install @anyformat/sdk` (Node 18+).
</Card>

```typescript theme={null}
import { Anyformat, Schema } from "@anyformat/sdk";

const af = new Anyformat({ apiKey: process.env.ANYFORMAT_API_KEY! });

const result = await af
  .workflow("Invoice", "Extract invoice header and totals")
  .parse()
  .extract([Schema.string("vendor", "Vendor name on the invoice")])
  .run(file)
  .wait();

console.log(result.field("vendor")?.value);
```

See the [TypeScript SDK guide](/api-reference/sdks/typescript) for builder methods, error handling, and the full surface.

## Python

<Card title="anyformat" icon="python" iconType="brands" href="https://pypi.org/project/anyformat/">
  Official Python client library — `pip install anyformat` (Python 3.13; pin expected to loosen before launch).
</Card>

```python theme={null}
from anyformat.sdk import Client
from anyformat.workflow import Schema

client = Client(api_key="af_...")  # or read ANYFORMAT_API_KEY from env

workflow = (
    client.workflow("Invoices")
    .parse()
    .extract([Schema.string("vendor", "Vendor name on the invoice")])
    .create()
)

result = workflow.run("invoice.pdf").wait()
print(result.fields["vendor"].value)
```

See the [Python SDK guide](/api-reference/sdks/python) for builder methods, async usage, error handling, and the full surface.

## Coding assistant

If you use [Claude Code](https://claude.com/claude-code) (or any compatible AI coding agent), install the **anyformat Claude Code skill** so your agent knows the right endpoints, payloads, and gotchas out of the box.

```bash theme={null}
npx @anyformat/skill            # installs for all projects (~/.claude/skills/anyformat)
npx @anyformat/skill --project  # installs for the current project only (./.claude/skills/anyformat)
```

See the [Coding assistant](/guides/coding-assistant) guide for installation, configuration, and example prompts.
