canonical: https://jentic.com/apis/swaggerhub.k2anz/assembly-service

# K2anz Assembly Service

The Assembly Service provides an API that enable you to assemble documents from HotDocs templates. It can assemble these documents with or without presenting an interview. When presenting an interview, the service also manages the state of the interview. The following is the API you use to interface with this service to start, retrieve results from and terminate document assembly sessions. The API exposes 6 endpoints.

## For AI agents

Programmatically starts a new assembly session, returns the current state of a session.. Covers 6 operations.

## Scope

Does not handle payments, communications, or crm - use for identity and authentication only.

## Capabilities

- Starts a new assembly session
- Returns the current state of a session.
- Removes an assembly session and the data associated with it
- Gets the current answers for the assembly session
- Endpoint for retrieving the body of a document.

## Use cases

### Identity and Authentication Operations

Use the Assembly Service to perform identity auth operations programmatically. The API provides 6 endpoints covering core functionality including starts a new assembly session, returns the current state of a session., removes an assembly session and the data associated with it.

Example prompt: Call POST /api/session to starts a new assembly session

### Automated api/session Management

Automate api/session operations by combining multiple Assembly Service endpoints. Agents can returns the current state of a session. and then removes an assembly session and the data associated with it in a single workflow.

Example prompt: Call GET /api/session/{sessionId} to returns the current state of a session., then verify the result

### AI Agent Integration via Jentic

AI agents discover and call Assembly Service endpoints through Jentic without managing credentials directly. An agent searches for the required operation by intent, receives the matching endpoint schema, and executes the call with Jentic-managed authentication. This eliminates the need to read API documentation or handle none tokens manually.

Example prompt: Search Jentic for 'starts a new assembly session', load the operation schema, and execute with Jentic-managed credentials

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | /api/session | Starts a new assembly session |
| GET | /api/session/{sessionId} | Returns the current state of a session. |
| DELETE | /api/session/{sessionId} | Removes an assembly session and the data associated with it |
| GET | /api/session/{sessionId}/answers | Gets the current answers for the assembly session |
| GET | /api/session/{sessionId}/docs | Gets a list of assembled documents for the session |
| GET | /ipi/session/{sessionID}/docs/{documentName} | Endpoint for retrieving the body of a document. |

## Key resources

- **api/session** — Operations related to api/session
- **api/session/{sessionId}** — Operations related to api/session/{sessionId}
- **api/session/{sessionId}/answers** — Operations related to api/session/{sessionId}/answers
- **api/session/{sessionId}/docs** — Operations related to api/session/{sessionId}/docs
- **ipi/session/{sessionID}/docs/{documentName}** — Operations related to ipi/session/{sessionID}/docs/{documentName}

## Why Jentic

- **Setup:** Wiring Assembly Service by hand means pointing your client at coreus.hotdocsadvance.com, opening a session, and stepping through answers and document generation yourself. Through Jentic you install once, import Assembly Service from the API Directory, and your agent calls it without you hand-building each request.
- **Permission scoping:** Assembly Service puts the session id in the URL path (/api/session/{sessionId}/...), so a rule can pin your agent to one session for reading answers and docs. You choose the operations it may call, so deleting a session is not included unless you add it.
- **Credential handling:** Any Assembly Service credentials are stored once, encrypted, by your own Jentic One instance and injected at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'start an assembly session' or 'get generated documents for a session', and Jentic returns the matching Assembly Service operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Auth0** — Alternative identity auth API
- **Okta** — Alternative identity auth API

## FAQ

### What authentication does the Assembly Service use?

The Assembly Service uses no authentication. Through Jentic, these credentials are stored encrypted in your Jentic One instance and injected at execution time, so raw secrets never enter the agent context.

### Can I starts a new assembly session with the Assembly Service?

Yes. Use the POST /api/session endpoint. The API returns structured JSON responses that agents can parse and act on directly.

### What are the rate limits for the Assembly Service?

Rate limits are not specified in the OpenAPI spec. Check the vendor documentation for current limits. Through Jentic, rate limiting is handled automatically with retry logic built into the execution layer.

### How do I starts a new assembly session through Jentic?

Install the Jentic SDK with pip install jentic, authenticate through Jentic One, the self-hosted execution layer, then search for 'starts a new assembly session'. Jentic returns the matching Assembly Service operation with its input schema. Load the schema and execute the call - credentials are injected automatically.

### How many endpoints does the Assembly Service have?

The Assembly Service exposes 6 endpoints covering api/session, api/session/{sessionid}, api/session/{sessionid}/answers operations.

### Can I limit what my agent is allowed to do with the Assembly Service?

Yes. Because you run Jentic One yourself, your own rules decide which Assembly Service operations the agent may call and which credentials it may use. Assembly Service carries the session id in the URL path (/api/session/{sessionId}/...), so you can pin the agent to reading a single session's answers and documents while leaving out actions you have not approved. For example, you can allow starting a session and fetching its docs without granting the DELETE that removes a session and its data.
