Public REST/JSON reference
Case Study API
Turn a customer into a published case study without a writer in the loop. Create a study, gather signals from CRM (deal data) + support (pain points) + product (usage metrics) + survey (satisfaction scores), generate interview questions for any remaining data gaps, submit the customer's answers, render a draft in Markdown, then regenerate with custom instructions until the voice is right. 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
13
Response models rendered
20
/api/v1/casestudy/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/casestudy/health" \ -H "Accept: application/json"
Responses
200Service healthy
/api/v1/casestudy/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/casestudy/customers" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Accept: application/json"
Responses
Page of customers
401ErrorMissing or invalid API key.
/api/v1/casestudy/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/casestudy/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/casestudy/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/casestudy/customers/:id" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Accept: application/json"
/api/v1/casestudy/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/casestudy/customers/:id" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{}'/api/v1/casestudy/studiesList case studies
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/casestudy/studies" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Accept: application/json"
Responses
Page of case studies
401ErrorMissing or invalid API key.
/api/v1/casestudy/studiesCreate a case study
Start a new case study record. customer_id_crm is the upstream CRM id (Salesforce/HubSpot account id) used by /gather to pull deal data.
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: CreateRequest
Sample JSON payload for evaluation.
{
"customer_name": "Acme Corp",
"customer_id_crm": "0011A00001abcDEF"
}Request example
Replace placeholders with your confirmed access key and your own business data.
curl -X POST "https://api.logicigniter.com/api/v1/casestudy/studies" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"customer_name":"Acme Corp","customer_id_crm":"0011A00001abcDEF"}'Responses
/api/v1/casestudy/studies/{case_study_id}Get a case study with gathered data + latest draft
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 |
|---|---|---|---|
case_study_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/casestudy/studies/:case_study_id" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Accept: application/json"
Responses
/api/v1/casestudy/studies/{case_study_id}/gatherGather data from connected sources
Pull all available signal types — DEAL (CRM deal/opportunity), PAIN_POINTS (support ticket excerpts), SATISFACTION (CSAT/NPS scores), METRICS (product usage). The result drives the draft generator and identifies any remaining data gaps for the interview step.
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 |
|---|---|---|---|
case_study_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/casestudy/studies/:case_study_id/gather" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Accept: application/json"
Responses
200GatheredDataGathered data sources
401ErrorMissing or invalid API key.
402ErrorEndpoint requires an active subscription. Free tier covers 1 case study creation + interview question generation; paid plans unlock unlimited studies, gathering, draft generation + regeneration.
404ErrorCase study not found
/api/v1/casestudy/studies/{case_study_id}/draftGenerate the case-study draft
Render a Markdown draft from gathered data + interview answers. Status moves to DRAFTING.
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 |
|---|---|---|---|
case_study_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/casestudy/studies/:case_study_id/draft" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Accept: application/json"
Responses
201DraftGenerated draft
400ErrorNo data gathered yet
401ErrorMissing or invalid API key.
402ErrorEndpoint requires an active subscription. Free tier covers 1 case study creation + interview question generation; paid plans unlock unlimited studies, gathering, draft generation + regeneration.
404ErrorCase study not found
/api/v1/casestudy/studies/{case_study_id}/draft/regenerateRegenerate the draft with custom instructions
Bumps version, re-renders the draft following the instructions (e.g. "shorten the intro", "lead with the metric", "more conversational tone").
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 |
|---|---|---|---|
case_study_idrequired | path | string (uuid) |
Request body (required)
Schema: RegenerateRequest
Sample JSON payload for evaluation.
{
"instructions": "Lead with the 30% retention metric. Shorten the intro. End with a CTA to a 15-minute call."
}Request example
Replace placeholders with your confirmed access key and your own business data.
curl -X POST "https://api.logicigniter.com/api/v1/casestudy/studies/:case_study_id/draft/regenerate" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"instructions":"Lead with the 30% retention metric. Shorten the intro. End with a CTA to a 15-minute call."}'Responses
200DraftRegenerated draft (new version)
400ErrorEmpty instructions
401ErrorMissing or invalid API key.
402ErrorEndpoint requires an active subscription. Free tier covers 1 case study creation + interview question generation; paid plans unlock unlimited studies, gathering, draft generation + regeneration.
404ErrorCase study not found
/api/v1/casestudy/studies/{case_study_id}/questionsGenerate interview questions for data gaps
Returns a list of targeted questions derived from the gaps in /gather. Each question carries a data_gap label so you know what each is meant to fill.
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 |
|---|---|---|---|
case_study_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/casestudy/studies/:case_study_id/questions" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Accept: application/json"
/api/v1/casestudy/studies/{case_study_id}/answersSubmit interview answers
Persist the customer's answers. Subsequent /draft calls will incorporate them.
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 |
|---|---|---|---|
case_study_idrequired | path | string (uuid) |
Request body (required)
Schema: SubmitAnswersRequest
Sample JSON payload for evaluation.
{
"answers": [
{
"question_id": "11111111-1111-1111-1111-111111111111",
"answer": "We saw a 30% reduction in support tickets in the first quarter after rollout."
}
]
}Request example
Replace placeholders with your confirmed access key and your own business data.
curl -X POST "https://api.logicigniter.com/api/v1/casestudy/studies/:case_study_id/answers" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"answers":[{"question_id":"11111111-1111-1111-1111-111111111111","answer":"We saw a 30% reduction in support tickets in the first quarter after rollout."}]}'Responses
200SubmitResultSubmission result
400ErrorEmpty answers or unknown question_id
401ErrorMissing or invalid API key.
404ErrorCase study not found
Data models
Error
| Field | Type | Notes |
|---|---|---|
errorrequired | string |
DataSourceType
CaseStudyStatus
CreateRequest
| Field | Type | Notes |
|---|---|---|
customer_namerequired | string | |
customer_id_crm | string |
CaseStudy
| Field | Type | Notes |
|---|---|---|
id | string (uuid) | |
customer_name | string | |
status | CaseStudyStatus | |
created_at | string (date-time) |
CaseStudiesResponse
| Field | Type | Notes |
|---|---|---|
items | array<CaseStudy> | |
next_page_token | string | |
total_count | integer |
DataSource
| Field | Type | Notes |
|---|---|---|
source | string | |
data_type | DataSourceType | |
data | object |
GatheredData
| Field | Type | Notes |
|---|---|---|
id | string (uuid) | |
case_study_id | string (uuid) | |
sources | array<DataSource> | |
gathered_at | string (date-time) |
Draft
| Field | Type | Notes |
|---|---|---|
id | string (uuid) | |
case_study_id | string (uuid) | |
version | integer | |
content_markdown | string | |
generated_at | string (date-time) |
RegenerateRequest
| Field | Type | Notes |
|---|---|---|
instructionsrequired | string |
CaseStudyDetail
| Field | Type | Notes |
|---|---|---|
id | string (uuid) | |
customer_name | string | |
status | CaseStudyStatus | |
gathered_data | array<DataSource> | |
latest_draft | Draft |
InterviewQuestion
| Field | Type | Notes |
|---|---|---|
id | string (uuid) | |
question | string | |
data_gap | string | |
answer | string |
QuestionsResponse
| Field | Type | Notes |
|---|---|---|
items | array<InterviewQuestion> |
AnswerEntry
| Field | Type | Notes |
|---|---|---|
question_idrequired | string (uuid) | |
answerrequired | string |
SubmitAnswersRequest
| Field | Type | Notes |
|---|---|---|
answersrequired | array<AnswerEntry> |
SubmitResult
| Field | Type | Notes |
|---|---|---|
id | string (uuid) | |
success | boolean |
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 |

