Public REST/JSON reference
Testimonial Clip API
Submit a long-form customer testimonial video, transcribe it, find the highlight segments (enthusiastic praise, specific outcomes, emotional moments) using sentiment analysis, then auto-cut N short clips with subtitles ready for social. Adjust clip boundaries and re-render with different subtitle styles when needed. 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
14
Response models rendered
21
/api/v1/testimonialclip/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/testimonialclip/customers" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Accept: application/json"
Responses
Page of customers
401ErrorMissing or invalid API key.
/api/v1/testimonialclip/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/testimonialclip/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/testimonialclip/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/testimonialclip/customers/:id" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Accept: application/json"
/api/v1/testimonialclip/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/testimonialclip/customers/:id" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{}'/api/v1/testimonialclip/videos/fetchSubmit a video for processing
Returns immediately with `status = QUEUED`; the pipeline progresses through QUEUED → PROCESSING → TRANSCRIBED → ANALYZED → READY. Poll GET /videos/{id} to track. SOURCE_PURGED appears once the original media has been deleted but the transcript+clips remain.
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: FetchRequest
Sample JSON payload for evaluation.
{
"url": "https://example.com/customer-call-2026-04.mp4",
"title": "Acme Corp — quarterly review"
}Request example
Replace placeholders with your confirmed access key and your own business data.
curl -X POST "https://api.logicigniter.com/api/v1/testimonialclip/videos/fetch" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com/customer-call-2026-04.mp4","title":"Acme Corp — quarterly review"}'Responses
/api/v1/testimonialclip/videosList submitted videos
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/testimonialclip/videos" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Accept: application/json"
Responses
Page of videos
401ErrorMissing or invalid API key.
/api/v1/testimonialclip/videos/{id}Get video detail with transcript + clip count
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/testimonialclip/videos/:id" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Accept: application/json"
Responses
/api/v1/testimonialclip/videos/{id}/transcriptGet the full transcript
Segmented transcript with start/end timestamps in seconds, the spoken text, and the speaker label assigned by the diarizer.
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/testimonialclip/videos/:id/transcript" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Accept: application/json"
Responses
/api/v1/testimonialclip/videos/{id}/highlightsGet the highlight segments
Sentiment-analyzed segments — labelled ENTHUSIASTIC_PRAISE / SPECIFIC_OUTCOME / EMOTIONAL_MOMENT / OTHER — sorted by sentiment_score descending. The default input to /clips/generate.
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/testimonialclip/videos/:id/highlights" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Accept: application/json"
/api/v1/testimonialclip/videos/{id}/clips/generateGenerate clips from the highlight segments
Cuts up to `max_clips` short clips (default 5) starting from the top-ranked highlight segments. Returns immediately with each clip's `status = PENDING`; render runs async.
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: GenerateClipsRequest
Sample JSON payload for evaluation.
{
"max_clips": 5
}Request example
Replace placeholders with your confirmed access key and your own business data.
curl -X POST "https://api.logicigniter.com/api/v1/testimonialclip/videos/:id/clips/generate" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"max_clips":5}'Responses
Generated clips (status PENDING — poll GET /clips/{id})
400Errormax_clips out of range or no highlights yet
401ErrorMissing or invalid API key.
402ErrorEndpoint requires an active subscription. Free tier covers 2 video uploads/month and read-only transcript access; paid plans unlock highlight detection, clip generation, and re-rendering.
404ErrorVideo not found
/api/v1/testimonialclip/clips/{id}Get a clip
Returns the clip's status, its window in the source video, and (once status = READY) the file_path 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.
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/testimonialclip/clips/:id" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Accept: application/json"
/api/v1/testimonialclip/clips/{id}/adjustAdjust clip boundaries
Edit start_time and/or end_time and re-render. Sets status back to PENDING.
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: AdjustClipRequest
Sample JSON payload for evaluation.
{
"start_time": 142.5,
"end_time": 168
}Request example
Replace placeholders with your confirmed access key and your own business data.
curl -X PUT "https://api.logicigniter.com/api/v1/testimonialclip/clips/:id/adjust" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"start_time":142.5,"end_time":168}'Responses
200ClipAdjusted clip
400Errorend_time <= start_time, or boundaries outside video
401ErrorMissing or invalid API key.
402ErrorEndpoint requires an active subscription. Free tier covers 2 video uploads/month and read-only transcript access; paid plans unlock highlight detection, clip generation, and re-rendering.
404ErrorClip not found
/api/v1/testimonialclip/clips/{id}/subtitlesRe-subtitle a clip
Replace the subtitle style (e.g. word-by-word, line-by-line, branded) and re-render. Sets status back to PENDING.
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: AddSubtitlesRequest
Sample JSON payload for evaluation.
{
"subtitle_style": "word-by-word"
}Request example
Replace placeholders with your confirmed access key and your own business data.
curl -X PUT "https://api.logicigniter.com/api/v1/testimonialclip/clips/:id/subtitles" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"subtitle_style":"word-by-word"}'Responses
200ClipRe-subtitled clip
400ErrorUnknown subtitle_style
401ErrorMissing or invalid API key.
402ErrorEndpoint requires an active subscription. Free tier covers 2 video uploads/month and read-only transcript access; paid plans unlock highlight detection, clip generation, and re-rendering.
404ErrorClip not found
/api/v1/testimonialclip/clipsList clips
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 |
|---|---|---|---|
video_id | query | string (uuid) | If omitted, returns all clips for the workspace. |
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/testimonialclip/clips" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Accept: application/json"
Responses
Page of clips
401ErrorMissing or invalid API key.
Data models
Error
| Field | Type | Notes |
|---|---|---|
errorrequired | string |
VideoStatus
ClipStatus
SentimentCategory
FetchRequest
| Field | Type | Notes |
|---|---|---|
urlrequired | string (uri) | |
title | string |
Video
| Field | Type | Notes |
|---|---|---|
id | string (uuid) | |
title | string | |
source_url | string (uri) | |
duration_seconds | integer | |
status | VideoStatus | |
created_at | string (date-time) |
VideosResponse
| Field | Type | Notes |
|---|---|---|
items | array<Video> | |
next_page_token | string | |
total_count | integer |
VideoDetail
| Field | Type | Notes |
|---|---|---|
id | string (uuid) | |
title | string | |
source_url | string (uri) | |
duration_seconds | integer | |
status | VideoStatus | |
has_transcript | boolean | |
clips_count | integer |
TranscriptSegment
| Field | Type | Notes |
|---|---|---|
start | number (double) | |
end | number (double) | |
text | string | |
speaker | string |
Transcript
| Field | Type | Notes |
|---|---|---|
id | string (uuid) | |
video_id | string (uuid) | |
segments | array<TranscriptSegment> | |
word_count | integer |
SentimentSegment
| Field | Type | Notes |
|---|---|---|
id | string (uuid) | |
start_time | number (double) | |
end_time | number (double) | |
text | string | |
sentiment_score | number (double) | |
category | SentimentCategory |
SegmentsResponse
| Field | Type | Notes |
|---|---|---|
items | array<SentimentSegment> |
GenerateClipsRequest
| Field | Type | Notes |
|---|---|---|
max_clips | integer |
Clip
| Field | Type | Notes |
|---|---|---|
id | string (uuid) | |
video_id | string (uuid) | |
start_time | number (double) | |
end_time | number (double) | |
duration_seconds | integer | |
file_path | string | |
subtitle_style | string | |
format | string | |
status | ClipStatus |
ClipsResponse
| Field | Type | Notes |
|---|---|---|
items | array<Clip> | |
next_page_token | string | |
total_count | integer |
AdjustClipRequest
| Field | Type | Notes |
|---|---|---|
start_time | number (double) | |
end_time | number (double) |
AddSubtitlesRequest
| Field | Type | Notes |
|---|---|---|
subtitle_stylerequired | string |
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 |

