Skip to main content
The Rallied API lets you talk to your agent about any PSA ticket from your own scripts, automations, and internal tools. Create a bearer token, POST a prompt with the ticket’s integration slug and ID, and the agent replies with the same reasoning it uses in chat, respecting the client’s Plan Mode and approval policies. To use the API, you must be an MSP admin with a PSA connected under Settings → Integrations.

Create an API token

1

Open API Tokens

Go to Settings → API Tokens.
2

Name the token and create it

Enter a name that identifies what will use it (for example, PSA automation), then click Create token.
3

Copy the token

The full token is shown once. Copy it into your secrets manager, then click Done, I saved it.If you close the panel before copying, click Revoke next to the token, confirm, and create a new one.
The API Tokens page showing a newly created token with the Done, I saved it button
The token is displayed once. Rallied stores only a hash, so it cannot be shown to you again. If you lose it, revoke it and create a new one.
Tokens do not expire. Each token displays a last used time. Use it to spot tokens that are idle or, conversely, tokens that are still active when they shouldn’t be.
Store tokens in a secrets manager or environment variable, never in source control or chat. Issue one token per calling system so you can revoke any single token without disrupting the others. Revoke immediately if a token is leaked.

Revoke a token

On Settings → API Tokens, click Revoke next to the token, then click Confirm revoke. Subsequent calls with that token fail immediately with a 401. Revoked tokens remain in the Revoked list so you have a record of when each one was retired.
The API Tokens page after revoking, with the token listed under Revoked

Talk to your agent about a ticket

A single token can act on any client and any ticket in your MSP.

Request body

string
required
Slug of the connected PSA that holds the ticket. Lowercase letters, digits, _, and -. Maximum 64 characters. See Integration slugs.
string
required
The ticket number or ID in that PSA. Letters, digits, ., _, and -. Maximum 64 characters. The ticket must already exist in Rallied (see How the conversation works).
string
required
What you want to ask or tell the agent. 1 to 20,000 characters.

Integration slugs

You can also copy the slug from the API slug chip on the integration detail page under Settings → Integrations.

Example request

Example response

string
The agent’s answer to your prompt.
string
The agent’s reasoning, when it shares it. Omitted when empty.
string
Unique ID for this request/response exchange.
string
Identifier for the conversation this exchange belongs to. Stable for a given integration and ticket, so follow-up calls continue the same conversation.
string
Slug of the client that owns the ticket.
string
plan when the client is in Plan Mode, execute when the client is in Execute Mode.
integer
How long the agent took to answer, in milliseconds.

How the conversation works

Rallied must already know the ticket. The API does not look tickets up in your PSA. It only sees tickets that arrived by webhook while the integration was enabled, for companies that are active clients. You’ll get a 404 if the ticket predates the integration, the company isn’t an active client, or the client is paused. Each ticket has its own API conversation. Repeat calls for the same integration and ticket continue that conversation, so you can ask follow-up questions. This conversation is separate from the work the agent does on the ticket itself: your prompts don’t change how the agent handles the ticket. The agent answers you, not the ticket. It won’t post to the ticket unless your prompt explicitly tells it to. Plan Mode and approval settings still apply. In Plan Mode the agent only reads and plans. In Execute Mode, actions marked Needs approval wait for a technician, exactly as they do in chat. Calls block until the agent replies. If the agent takes too long, you’ll receive a 504 with the same turnId and sessionKey. The agent keeps working. Retry the same call to continue the conversation. Every exchange is logged in Activity as an API chat on the ticket, so your team can see what you asked and how the agent responded.

Errors and limits

Every error response is JSON with a single error string. Rate limits are applied in two tiers:
  • 600 requests per minute per IP address
  • 30 requests per minute per token
Every response includes RateLimit-Limit, RateLimit-Remaining, and RateLimit-Reset. A 429 additionally includes Retry-After.
Some networks close idle requests after about 100 seconds, which can happen before Rallied’s own timeout. Treat a dropped connection as a 504: the agent keeps working, and the next call for the same ticket continues the conversation.
  • Chat with your agent — the same conversation, from inside Rallied or ConnectWise.
  • Approval settings — control which actions the agent can run from an API conversation.
  • Plan Mode — what the agent does when mode is plan.
  • Integrations — connect the PSA whose slug you pass as integration.