API and Webhooks for Your Agency's Client Portal
The AgencyPro API lets you read and write clients, requests, invoices and services from your own code, and webhooks push 15 events to your endpoints the moment they happen, signed and retried on failure.
API access, webhooks and Zapier are included on the Plus plan ($149/mo). They are not available during the trial.
REST API and webhooks
OpenAPI 3.0, Bearer tokens, HMAC signatures
What developers get
The pieces you need to connect AgencyPro to the rest of your stack.
JSON endpoints for clients, organizations, requests, services, invoices, payments, subscriptions, order forms and submissions, top-ups and team members. Assign requests, change status, add comments and tags, send invoices or mark them paid.
Send events to any HTTPS endpoint as they happen. Pick the events per webhook, give it a name, and switch it on or off without deleting it.
Create named API tokens in Workspace Settings > API Tokens (shown once, valid for a year, revocable). Add a secret to a webhook and each delivery carries an X-Webhook-Signature header (HMAC SHA-256) you can verify.
The full API is described in an OpenAPI 3.0 spec at my.agencypro.app/api/v1/docs/openapi, so you can import it into Postman or generate a client in your language.
Failed deliveries retry after 1, 5 and 30 minutes. Each webhook shows total, successful and failed deliveries, its success rate, and the payload and response for each attempt.
Prefer no code? Zapier (also Plus) connects AgencyPro events to Zapier's app library, and the Slack integration posts request, ticket and payment notifications to a channel.
Webhook events
Choose any combination of these events for each webhook. A test event is available so you can check your endpoint before going live.
| Area | Events |
|---|---|
| Clients | client.created, client.updated, organization.created |
| Requests | request.created, request.updated, request.assigned, request.status_changed, request.completed |
| Billing | invoice.created, invoice.paid, payment.succeeded, subscription.created |
| Other | service.created, order_form.submitted, team_member.added |
For example, a payment.succeeded webhook pointed at a small endpoint of yours can record the payment in your accounting tool and post a message to a finance channel. If your endpoint is down, AgencyPro retries after 1, 5 and 30 minutes, and the failure shows in the delivery log.
Getting connected
In Workspace Settings > API Tokens, create a named token and copy it. Send it as a Bearer token in the Authorization header.
Load the OpenAPI spec to see every endpoint, parameter and schema. The base URL is https://my.agencypro.app/api/v1.
In Workspace Settings > Webhooks, enter your endpoint URL, choose events and a secret, then send a test event.
Check the signature on each delivery, return a 2xx quickly, and watch the delivery log for failures.
Worked example: send paid invoices to your bookkeeping system
- In Workspace Settings > Webhooks, add a webhook named "Bookkeeping" pointing at your endpoint (for example a small serverless function), subscribe it to
invoice.paidand set a secret. - Send a test event. Your endpoint receives a
webhook.testpayload, and AgencyPro shows the status code and response your endpoint returned. - When a client pays an invoice, AgencyPro POSTs JSON with the invoice fields at the top level plus metadata:
_event,_event_id,_created_atand_workspace_id. - Your function recomputes the HMAC SHA-256 of the body with the secret, compares it with the
X-Webhook-Signatureheader (sha256=...), uses_event_idto ignore duplicates, creates the payment in your accounting tool and returns 200. - If it returns an error or times out, AgencyPro retries after 1, 5 and 30 minutes. Failed attempts stay in the delivery log with the payload, so you can see what was missed.
Limits: API access and webhooks need Plus or Enterprise and are off during the trial; tokens last one year; each webhook can add custom headers and has its own timeout. Prefer no code? Zapier, also on Plus, connects AgencyPro events to other apps without an endpoint of your own.
What agencies build with it
Listen for invoice.paid and payment.succeeded and post the payment into your accounting system, so bookkeeping does not depend on someone exporting a CSV.
Create a client and organization through the API when a prospect completes a form on your own site, then send the portal invitation from AgencyPro.
Pull requests, invoices and subscriptions on a schedule into a spreadsheet or BI tool to build reports AgencyPro does not include.
Use request.assigned or request.status_changed to ping the right channel or person in your own tools when work changes hands.
When you do not need the API
- You only want notifications. The Slack integration covers request, ticket and payment alerts without code.
- You want automations but no developer. Zapier (Plus) uses the same events through a visual builder. Browse the AgencyPro integrations first.
- You are on Basic or Pro. Moving to Plus for the API costs $70/mo more than Pro for one seat, plus $10/mo more per extra seat. Worth it when an integration saves real hours each month, not for a one-off import (the CSV importer handles clients and services on every plan).
Frequently asked questions
Read, create, update and delete clients, organizations, requests, services, invoices, payments, subscriptions, order forms, top-ups and team members. You can also assign requests, change their status, add comments and tags, send invoices and mark them paid. The OpenAPI spec lists every endpoint.
Fifteen: client.created, client.updated, organization.created, request.created, request.updated, request.assigned, request.status_changed, request.completed, service.created, invoice.created, invoice.paid, payment.succeeded, subscription.created, order_form.submitted and team_member.added.
Set a secret on the webhook. Each delivery includes an X-Webhook-Signature header with an HMAC SHA-256 of the payload, prefixed with sha256=. Compute the same hash with your secret and compare before trusting the payload.
No. API access and webhooks are Plus features and are switched off during the 14-day trial, which runs at Pro level. You can open the API Tokens page during the trial to plan your integration.
API access, webhooks and Zapier are on Plus ($149/mo) and Enterprise. Plus includes one seat; extra seats are $30/mo, so a 4-person team pays $149 + 3 x $30 = $239/mo.