Coactive AI concept API
The concept API from Coactive AI — 5 operation(s) for concept.
The concept API from Coactive AI — 5 operation(s) for concept.
openapi: 3.1.0
info:
title: API Reference agentic-search > agenticSearch concept API
version: 1.0.0
servers:
- url: https://api.coactive.ai
description: Production
- url: https://app.coactive.ai
description: Production
tags:
- name: concept
paths:
/api/v1/concepts:
post:
operationId: create
summary: Create concept
description: Create a new concept
tags:
- concept
parameters:
- name: Authorization
in: header
description: Bearer authentication
required: true
schema:
type: string
responses:
'200':
description: The created concept
content:
application/json:
schema:
$ref: '#/components/schemas/Concept'
'400':
description: Invalid concept name
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Not found
content:
application/json:
schema:
description: Any type
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateConceptRequest'
get:
operationId: list
summary: List concepts
description: Get paginated concepts, optionally filtered by datasets
tags:
- concept
parameters:
- name: datasets
in: query
description: Datasets to use to filter concepts
required: false
schema:
type: array
items:
type: string
format: uuid4
- name: offset
in: query
description: Starting index to return
required: false
schema:
type: integer
default: 0
- name: limit
in: query
description: Max number of items to return
required: false
schema:
type: integer
default: 100
- name: Authorization
in: header
description: Bearer authentication
required: true
schema:
type: string
responses:
'200':
description: All concepts
content:
application/json:
schema:
$ref: '#/components/schemas/PagedConcepts'
'404':
description: Not found
content:
application/json:
schema:
description: Any type
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/concepts/{concept_id}:
delete:
operationId: delete
summary: Delete concept
description: Delete concept
tags:
- concept
parameters:
- name: concept_id
in: path
description: The unique identifier for the concept
required: true
schema:
type: string
format: uuid4
- name: Authorization
in: header
description: Bearer authentication
required: true
schema:
type: string
responses:
'200':
description: Successful Response
content:
application/json:
schema:
description: Any type
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
get:
operationId: get
summary: Get concept
description: Get concept
tags:
- concept
parameters:
- name: concept_id
in: path
description: The unique identifier for the concept
required: true
schema:
type: string
format: uuid4
- name: Authorization
in: header
description: Bearer authentication
required: true
schema:
type: string
responses:
'200':
description: Concept details
content:
application/json:
schema:
$ref: '#/components/schemas/Concept'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
patch:
operationId: update
summary: Update concept
description: Update concept
tags:
- concept
parameters:
- name: concept_id
in: path
description: The unique identifier for the concept
required: true
schema:
type: string
format: uuid4
- name: Authorization
in: header
description: Bearer authentication
required: true
schema:
type: string
responses:
'200':
description: Concept details
content:
application/json:
schema:
$ref: '#/components/schemas/Concept'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateConceptRequest'
/api/v1/concepts/{concept_id}/prediction_estimation:
get:
operationId: get-concept-prediction
summary: Get concept's prediction estimation
description: Get concept's prediction estimation
tags:
- concept
parameters:
- name: concept_id
in: path
description: The unique identifier for the concept
required: true
schema:
type: string
format: uuid4
- name: threshold
in: query
description: Threshold above which classification is positive
required: false
schema:
type: number
format: double
default: 0.5
- name: confidence_level
in: query
description: A higher value results in wider confidence intervals, with more confidence of correctness. A lower value results in narrower confidence intervals, with less confidence of correctness
required: false
schema:
type: number
format: double
default: 0.95
- name: estimation_fidelity
in: query
description: A higher value makes estimation slower, but more accurate. A lower value makes estimation faster, but less accurate
required: false
schema:
type: integer
default: 1000
- name: Authorization
in: header
description: Bearer authentication
required: true
schema:
type: string
responses:
'200':
description: Concept prediction estimation
content:
application/json:
schema:
$ref: '#/components/schemas/ConceptPredictionResponse'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/concepts/{concept_id}/candidates:
get:
operationId: get-label-candidates
summary: Get label candidates
description: Get images and keyframes to label in order to improve the concept
tags:
- concept
parameters:
- name: concept_id
in: path
description: The concept id to get candidates to label
required: true
schema:
type: string
format: uuid4
- name: limit
in: query
description: Max number of items to return
required: false
schema:
type: integer
default: 1
- name: Authorization
in: header
description: Bearer authentication
required: true
schema:
type: string
responses:
'200':
description: Candidates to label in order to improve the concept
content:
application/json:
schema:
$ref: '#/components/schemas/CandidatesToLabel'
'404':
description: Concept not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/concepts/{concept_id}/labels:
get:
operationId: get-labels
summary: Get labels
description: Get all labels for a concept
tags:
- concept
parameters:
- name: concept_id
in: path
description: The unique identifier for the concept
required: true
schema:
type: string
format: uuid4
- name: offset
in: query
description: Starting index to return
required: false
schema:
type: integer
default: 0
- name: limit
in: query
description: Max number of items to return
required: false
schema:
type: integer
default: 100
- name: labels_to_include
in: query
description: List of labels types to include, leave blank to return all
required: false
schema:
type: array
items:
$ref: '#/components/schemas/ConceptLabelEnum'
- name: Authorization
in: header
description: Bearer authentication
required: true
schema:
type: string
responses:
'200':
description: Paginated labels for the concept
content:
application/json:
schema:
$ref: '#/components/schemas/PagedConceptLabels'
'404':
description: Concept not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
patch:
operationId: update-labels
summary: Update labels
description: Update labels for a concept. Label requests containing coactive image ids or image paths already in use will overwrite existing labels. Label requests with an empty label value will delete an existing label for that image/keyframe identifier.
tags:
- concept
parameters:
- name: concept_id
in: path
description: The unique identifier for the concept
required: true
schema:
type: string
format: uuid4
- name: Authorization
in: header
description: Bearer authentication
required: true
schema:
type: string
responses:
'200':
description: The updated concept
content:
application/json:
schema:
$ref: '#/components/schemas/Concept'
'404':
description: Concept not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateConceptLabelsRequest'
components:
schemas:
PagedLinksResponse:
type: object
properties:
prev:
type:
- string
- 'null'
description: Link to previous page
next:
type:
- string
- 'null'
description: Link to next page
first:
type:
- string
- 'null'
description: Link to first page
last:
type:
- string
- 'null'
description: Link to last page
description: Metadata for retrieving paginated data
title: PagedLinksResponse
SortItem:
type: object
properties:
direction:
$ref: '#/components/schemas/SortDirection'
description: The sort order
field:
type: string
description: Which field to sort on
required:
- direction
- field
description: Metadata about the sort order of the response
title: SortItem
ValidationErrorLocItems:
oneOf:
- type: string
- type: integer
- type: string
- type: integer
title: ValidationErrorLocItems
UpdateConceptLabelsRequest:
type: object
properties:
labels:
type: array
items:
$ref: '#/components/schemas/ConceptLabelRequest'
description: Labels for the concept. A label with an empty label value will delete any existing labels associate with the provided image or keyframe
autosampledNumNegativeLabels:
type:
- integer
- 'null'
description: The number of negative labels to add
required:
- labels
description: An request to update labels for a concept
title: UpdateConceptLabelsRequest
CandidatesToLabel:
type: object
properties:
data:
type: array
items:
description: Any type
description: Images and video keyframes to label
required:
- data
description: 'A list of selected images or video keyframes to label to improve the accuracy of the
concept'
title: CandidatesToLabel
ConceptLabelRequest:
type: object
properties:
coactiveImageId:
type:
- string
- 'null'
format: uuid4
description: The id of image or video keyframe to label
imagePath:
type:
- string
- 'null'
description: The path of an image to label
label:
oneOf:
- $ref: '#/components/schemas/ConceptLabelEnum'
- type: 'null'
description: The label for the image or video keyframe. "negative" means the image or keyframe is not an example of the concept. "positive" means the image or keyframe is example of the concept. An empty value indicates the label should be removed if one exists.
description: An request to associate an image or video keyframe to a concept
title: ConceptLabelRequest
CreateConceptRequest:
type: object
properties:
name:
type: string
description: The name of the concept, which will become available as the column name in SQL
description:
type:
- string
- 'null'
description: A description for the concept
threshold:
type:
- number
- 'null'
format: double
default: 0.8
description: Threshold above which classification is positive
regularization:
type:
- number
- 'null'
format: double
default: 0.0625
description: How strongly the model adapts to the training labels. Regularization strength. Lower value means the model fits more heavily to the training data
datasetId:
type: string
format: uuid4
description: The id of the dataset
required:
- name
- datasetId
description: An object used to create a concept in Coactive's system
title: CreateConceptRequest
ConceptLabel:
type: object
properties:
createdUserId:
type: string
description: The user that created the resource
createdDt:
type: string
format: date-time
description: The created datetime of the resource
updatedUserId:
type: string
description: The user that last updated the resource
updatedDt:
type: string
format: date-time
description: The datetime the resource was last updated
labelId:
type: string
format: uuid4
description: The label id
label:
$ref: '#/components/schemas/ConceptLabelEnum'
description: The label for the image or video keyframe
image:
oneOf:
- $ref: '#/components/schemas/Image'
- type: 'null'
description: The labelled image (if the labelled image is not a video keyframe)
keyframe:
oneOf:
- $ref: '#/components/schemas/Keyframe'
- type: 'null'
description: The labelled video keyframe (if the labelled image is a video keyframe)
required:
- createdUserId
- createdDt
- updatedUserId
- updatedDt
- labelId
- label
description: An association of an image or video keyframe to a concept
title: ConceptLabel
PagedConceptLabels:
type: object
properties:
meta:
$ref: '#/components/schemas/PagedMetaResponse'
description: Metadata for the set of data returned
data:
type: array
items:
$ref: '#/components/schemas/ConceptLabel'
description: The paginated data
required:
- meta
- data
description: A paginated list of labels
title: PagedConceptLabels
HTTPValidationError:
type: object
properties:
detail:
type: array
items:
$ref: '#/components/schemas/ValidationError'
title: HTTPValidationError
Image:
type: object
properties:
createdUserId:
type: string
description: The user that created the resource
createdDt:
type: string
format: date-time
description: The created datetime of the resource
updatedUserId:
type: string
description: The user that last updated the resource
updatedDt:
type: string
format: date-time
description: The datetime the resource was last updated
coactiveImageId:
type: string
format: uuid4
description: The coactive image id
path:
type: string
description: The original path of the image
id:
type:
- string
- 'null'
description: The user provided image id
metadata:
oneOf:
- $ref: '#/components/schemas/ImageMetadata'
- type: 'null'
description: The user provided metadata for the image
required:
- createdUserId
- createdDt
- updatedUserId
- updatedDt
- coactiveImageId
description: An image asset response
title: Image
SortDirection:
type: string
enum:
- asc
- desc
description: "Possible sort orders\n\nasc: ascending\n desc: descending"
title: SortDirection
ErrorResponse:
type: object
properties:
detail:
type: string
description: Details about the encountered error
required:
- detail
description: Details about an error that occurred
title: ErrorResponse
ConceptLabelEnum:
type: string
enum:
- positive
- negative
description: Concept label values
title: ConceptLabelEnum
Video:
type: object
properties:
createdUserId:
type: string
description: The user that created the resource
createdDt:
type: string
format: date-time
description: The created datetime of the resource
updatedUserId:
type: string
description: The user that last updated the resource
updatedDt:
type: string
format: date-time
description: The datetime the resource was last updated
path:
type:
- string
- 'null'
description: The original path of the video
coactiveVideoId:
type: string
format: uuid4
description: The coactive video id
metadata:
oneOf:
- $ref: '#/components/schemas/VideoMetadata'
- type: 'null'
description: The user provided metadata for the video
required:
- createdUserId
- createdDt
- updatedUserId
- updatedDt
- coactiveVideoId
description: A video asset response
title: Video
UpdateConceptRequest:
type: object
properties:
name:
type:
- string
- 'null'
description: A replacement name for the concept
description:
type:
- string
- 'null'
description: A replacement description for the concept
threshold:
type:
- number
- 'null'
format: double
description: A replacement decision threshold for the concept
regularization:
type:
- number
- 'null'
format: double
description: How strongly the model adapts to the training labels. Regularization strength. Lower value means the model fits more heavily to the training data
description: Base model for all schema
title: UpdateConceptRequest
VideoMetadata:
type: object
properties:
data:
type: object
additionalProperties:
description: Any type
description: Metadata associated with a video shot.
title: VideoMetadata
PagedConcepts:
type: object
properties:
meta:
$ref: '#/components/schemas/PagedMetaResponse'
description: Metadata for the set of data returned
data:
type: array
items:
$ref: '#/components/schemas/Concept'
description: The paginated concepts
required:
- meta
- data
description: A response containing paged data
title: PagedConcepts
PagedMetaResponse:
type: object
properties:
page:
$ref: '#/components/schemas/PagedPageDetailsResponse'
description: Details about the total set of data
links:
$ref: '#/components/schemas/PagedLinksResponse'
description: Helpful links to other pages in the pagination
sort:
type: array
items:
$ref: '#/components/schemas/SortItem'
description: Ordered list of fields to sort on, order of list determines priority
required:
- page
- links
- sort
description: Metadata about the paginated response
title: PagedMetaResponse
Keyframe:
type: object
properties:
coactiveImageId:
type: string
format: uuid4
description: The coactive image id
video:
$ref: '#/components/schemas/Video'
description: The video the keyframe belongs to
shot:
$ref: '#/components/schemas/app__shared__v1__schema__Shot'
description: The video shot metadata
audioSegment:
oneOf:
- $ref: '#/components/schemas/app__shared__v1__schema__AudioSegment'
- type: 'null'
description: Audio segment associated with the keyframe (if the asset_type is 'keyframe')
timestamp:
type:
- integer
- 'null'
description: The timestamp of the keyframe in the video in milliseconds
required:
- coactiveImageId
- video
- shot
description: A keyframe asset response
title: Keyframe
ImageMetadata:
type: object
properties: {}
description: The user provided metadata for the image
title: ImageMetadata
ConceptPredictionResponse:
type: object
properties:
probabilityRanges:
type: array
items:
type: array
items:
type: number
format: double
description: Each tuple represents the bounds of a bin we estimated number of assets for
estimates:
type: array
items:
type: integer
description: Number of assets belonging to each probability range
confidenceIntervals:
type:
- array
- 'null'
items:
type: array
items:
type: integer
description: Lower/upper bounds representing respective ranges that the actual number of assets is in
required:
- probabilityRanges
- estimates
description: Base model for all schema
title: ConceptPredictionResponse
ValidationError:
type: object
properties:
loc:
type: array
items:
$ref: '#/components/schemas/ValidationErrorLocItems'
msg:
type: string
type:
type: string
required:
- loc
- msg
- type
title: ValidationError
Concept:
type: object
properties:
createdUserId:
type: string
description: The user that created the resource
createdDt:
type: string
format: date-time
description: The created datetime of the resource
updatedUserId:
type: string
description: The user that last updated the resource
updatedDt:
type: string
format: date-time
description: The datetime the resource was last updated
name:
type: string
description: The name of the concept
description:
type:
- string
- 'null'
description: A description for the concept
threshold:
type:
- number
- 'null'
format: double
default: 0.8
description: Threshold above which classification is positive
regularization:
type:
- number
- 'null'
format: double
default: 0.0625
description: How strongly the model adapts to the training labels. Regularization strength. Lower value means the model fits more heavily to the training data
conceptId:
type: string
format: uuid4
description: The unique identifier for the concept
datasetId:
type: string
format: uuid4
description: The unique identifier for the dataset
required:
- createdUserId
- createdDt
- updatedUserId
- updatedDt
- name
- conceptId
- datasetId
description: Data about a concept that can be used to query a dataset
title: Concept
app__shared__v1__schema__Shot:
type: object
properties:
shotId:
type: string
format: uuid4
description: The unique shot id
startTimeMs:
type: integer
description: The start time in milliseconds from the beginning of the video
endTimeMs:
type: integer
description: The end time in milliseconds from the beginning of the video
required:
- shotId
- startTimeMs
- endTimeMs
description: Metadata about a video shot
title: app__shared__v1__schema__Shot
app__shared__v1__schema__AudioSegment:
type: object
properties:
startTimeMs:
type: integer
description: The start time in milliseconds of the beginning of the audio clip
endTimeMs:
type: integer
description: The end time in milliseconds of the end of the audio clip
speechToTextTranscription:
type: string
description: The text transcription of the audio clip
required:
- startTimeMs
- endTimeMs
- speechToTextTranscription
description: Metadata about a video audio segment
title: app__shared__v1__schema__AudioSegment
PagedPageDetailsResponse:
type: object
properties:
currentPage:
type: integer
description: Current page number
lastPage:
type:
- integer
- 'null'
description: Max page number based on limit and total number of items
limit:
type: integer
description: Number of items to return
offset:
type: integer
description: Starting index to return
total:
type:
- integer
- 'null'
description: Total number of items
required:
- currentPage
- limit
- offset
description: Pagination metadata
title: PagedPageDetailsResponse
securitySchemes:
HTTPBearer:
type: http
scheme: bearer