Public REST/JSON reference
Client Report API
Stop spending Mondays building agency reports. Define a brand-aware report template once, connect each client's data sources (Google Analytics, Meta, Google Ads, SEO providers), generate the period-bounded report on-demand, schedule recurring delivery, and email the PDF/HTML to stakeholders. Part of the Logic Igniter Content & Marketing bundle.
Access boundary
These examples describe public API calls only. Use the service output to review, score, summarize, analyze, or recommend; do not treat the API reference as permission for an assistant to write, send, publish, charge, schedule, notify, delete, or modify records.
Base URL
https://api.logicigniter.comAuth
Authorization: Bearer YOUR_API_KEYVersion
OpenAPI 3.0.3 · 1.0.0Operations rendered
17
Response models rendered
26
/api/v1/clientreport/healthService liveness
Liveness probe — returns 200 if the service is reachable.
Public REST/JSON operation
This operation is documented for direct API evaluation. It describes the public payload and response contract only; assistant/MCP usage remains read only and is covered in the MCP guide.
Request example
Replace placeholders with your confirmed access key and your own business data.
curl -X GET "https://api.logicigniter.com/api/v1/clientreport/health" \ -H "Accept: application/json"
Responses
200Service healthy
/api/v1/clientreport/customersList customers
Public REST/JSON operation
This operation is documented for direct API evaluation. It describes the public payload and response contract only; assistant/MCP usage remains read only and is covered in the MCP guide.
Parameters
| Name | In | Type | Notes |
|---|---|---|---|
page_size | query | integer | |
page_token | query | string |
Request example
Replace placeholders with your confirmed access key and your own business data.
curl -X GET "https://api.logicigniter.com/api/v1/clientreport/customers" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Accept: application/json"
Responses
Page of customers
401ErrorMissing or invalid API key.
/api/v1/clientreport/customersProvision a customer
Public REST/JSON operation
This operation is documented for direct API evaluation. It describes the public payload and response contract only; assistant/MCP usage remains read only and is covered in the MCP guide.
Request body (required)
Schema: CreateCustomerRequest
Sample JSON payload for evaluation.
{
"email": "[email protected]",
"name": "Example Inc."
}Request example
Replace placeholders with your confirmed access key and your own business data.
curl -X POST "https://api.logicigniter.com/api/v1/clientreport/customers" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"email":"[email protected]","name":"Example Inc."}'/api/v1/clientreport/customers/{id}Get a customer by id
Public REST/JSON operation
This operation is documented for direct API evaluation. It describes the public payload and response contract only; assistant/MCP usage remains read only and is covered in the MCP guide.
Parameters
| Name | In | Type | Notes |
|---|---|---|---|
idrequired | path | string (uuid) |
Request example
Replace placeholders with your confirmed access key and your own business data.
curl -X GET "https://api.logicigniter.com/api/v1/clientreport/customers/:id" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Accept: application/json"
/api/v1/clientreport/customers/{id}Update a customer
Public REST/JSON operation
This operation is documented for direct API evaluation. It describes the public payload and response contract only; assistant/MCP usage remains read only and is covered in the MCP guide.
Parameters
| Name | In | Type | Notes |
|---|---|---|---|
idrequired | path | string (uuid) |
Request body (required)
Schema: UpdateCustomerRequest
Request example
Replace placeholders with your confirmed access key and your own business data.
curl -X PUT "https://api.logicigniter.com/api/v1/clientreport/customers/:id" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{}'/api/v1/clientreport/clientsList clients
Public REST/JSON operation
This operation is documented for direct API evaluation. It describes the public payload and response contract only; assistant/MCP usage remains read only and is covered in the MCP guide.
Parameters
| Name | In | Type | Notes |
|---|---|---|---|
page_size | query | integer | |
page_token | query | string |
Request example
Replace placeholders with your confirmed access key and your own business data.
curl -X GET "https://api.logicigniter.com/api/v1/clientreport/clients" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Accept: application/json"
Responses
Page of clients
401ErrorMissing or invalid API key.
/api/v1/clientreport/clientsAdd a client
Register a client with their brand identity. The brand_colors are applied to generated reports automatically.
Public REST/JSON operation
This operation is documented for direct API evaluation. It describes the public payload and response contract only; assistant/MCP usage remains read only and is covered in the MCP guide.
Request body (required)
Schema: AddClientRequest
Sample JSON payload for evaluation.
{
"name": "Acme Corp",
"logo_url": "https://example.com/acme-logo.svg",
"brand_colors": {
"primary": "#FF6B35",
"secondary": "#004E64",
"accent": "#FFD23F"
}
}Request example
Replace placeholders with your confirmed access key and your own business data.
curl -X POST "https://api.logicigniter.com/api/v1/clientreport/clients" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"name":"Acme Corp","logo_url":"https://example.com/acme-logo.svg","brand_colors":{"primary":"#FF6B35","secondary":"#004E64","accent":"#FFD23F"}}'/api/v1/clientreport/clients/{client_id}Get client detail with connected sources
Returns the client + the list of source integrations connected (Google Analytics, Meta, Google Ads, SEO).
Public REST/JSON operation
This operation is documented for direct API evaluation. It describes the public payload and response contract only; assistant/MCP usage remains read only and is covered in the MCP guide.
Parameters
| Name | In | Type | Notes |
|---|---|---|---|
client_idrequired | path | string (uuid) |
Request example
Replace placeholders with your confirmed access key and your own business data.
curl -X GET "https://api.logicigniter.com/api/v1/clientreport/clients/:client_id" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Accept: application/json"
Responses
/api/v1/clientreport/clients/{client_id}/scheduleSet or update a recurring schedule
Frequency strings: `weekly`, `biweekly`, `monthly`, `quarterly`. delivery_emails is the list to receive each generated report.
Public REST/JSON operation
This operation is documented for direct API evaluation. It describes the public payload and response contract only; assistant/MCP usage remains read only and is covered in the MCP guide.
Parameters
| Name | In | Type | Notes |
|---|---|---|---|
client_idrequired | path | string (uuid) |
Request body (required)
Schema: SetScheduleRequest
Sample JSON payload for evaluation.
{
"frequency": "monthly",
"delivery_emails": [
"[email protected]",
"[email protected]"
]
}Request example
Replace placeholders with your confirmed access key and your own business data.
curl -X PUT "https://api.logicigniter.com/api/v1/clientreport/clients/:client_id/schedule" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"frequency":"monthly","delivery_emails":["[email protected]","[email protected]"]}'Responses
200ScheduleSchedule set
400ErrorInvalid frequency or delivery_emails
401ErrorMissing or invalid API key.
402ErrorEndpoint requires an active subscription. Free tier covers 1 client + manual report generation; paid plans unlock unlimited clients, schedules, multi-template, and email delivery.
404ErrorClient not found
/api/v1/clientreport/schedulesList active schedules
Public REST/JSON operation
This operation is documented for direct API evaluation. It describes the public payload and response contract only; assistant/MCP usage remains read only and is covered in the MCP guide.
Request example
Replace placeholders with your confirmed access key and your own business data.
curl -X GET "https://api.logicigniter.com/api/v1/clientreport/schedules" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Accept: application/json"
Responses
Schedules
401ErrorMissing or invalid API key.
/api/v1/clientreport/reportsList reports (optionally filter by client)
Public REST/JSON operation
This operation is documented for direct API evaluation. It describes the public payload and response contract only; assistant/MCP usage remains read only and is covered in the MCP guide.
Parameters
| Name | In | Type | Notes |
|---|---|---|---|
client_id | query | string (uuid) | |
page_size | query | integer | |
page_token | query | string |
Request example
Replace placeholders with your confirmed access key and your own business data.
curl -X GET "https://api.logicigniter.com/api/v1/clientreport/reports" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Accept: application/json"
Responses
Page of reports
401ErrorMissing or invalid API key.
/api/v1/clientreport/reportsGenerate a report
Render a report for the client across the period_start..period_end window. Status starts as PENDING; flips to READY once the file_path is available for download.
Public REST/JSON operation
This operation is documented for direct API evaluation. It describes the public payload and response contract only; assistant/MCP usage remains read only and is covered in the MCP guide.
Request body (required)
Schema: GenerateRequest
Sample JSON payload for evaluation.
{
"client_id": "11111111-1111-1111-1111-111111111111",
"period_start": "2026-04-01T00:00:00Z",
"period_end": "2026-04-30T23:59:59Z"
}Request example
Replace placeholders with your confirmed access key and your own business data.
curl -X POST "https://api.logicigniter.com/api/v1/clientreport/reports" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"client_id":"11111111-1111-1111-1111-111111111111","period_start":"2026-04-01T00:00:00Z","period_end":"2026-04-30T23:59:59Z"}'Responses
201ReportReport queued
400ErrorInvalid period or no source data in window
401ErrorMissing or invalid API key.
402ErrorEndpoint requires an active subscription. Free tier covers 1 client + manual report generation; paid plans unlock unlimited clients, schedules, multi-template, and email delivery.
404ErrorClient not found
/api/v1/clientreport/reports/{report_id}Get a report
Public REST/JSON operation
This operation is documented for direct API evaluation. It describes the public payload and response contract only; assistant/MCP usage remains read only and is covered in the MCP guide.
Parameters
| Name | In | Type | Notes |
|---|---|---|---|
report_idrequired | path | string (uuid) |
Request example
Replace placeholders with your confirmed access key and your own business data.
curl -X GET "https://api.logicigniter.com/api/v1/clientreport/reports/:report_id" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Accept: application/json"
/api/v1/clientreport/reports/{report_id}/deliverEmail a report
Deliver an already-generated report to a list of email recipients. Useful for ad-hoc deliveries outside the recurring schedule.
Public REST/JSON operation
This operation is documented for direct API evaluation. It describes the public payload and response contract only; assistant/MCP usage remains read only and is covered in the MCP guide.
Parameters
| Name | In | Type | Notes |
|---|---|---|---|
report_idrequired | path | string (uuid) |
Request body (required)
Schema: DeliverRequest
Sample JSON payload for evaluation.
{
"emails": [
"[email protected]"
]
}Request example
Replace placeholders with your confirmed access key and your own business data.
curl -X POST "https://api.logicigniter.com/api/v1/clientreport/reports/:report_id/deliver" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"emails":["[email protected]"]}'Responses
Delivery result
400ErrorEmpty emails or report status != READY
401ErrorMissing or invalid API key.
402ErrorEndpoint requires an active subscription. Free tier covers 1 client + manual report generation; paid plans unlock unlimited clients, schedules, multi-template, and email delivery.
404ErrorReport not found
/api/v1/clientreport/templatesList templates
Public REST/JSON operation
This operation is documented for direct API evaluation. It describes the public payload and response contract only; assistant/MCP usage remains read only and is covered in the MCP guide.
Request example
Replace placeholders with your confirmed access key and your own business data.
curl -X GET "https://api.logicigniter.com/api/v1/clientreport/templates" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Accept: application/json"
Responses
Templates
401ErrorMissing or invalid API key.
/api/v1/clientreport/templatesCreate a report template
Define a layout (sections, charts, copy blocks) and a brand_config (font, primary color, logo). The layout is an opaque Struct payload — refer to the template editor docs for shape.
Public REST/JSON operation
This operation is documented for direct API evaluation. It describes the public payload and response contract only; assistant/MCP usage remains read only and is covered in the MCP guide.
Request body (required)
Schema: CreateTemplateRequest
Sample JSON payload for evaluation.
{
"name": "Monthly Marketing Recap",
"layout": {
"sections": [
"summary",
"channels",
"campaigns",
"next-steps"
]
},
"brand_config": {
"font_family": "Inter",
"primary_color": "#FF6B35",
"logo_url": "https://example.com/logo.svg"
}
}Request example
Replace placeholders with your confirmed access key and your own business data.
curl -X POST "https://api.logicigniter.com/api/v1/clientreport/templates" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"name":"Monthly Marketing Recap","layout":{"sections":["summary","channels","campaigns","next-steps"]},"brand_config":{"font_family":"Inter","primary_color":"#FF6B35","logo_url":"https://example.com/logo.svg"}}'/api/v1/clientreport/templates/{template_id}/previewPreview a template with sample data
Returns a preview image (base64-encoded bytes) of the rendered template using sample data. Useful for iterating on layout before committing to a real client report.
Public REST/JSON operation
This operation is documented for direct API evaluation. It describes the public payload and response contract only; assistant/MCP usage remains read only and is covered in the MCP guide.
Parameters
| Name | In | Type | Notes |
|---|---|---|---|
template_idrequired | path | string (uuid) |
Request example
Replace placeholders with your confirmed access key and your own business data.
curl -X POST "https://api.logicigniter.com/api/v1/clientreport/templates/:template_id/preview" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Accept: application/json"
Responses
Data models
Error
| Field | Type | Notes |
|---|---|---|
errorrequired | string |
SourceType
ReportStatus
BrandColors
| Field | Type | Notes |
|---|---|---|
primary | string | Example: "#FF6B35" |
secondary | string | Example: "#004E64" |
accent | string | Example: "#FFD23F" |
AddClientRequest
| Field | Type | Notes |
|---|---|---|
namerequired | string | |
logo_url | string (uri) | |
brand_colors | BrandColors |
Client
| Field | Type | Notes |
|---|---|---|
id | string (uuid) | |
name | string | |
logo_url | string (uri) | |
template_id | string (uuid) |
ClientsResponse
| Field | Type | Notes |
|---|---|---|
items | array<Client> | |
next_page_token | string | |
total_count | integer |
ConnectedSource
| Field | Type | Notes |
|---|---|---|
source_type | SourceType | |
account_id | string |
ClientDetail
| Field | Type | Notes |
|---|---|---|
id | string (uuid) | |
name | string | |
logo_url | string (uri) | |
sources | array<ConnectedSource> |
SetScheduleRequest
| Field | Type | Notes |
|---|---|---|
frequencyrequired | string | |
delivery_emailsrequired | array<string> |
Schedule
| Field | Type | Notes |
|---|---|---|
id | string (uuid) | |
client_id | string (uuid) | |
frequency | string | |
next_run_at | string (date-time) |
SchedulesResponse
| Field | Type | Notes |
|---|---|---|
items | array<Schedule> |
GenerateRequest
| Field | Type | Notes |
|---|---|---|
client_idrequired | string (uuid) | |
period_startrequired | string (date-time) | |
period_endrequired | string (date-time) |
Report
| Field | Type | Notes |
|---|---|---|
id | string (uuid) | |
client_id | string (uuid) | |
format | string | |
file_path | string | |
status | ReportStatus | |
generated_at | string (date-time) |
ReportsResponse
| Field | Type | Notes |
|---|---|---|
items | array<Report> | |
next_page_token | string | |
total_count | integer |
DeliverRequest
| Field | Type | Notes |
|---|---|---|
emailsrequired | array<string> |
DeliverResult
| Field | Type | Notes |
|---|---|---|
id | string (uuid) | |
success | boolean |
BrandConfig
| Field | Type | Notes |
|---|---|---|
font_family | string | |
primary_color | string | |
logo_url | string (uri) |
CreateTemplateRequest
| Field | Type | Notes |
|---|---|---|
namerequired | string | |
layout | object | |
brand_config | BrandConfig |
Template
| Field | Type | Notes |
|---|---|---|
id | string (uuid) | |
name | string | |
layout | object |
TemplatesResponse
| Field | Type | Notes |
|---|---|---|
items | array<Template> |
PreviewResult
| Field | Type | Notes |
|---|---|---|
id | string (uuid) | |
preview_image | string (byte) |
CreateCustomerRequest
| Field | Type | Notes |
|---|---|---|
emailrequired | string (email) | |
namerequired | string |
UpdateCustomerRequest
| Field | Type | Notes |
|---|---|---|
email | string (email) | |
name | string |
Customer
| Field | Type | Notes |
|---|---|---|
id | string (uuid) | |
email | string (email) | |
name | string | |
created_at | string (date-time) |
CustomersResponse
| Field | Type | Notes |
|---|---|---|
items | array<Customer> | |
next_page_token | string | |
total_count | integer |

