> For the complete documentation index, see [llms.txt](https://docs.toolkit.equs.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.toolkit.equs.ai/docs/issuance/flow-2/method-1-api.md).

# Method 1: API

Register your Authorization Server, host an Attribute Provider, and let the Holder start the journey

There is no Offer to create and no `tx_code` to deliver on this flow. The Holder starts, signs in at your Authorization Server, and the platform asks you for the claim values at the instant it signs.

What you build is therefore configuration and an endpoint, not a sequence of calls.

**Before you start** you need an [Issuer and VC Schema](/docs/issuance/configuration-issuer-and-vc-schema.md), an Authorization Server that accepts scope-based authorization requests from wallets, and an [Attribute Provider](/docs/issuance/configuration-attribute-provider.md) endpoint.

### 1. Register your Authorization Server

The Holder authenticates at your Authorization Server during collection, and the platform verifies the resulting access token against your JWKS. You configure the server, then register it with the platform once per Issuer - see [Configuration: Authorization Server](/docs/issuance/flow-2/configuration-authorization-server.md).

### 2. Host the Attribute Provider

One endpoint, called once per issuance, synchronously. It receives the subject, the credential issuer and the credential configuration id, and answers with claim values - or with `denied`. This is the only flow where you make the issuance decision at request time.

Two limits are enforced:

| Constraint            | Value     |
| --------------------- | --------- |
| Response deadline     | 5 seconds |
| Maximum response size | 50 kB     |

The request contract, the response envelope, the rules your reply has to satisfy, and the failure behavior are all on [Attribute Provider](/docs/issuance/configuration-attribute-provider.md).

{% hint style="warning" %}
This is a runtime dependency, not setup. If the endpoint is down, issuance fails - and an outage is reported to the Holder as a `server_error`, never as a denial.
{% endhint %}

### 3. Let the Holder start

Two entry points, converging immediately:

* **From the wallet** - the Holder picks your credential type from the wallet's list. The schema id reaches them out of band.
* **From your website** - you trigger with a schema id and no personal data, and the resulting Offer opens a wallet by QR code or deep link. This works even for visitors who aren't signed in to your site, which no other flow supports.

From there the wallet redirects to your Authorization Server, returns with an access token carrying your user ID, and requests the credential. The platform calls your Attribute Provider, signs, and returns the VC.

### 4. Track the result

Only the pseudonymous record survives - no claim values, no contact details. See [Issuance Results](/docs/issuance/issuance-results.md).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.toolkit.equs.ai/docs/issuance/flow-2/method-1-api.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
