Public REST/JSON reference
Subscription Overlap API
Detect overlapping SaaS subscriptions across the company. Sync your card transactions to discover recurring charges, classify each by service category (Productivity / Communication / Development / Finance / etc.), and the detector flags categories where you're paying for two or three competing tools (e.g. Notion + Confluence + Coda for documentation). Per-overlap savings estimates show exactly which one to cancel. Part of the Logic Igniter Finance & Revenue Intelligence 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
12
Response models rendered
18
/api/v1/suboverlap/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/suboverlap/health" \ -H "Accept: application/json"
Responses
200Service healthy
/api/v1/suboverlap/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/suboverlap/customers" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Accept: application/json"
Responses
Page of customers
401ErrorMissing or invalid API key.
/api/v1/suboverlap/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/suboverlap/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/suboverlap/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/suboverlap/customers/:id" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Accept: application/json"
/api/v1/suboverlap/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/suboverlap/customers/:id" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{}'/api/v1/suboverlap/transactions/syncSync card transactions to detect subscriptions
Pull the latest transactions from the connected card/expense integration. Each recurring charge is classified, deduplicated, and turned into a Subscription record. Run on a schedule (weekly) or on-demand from your finance close.
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 POST "https://api.logicigniter.com/api/v1/suboverlap/transactions/sync" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Accept: application/json"
Responses
200SyncResultSync result
401ErrorMissing or invalid API key.
402ErrorEndpoint requires an active subscription. Free tier covers transaction sync + listing; paid plans unlock overlap detection, manual subscriptions, and savings estimates.
424ErrorCard/expense integration not configured
/api/v1/suboverlap/subscriptionsList subscriptions
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/suboverlap/subscriptions" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Accept: application/json"
Responses
Page of subscriptions
401ErrorMissing or invalid API key.
/api/v1/suboverlap/subscriptionsAdd a manual subscription
Use when a subscription doesn't show up in card history (e.g. enterprise contracts paid by wire). Provide product_name, category, amount, billing_frequency.
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: AddRequest
Sample JSON payload for evaluation.
{
"product_name": "Enterprise Slack",
"category": "SERVICE_CATEGORY_COMMUNICATION",
"amount_cents": 250000,
"frequency": "BILLING_FREQUENCY_MONTHLY"
}Request example
Replace placeholders with your confirmed access key and your own business data.
curl -X POST "https://api.logicigniter.com/api/v1/suboverlap/subscriptions" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"product_name":"Enterprise Slack","category":"SERVICE_CATEGORY_COMMUNICATION","amount_cents":250000,"frequency":"BILLING_FREQUENCY_MONTHLY"}'Responses
201SubscriptionSubscription added
400ErrorMissing product_name or invalid frequency
401ErrorMissing or invalid API key.
402ErrorEndpoint requires an active subscription. Free tier covers transaction sync + listing; paid plans unlock overlap detection, manual subscriptions, and savings estimates.
/api/v1/suboverlap/subscriptions/{sub_id}Get subscription detail
Includes first_seen + last_charged dates so you can see how long this subscription has been active.
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 |
|---|---|---|---|
sub_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/suboverlap/subscriptions/:sub_id" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Accept: application/json"
/api/v1/suboverlap/overlaps/detectDetect category overlaps
Run the overlap detector across the current subscription list. Returns one Overlap record per category that has >1 active subscription, with the savings_potential_cents = sum of all but the cheapest.
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 POST "https://api.logicigniter.com/api/v1/suboverlap/overlaps/detect" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Accept: application/json"
/api/v1/suboverlap/overlaps/{overlap_id}Get overlap detail with per-subscription features
Each OverlapSub includes the product_name, amount_cents, and detected features list — useful for choosing which subscription to keep when canceling overlaps.
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 |
|---|---|---|---|
overlap_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/suboverlap/overlaps/:overlap_id" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Accept: application/json"
Responses
/api/v1/suboverlap/savings-estimateAggregate savings estimate
Total potential savings across all detected overlaps + count of overlap groups. The dollar number you take into the budget review.
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/suboverlap/savings-estimate" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Accept: application/json"
Responses
Savings estimate
401ErrorMissing or invalid API key.
Data models
Error
| Field | Type | Notes |
|---|---|---|
errorrequired | string |
ServiceCategory
SubscriptionStatus
BillingFrequency
SyncResult
| Field | Type | Notes |
|---|---|---|
id | string (uuid) | |
transactions_synced | integer |
Subscription
| Field | Type | Notes |
|---|---|---|
id | string (uuid) | |
merchant_name | string | |
product_name | string | |
category | ServiceCategory | |
amount_cents | integer (int64) | |
frequency | BillingFrequency | |
status | SubscriptionStatus | |
last_charged | string (date-time) |
SubscriptionsResponse
| Field | Type | Notes |
|---|---|---|
items | array<Subscription> | |
next_page_token | string | |
total_count | integer |
AddRequest
| Field | Type | Notes |
|---|---|---|
product_namerequired | string | |
category | ServiceCategory | |
amount_centsrequired | integer (int64) | |
frequencyrequired | BillingFrequency |
SubscriptionDetail
| Field | Type | Notes |
|---|---|---|
id | string (uuid) | |
merchant_name | string | |
product_name | string | |
category | ServiceCategory | |
amount_cents | integer (int64) | |
frequency | BillingFrequency | |
first_seen | string (date-time) | |
last_charged | string (date-time) |
Overlap
| Field | Type | Notes |
|---|---|---|
id | string (uuid) | |
category | ServiceCategory | |
subscription_ids | array<string> | |
savings_potential_cents | integer (int64) |
OverlapsResponse
| Field | Type | Notes |
|---|---|---|
items | array<Overlap> |
OverlapSub
| Field | Type | Notes |
|---|---|---|
sub_id | string (uuid) | |
product_name | string | |
amount_cents | integer (int64) | |
features | array<string> |
OverlapDetail
| Field | Type | Notes |
|---|---|---|
id | string (uuid) | |
category | ServiceCategory | |
subscriptions | array<OverlapSub> | |
savings_potential_cents | integer (int64) |
SavingsEstimate
| Field | Type | Notes |
|---|---|---|
id | string (uuid) | |
total_savings_cents | integer (int64) | |
overlap_count | integer |
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 |

