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

# SDKs

> Official SDKs and client libraries for integrating FaceSign step-up verification into your applications.

The recommended way to interact with the FaceSign API is by using our official SDKs. Choose from multiple programming languages to integrate FaceSign step-up verification into your applications.

## Quick Start Guides

Get up and running quickly with our comprehensive installation guides:

* **[Python Installation Guide](/docs/mcp#quickstart)** - Complete setup guide for Python SDK with Django, Flask, and FastAPI examples
* **[Go Installation Guide](/docs/mcp#quickstart)** - Step-by-step guide for Go SDK with framework integration examples

## Available SDKs

### Node.js / TypeScript

The official FaceSign Node.js SDK for server-side integration.

```bash title="Installation" wrap theme={null}
npm install @facesignai/api
```

```typescript title="Usage" wrap theme={null}
import Client from '@facesignai/api'
import { FSNodeType } from '@facesignai/api'

const client = new Client({
  auth: process.env.FACESIGN_API_KEY,
})

const { session, clientSecret } = await client.session.create({
  clientReferenceId: 'user-123',
  flow: [
    { id: 'start', type: FSNodeType.START, outcome: 'end' },
    { id: 'end', type: FSNodeType.END }
  ]
})
```

### Python

The official FaceSign Python SDK.

```bash title="Installation" wrap theme={null}
pip install facesignai
```

```python title="Usage" wrap theme={null}
import facesignai

client = facesignai.Client(
    auth='sk_test_...',
)

response = client.session.create(
    client_reference_id='user-123',
    flow=[
        {'id': 'start', 'type': 'start', 'outcome': 'end'},
        {'id': 'end', 'type': 'end'}
    ]
)
```

### Go

The official FaceSign Go SDK.

```bash title="Installation" wrap theme={null}
go get github.com/facesignai/facesign-go
```

```go title="Usage" wrap theme={null}
client := facesign.NewClient(os.Getenv("FACESIGN_API_KEY"))
session, err := client.Sessions.Create(ctx, facesign.CreateSessionRequest{
  ClientReferenceId: "user-123",
  Flow: []facesign.FlowNode{
    {ID: "start", Type: "start", Outcome: "end"},
    {ID: "end", Type: "end"},
  },
})
```

### cURL / REST API

You can also use the FaceSign API directly via HTTP requests:

```bash title="Direct API usage" wrap theme={null}
curl -X POST https://api.facesign.ai/sessions \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "clientReferenceId": "user-123",
    "flow": [
      {"id": "start", "type": "start", "outcome": "end"},
      {"id": "end", "type": "end"}
    ]
  }'
```

## Next steps

<CardGroup cols={2}>
  <Card title="Sessions" href="/docs/reference/concepts#sessions">
    Learn about session management
  </Card>

  <Card title="Client Secrets" href="/docs/reference/client-secrets">
    Secure frontend integration
  </Card>

  <Card title="Flows" href="/docs/reference/concepts#flows">
    Build verification flows
  </Card>
</CardGroup>
