Public REST/JSON reference
Pricing Monitor API
Track competitor pricing pages. Add a competitor's pricing URL, the watchdog parses each plan (name, price, billing period, features) on every poll, detects changes (price changed, plan added/removed, features changed), and labels them by severity. Compare any two snapshots to see exactly what shifted between Q1 and Q2. Part of the Logic Igniter SaaS Growth & Retention 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
13
Response models rendered
22
/api/v1/pricingmonitor/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/pricingmonitor/customers" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Accept: application/json"
Responses
Page of customers
401ErrorMissing or invalid API key.
/api/v1/pricingmonitor/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/pricingmonitor/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/pricingmonitor/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/pricingmonitor/customers/:id" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Accept: application/json"
/api/v1/pricingmonitor/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/pricingmonitor/customers/:id" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{}'/api/v1/pricingmonitor/pagesList monitored pages
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/pricingmonitor/pages" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Accept: application/json"
Responses
Page of monitored pages
401ErrorMissing or invalid API key.
/api/v1/pricingmonitor/pagesAdd a competitor pricing page
Register a competitor's pricing URL for ongoing monitoring. The watchdog polls at the requested check_frequency and snapshots the parsed plans. Status starts as PENDING; flips to HEALTHY after the first successful poll, UNREACHABLE if the page errors out.
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: AddPageRequest
Sample JSON payload for evaluation.
{
"url": "https://competitor.example.com/pricing",
"competitor_name": "Competitor Inc.",
"check_frequency": "daily"
}Request example
Replace placeholders with your confirmed access key and your own business data.
curl -X POST "https://api.logicigniter.com/api/v1/pricingmonitor/pages" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"url":"https://competitor.example.com/pricing","competitor_name":"Competitor Inc.","check_frequency":"daily"}'/api/v1/pricingmonitor/pages/{id}Remove a page from monitoring
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 DELETE "https://api.logicigniter.com/api/v1/pricingmonitor/pages/:id" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Accept: application/json"
Responses
/api/v1/pricingmonitor/pages/{id}/checkForce an immediate check
Trigger an out-of-band poll right now (instead of waiting for the next scheduled check). Useful right after a competitor announces a launch.
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 POST "https://api.logicigniter.com/api/v1/pricingmonitor/pages/:id/check" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Accept: application/json"
Responses
200CheckResultCheck result
401ErrorMissing or invalid API key.
402ErrorEndpoint requires an active subscription. Free tier covers 3 monitored pages with weekly polling; paid plans unlock unlimited pages, daily polling, ad-hoc checks, and snapshot diff.
404ErrorPage not found
/api/v1/pricingmonitor/pages/{id}/historyChange history for a page
All PricingChange records for one page, in reverse chronological order.
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) | |
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/pricingmonitor/pages/:id/history" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Accept: application/json"
Responses
/api/v1/pricingmonitor/changesList detected changes
Workspace-wide stream of detected changes. Optionally filter by minimum severity (e.g. only show MAJOR).
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 |
|---|---|---|---|
severity | query | ChangeSeverity | |
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/pricingmonitor/changes" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Accept: application/json"
Responses
Page of changes
401ErrorMissing or invalid API key.
/api/v1/pricingmonitor/changes/{id}Get a single change with full detail
Includes competitor_name and the source url so you can link the change record to the source of truth.
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/pricingmonitor/changes/:id" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Accept: application/json"
Responses
/api/v1/pricingmonitor/snapshotsGet a snapshot
Returns the parsed pricing data as captured during a single poll — both the raw parsed_data (Struct) and the structured plans list with price_cents, billing_period, and features.
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 |
|---|---|---|---|
snapshot_idrequired | query | 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/pricingmonitor/snapshots" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Accept: application/json"
Responses
/api/v1/pricingmonitor/snapshots/compareDiff two snapshots
Returns each plan-level change between snapshots A and B (price changes, added plans, removed plans, feature changes). Useful for "what shifted between Q1 and Q2" reports.
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: CompareRequest
Sample JSON payload for evaluation.
{
"snapshot_a_id": "11111111-1111-1111-1111-111111111111",
"snapshot_b_id": "22222222-2222-2222-2222-222222222222"
}Request example
Replace placeholders with your confirmed access key and your own business data.
curl -X POST "https://api.logicigniter.com/api/v1/pricingmonitor/snapshots/compare" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"snapshot_a_id":"11111111-1111-1111-1111-111111111111","snapshot_b_id":"22222222-2222-2222-2222-222222222222"}'Responses
Snapshot comparison
400ErrorMissing snapshot id, or snapshots from different pages
401ErrorMissing or invalid API key.
402ErrorEndpoint requires an active subscription. Free tier covers 3 monitored pages with weekly polling; paid plans unlock unlimited pages, daily polling, ad-hoc checks, and snapshot diff.
404ErrorSnapshot not found
Data models
Error
| Field | Type | Notes |
|---|---|---|
errorrequired | string |
ChangeSeverity
ChangeType
MonitorStatus
AddPageRequest
| Field | Type | Notes |
|---|---|---|
urlrequired | string (uri) | |
competitor_namerequired | string | |
check_frequency | string |
MonitoredPage
| Field | Type | Notes |
|---|---|---|
id | string (uuid) | |
url | string (uri) | |
competitor_name | string | |
check_frequency | string | |
status | MonitorStatus | |
last_checked_at | string (date-time) |
PagesResponse
| Field | Type | Notes |
|---|---|---|
items | array<MonitoredPage> | |
next_page_token | string | |
total_count | integer |
CheckResult
| Field | Type | Notes |
|---|---|---|
id | string (uuid) | |
changes_detected | boolean | |
changes_count | integer |
RemoveResult
| Field | Type | Notes |
|---|---|---|
success | boolean |
PricingChange
| Field | Type | Notes |
|---|---|---|
id | string (uuid) | |
page_id | string (uuid) | |
change_type | ChangeType | |
severity | ChangeSeverity | |
old_value | string | |
new_value | string | |
detected_at | string (date-time) |
ChangesResponse
| Field | Type | Notes |
|---|---|---|
items | array<PricingChange> | |
next_page_token | string | |
total_count | integer |
ChangeDetail
| Field | Type | Notes |
|---|---|---|
id | string (uuid) | |
page_id | string (uuid) | |
change_type | ChangeType | |
severity | ChangeSeverity | |
old_value | string | |
new_value | string | |
competitor_name | string | |
url | string (uri) | |
detected_at | string (date-time) |
ChangeHistory
| Field | Type | Notes |
|---|---|---|
items | array<PricingChange> | |
next_page_token | string | |
total_count | integer |
PlanData
| Field | Type | Notes |
|---|---|---|
plan_name | string | |
price_cents | integer (int64) | |
billing_period | string | |
features | array<string> |
PricingSnapshot
| Field | Type | Notes |
|---|---|---|
id | string (uuid) | |
page_id | string (uuid) | |
parsed_data | object | |
plans | array<PlanData> | |
captured_at | string (date-time) |
CompareRequest
| Field | Type | Notes |
|---|---|---|
snapshot_a_idrequired | string (uuid) | |
snapshot_b_idrequired | string (uuid) |
SnapshotChange
| Field | Type | Notes |
|---|---|---|
change_type | ChangeType | |
plan_name | string | |
old_value | string | |
new_value | string |
SnapshotComparison
| Field | Type | Notes |
|---|---|---|
id | string (uuid) | |
changes | array<SnapshotChange> |
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 |

