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

# Connect to a partner agent

> Connect a Seller Account to a partner's shared sales agent through one form: pick how to connect, enter the partner's fields and credentials, and start validation.

A partner can offer one sales agent to many publishers. To sell through that
agent, a publisher connects their Seller Account to it. V3 does this through one
form, the **partner connection form**, so the partner's own setup questions and
your credentials never pass through a chat.

## Open the form

Call `save_inventory_source` with only the agent's `agentId`.

```json theme={null}
{ "agentId": "AGENT_ID" }
```

The call creates nothing. It returns the form for that agent, and you complete
the connection there. Only a Seller Account can open it, and only an account
administrator signed in directly can read or complete it. A Buyer Account is refused with a wrong-account
error.

`agentId` stands alone. Sending it with any other `save_inventory_source` field,
such as `endpointUrl`, `authenticationType` or `name`, is refused with
`VALIDATION_FAILED` and names the extra field. The form owns those values for a
partner's agent, and a credential is never a model-visible input. An `agentId`
the account cannot connect to is refused before the form opens.

To change or add a source you operate yourself, keep using
`save_inventory_source` without `agentId`.

<Note>
  The form opens as an MCP app, so it needs a host that renders them. See
  [MCP Apps host](/v3/mcp-apps-host).
</Note>

## What the form asks for

The partner publishes how a publisher connects. The form shows what the partner
published and nothing else:

* **Connection type.** Shown only when the partner publishes more than one.
* **Endpoint.** An address field appears only when the partner's setup asks the
  publisher for one, for example a tenant URL. When the partner serves every
  publisher from one address, the form asks for none. Apostra validates the
  address you enter.
* **Partner fields.** Any further fields the partner's setup defines, such as a
  source name.
* **How to authenticate.** Shown only when the partner offers more than one
  method. Credentials are entered in password fields. They are used to connect
  and are not shown again.

Apostra decides what is required and what is refused. When a value is not
accepted, the form shows the message Apostra returns and keeps what you typed so
you can correct it.

## What happens when you connect

1. Apostra creates your source attached to the partner's shared agent.
2. Apostra completes the connection. The connection is accepted and validation
   starts.
3. The source goes live once validation passes and the agent is certified. The
   agent's single certification covers every publisher connected to it.

If the source is created but completing the connection fails, the form keeps the
source and offers only the step still to do. Connecting again does not create a
second source.

When your account is already connected to the agent, the form says so and asks
for nothing.

## Partner invites

A publisher who accepts a partner's invite connects through the same form. The
existing invite page keeps serving accepted invites until it moves to the form.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.