canonical: https://jentic.com/apis/symphony.com/symphony

# Symphony Agent API

This document refers to Symphony API calls to send and receive messages and content. They need the on-premise Agent installed to perform decryption/encryption of content. - sessionToken and keyManagerToken can be obtained by calling the authenticationAPI on the symphony back end and the key manager respectively. Refer to the methods described in authenticatorAPI.yaml. - Actions are defined to be a. The API exposes 56 endpoints.

## For AI agents

Programmatically checks health status, checks health status of services and users. Covers 56 operations.

## Scope

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

## Capabilities

- Checks health status
- Import messages from other systems into Symphony.
- Post a message to multiple existing streams.
- Get a message by ID
- Search messages

## Use cases

### Identity and Authentication Operations

Use the Agent API to perform identity auth operations programmatically. The API provides 56 endpoints covering core functionality including checks health status, checks health status of services and users, import messages from other systems into symphony..

Example prompt: Call GET /v3/health to checks health status

### Automated Attachments Management

Automate attachments operations by combining multiple Agent API endpoints. Agents can checks health status of services and users and then import messages from other systems into symphony. in a single workflow.

Example prompt: Call GET /v3/health/extended to checks health status of services and users, then verify the result

### AI Agent Integration via Jentic

AI agents discover and call Agent API 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 'checks health status', load the operation schema, and execute with Jentic-managed credentials

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | /v3/health | Checks health status |
| GET | /v3/health/extended | Checks health status of services and users |
| POST | /v4/message/import | Import messages from other systems into Symphony. |
| POST | /v4/message/blast | Post a message to multiple existing streams. |
| GET | /v1/message/{id} | Get a message by ID |
| POST | /v1/message/search | Search messages |
| GET | /v1/message/search | Search messages |
| GET | /v1/stream/{sid}/attachment | Download an attachment. |

## Key resources

- **Attachments** — Operations related to Attachments
- **AuditTrail** — Operations related to AuditTrail
- **DLP Policies and Dictionary Management** — Operations related to DLP Policies and Dictionary Management
- **Datafeed** — Operations related to Datafeed
- **Datahose** — Operations related to Datahose

## Why Jentic

- **Setup:** Wiring the Symphony Agent API by hand means standing up your own agent URL under symphony.com, managing the session and key-manager tokens each call expects, and shaping the message and stream requests yourself. Through Jentic you install once, import the Symphony Agent API from the API Directory, store the credentials once, and your agent calls it.
- **Permission scoping:** The Symphony Agent API carries the message and stream targets in the request body and parameters rather than a single owning resource path, so scope the agent to the operations it needs, such as importing a message or searching messages. You choose that allowed set, so an operation you do not add, like blasting a message to many streams, stays out of reach.
- **Credential handling:** Your Symphony session and key-manager tokens 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 'check agent health' or 'search messages in a stream', and Jentic returns the matching Symphony 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 Agent API use?

The Agent API 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 checks health status with the Agent API?

Yes. Use the GET /v3/health endpoint. The API returns structured JSON responses that agents can parse and act on directly.

### What are the rate limits for the Agent API?

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 checks health status through Jentic?

Install the Jentic SDK with pip install jentic, authenticate through Jentic One, the self-hosted execution layer, then search for 'checks health status'. Jentic returns the matching Agent API operation with its input schema. Load the schema and execute the call - credentials are injected automatically.

### How many endpoints does the Agent API have?

The Agent API exposes 56 endpoints covering attachments, audittrail, dlp policies and dictionary management operations.

### Can I limit what my agent is allowed to do with the Symphony Agent API?

Yes. Because you run Jentic One yourself, you decide which Symphony Agent API operations the agent may call, and it can use only the ones you add. The API carries its message and stream targets in the request body and parameters rather than a single owning path, so you scope by operation, for example allowing GET /v1/message/search to read messages and GET /v3/health to check status while leaving POST /v4/message/blast out of the allowed set. Any operation you do not add, such as blasting a message to many streams or importing messages from other systems, stays out of the agent's reach.
