Docs & API

Everything you need to make it work.

Step-by-step setup, integration specifics, and the full REST API.

Getting started

Quickstart

Get your first report sent in under 10 minutes. Sign up, connect one integration, add a client, paste a paragraph of your past reporting voice, and hit send. The first report leaves your domain Monday at 9am.

Setting up your agency workspace

Settings → Agency Profile. Add your brand name, logo, sending domain (e.g. reports@youragency.com), and footer text. These show up on every report and the client portal — there is no SendReport branding anywhere your clients can see.

Adding your first client

Clients → Add client. Enter their company name, the contact email that should receive reports, and OAuth into the platforms they advertise on. You can do this all at once or stage it.

Generating your first report

Reports → Generate. Pick the client, date range, and cadence. The AI summary writes from the actual data — if a source is missing, the send is held and you get an email instead.

Integrations

Meta Ads

Authorize the Meta Business account that owns your client's ad accounts. Facebook and Instagram campaigns appear side by side. Multiple ad accounts per client supported.

GA4

Authorize the Google account with access to the GA4 property. We pull sessions, users, bounce rate, conversion events, and traffic-source breakdowns. Custom events supported.

SEMrush

Connect your SEMrush API key. We pull rankings, backlink growth, organic traffic, and competitor data. Keyword tracking is included — no add-on fee.

Shopify

Direct Shopify API connection, not via a third-party connector. We pull revenue, orders, conversion rate, AOV, top products. Multi-store supported per client.

Reports

AI voice conditioning

Paste a paragraph of your past reports during setup. The model is conditioned on your phrasing, your opinions, your structure. You can also override per-client if a specific account needs a different tone.

White-label branding

Upload your logo, set brand colors, configure a custom sending domain (reports.youragency.com). Reports look like you built them from scratch. No "Powered by SendReport" anywhere.

Auto-send schedules

Per-client cadence — weekly, biweekly, monthly, quarterly, or a custom cron expression. Once configured, reports send forever without you opening the dashboard.

Review-before-send

Per-client toggle. When on, you get the draft via email Sunday evening. Approve in one click or edit inline. When off, reports send automatically.

Fail-quiet behaviour

If a data source returns null, has a broken pixel, or fails OAuth, we hold the send and email you instead of your client. No "performance was strong" on a broken week.

API

API authentication

All API requests require a Bearer token. Generate keys at Settings → API.

curl https://api.sendreport.app/v1/reports \
  -H "Authorization: Bearer YOUR_API_KEY"

Endpoints

REST endpoints for clients, reports, integrations, and schedules. All responses JSON.

GET    /v1/clients
POST   /v1/clients
GET    /v1/reports
POST   /v1/reports/generate
GET    /v1/schedules

Webhooks

Subscribe to report.generated, report.sent, integration.failed, integration.reconnected events.

{
  "event": "report.sent",
  "report_id": "rep_xyz",
  "client_id": "cli_xyz",
  "sent_at": "2026-05-23T09:02:00Z"
}

Rate limits

Trial: 100 req/hr. Solo: 500 req/hr. Agency: 2,000 req/hr. Scale: 10,000 req/hr. 429 response if exceeded; rate-limit headers on every response.

Need help? Talk to a human →