# Complete sign-in with a code

Source: https://immiscible.fly.dev/docs/api/post-api-auth-mfa

`POST /api/auth/mfa`

The ticket from a password sign-in, plus a TOTP or recovery code.

## Authentication

Public. No credential. Public routes are rate limited per address. Carries the short-lived MFA ticket that `POST /api/auth/login` returned, not a session.

## Request

curl:

```bash
curl -X POST "https://immiscible.fly.dev/api/auth/mfa" \
  -H "content-type: application/json" \
  -d '{
    "ticket": "mft_...",
    "code": "123456"
  }'
```

Node:

```ts
const res = await fetch('https://immiscible.fly.dev/api/auth/mfa', {
  method: 'POST',
  headers: {
    'content-type': 'application/json',
  },
  body: JSON.stringify({
    ticket: 'mft_...',
    code: '123456',
  }),
});
const data = await res.json();
console.log(res.status, data);
```

Python:

```python
import requests

res = requests.post(
    "https://immiscible.fly.dev/api/auth/mfa",
    headers={
        "content-type": "application/json",
    },
    json={
        "ticket": "mft_...",
        "code": "123456",
    },
)
print(res.status_code, res.json())
```
