Every API here is available over the APIs.io API and to AI agents over MCP.
openapi: 3.2.0
info:
title: Pipeliner Cloud Media API
version: '100'
servers:
- url: https://us-east.api.pipelinersales.com/api/v100/rest/spaces/{space_id}
- url: https://eu-central.api.pipelinersales.com/api/v100/rest/spaces/{space_id}
- url: https://ca-central.api.pipelinersales.com/api/v100/rest/spaces/{space_id}
- url: https://ap-southeast.api.pipelinersales.com/api/v100/rest/spaces/{space_id}
tags:
- name: Media
paths:
/entities/Medias/{id}:
get:
description: Returns Media with given id
operationId: Medias.get
summary: Medias.get
tags:
- Media
parameters:
- name: id
in: path
description: ID of Media to retrieve
required: true
schema:
type: string
format: uuid
responses:
'200':
description: Media data
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
example: true
description: True when response succeeded, false on error.
data:
$ref: '#/components/schemas/Media'
'404':
description: Sent when invalid ID is given
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'500':
description: unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
delete:
description: Removes Media with given id
operationId: Medias.delete
summary: Medias.delete
tags:
- Media
parameters:
- name: id
in: path
description: ID of Media to delete
required: true
schema:
type: string
format: uuid
- name: validation-level
in: query
description: 'Specify validation level of Media on delete. Use them as bit mask: 0 - validate each field on entity,
2 - validate only changed fields, 4 - validate only system fields, 8 - allows to override readonly fields,
16 - allows to set entity on deleted relationship.'
schema:
type: integer
format: int32
responses:
'200':
description: Removal confirmation
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
example: true
description: True when response succeeded, false on error.
data:
description: id of deleted Media
type: string
format: uuid
'404':
description: Sent when invalid ID is given
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'500':
description: unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
patch:
description: Modifies Media or Medias with given id(s)
parameters:
- name: id
in: path
description: ID of Media to update
required: true
schema:
type: string
format: uuid
- name: validation-level
in: query
description: 'Specify validation level of Media on update. Use them as bit mask: 0 - validate each field on entity,
2 - validate only changed fields, 4 - validate only system fields, 8 - allows to override readonly fields,
16 - allows to set entity on deleted relationship.'
schema:
type: integer
format: int32
operationId: Medias.update
summary: Medias.update
tags:
- Media
requestBody:
description: id(s) of modified item(s) and fields to modify
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/updateMediaInput'
responses:
'200':
description: Modification confirmation. Returns resulting Media
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
example: true
description: True when response succeeded, false on error.
data:
$ref: '#/components/schemas/Media'
'404':
description: Sent when invalid ID is given
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'500':
description: unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/entities/Medias:
get:
description: Returns all defined Medias
operationId: Medias.list
summary: Medias.list
tags:
- Media
parameters:
- name: include-deleted
in: query
description: if enabled, deleted Medias are returned as well
required: false
schema:
type: boolean
- name: first
in: query
description: 'Number of entities to return from beginning of the result set. Max: 100. Default: 30'
required: false
schema:
type: integer
format: int32
- name: last
in: query
description: Return only the "last" number of entities from result set. When used with first parameter, then it returns last M records from the first N records.
required: false
schema:
type: integer
format: int32
- name: before
in: query
description: Cursor until which to take entities to result set.
required: false
schema:
type: string
- name: after
in: query
description: Cursor after which to start taking entities to result set.
required: false
schema:
type: string
- name: expand
in: query
description: Expand related entity. Use api_names of relation fields. You can use multiple values separated via ',' colon. If not used, URI link will be returned instead. You can use dots '.' to expand nested entities as well.
required: false
example: expand=owner,sales_unit,account_relations.account
schema:
type: string
- name: order-by
in: query
description: Order by values. Use api_name of field to sort by ascending. Prefix api_name with '-' to descending sort. You can use multiple values separated via ',' colon.
example: order-by=created,-modified
required: false
schema:
type: string
- name: filter
in: query
description: Use name of field in braces to filter by this field. To advanced filter, use with combination with filter-op parameter.
example: filter[name]=Example
required: false
schema:
type: object
style: deepObject
allowReserved: true
- name: filter-op
in: query
description: 'Filter operator. Specify a way how to filter fields. Supported operators: [eq, ieq, not-eq, not-ieq, contains, starts, ends, icontains, istarts, iends, null, not-null, empty, not-empty, gt, gte, lt, lte, between].'
example: filter-op[name]=eq
required: false
schema:
type: object
style: deepObject
allowReserved: true
- name: load-only
in: query
description: Loads only fields defined within this parameter. You can use multiple values separated via ',' colon. If not used, then all fields are returned. You can use dots '.' to specify load only fields in nested as well.
required: false
example: load-only=id,name,owner.id
schema:
type: string
responses:
'200':
description: list of Medias
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
example: true
description: True when response succeeded, false on error.
data:
type: array
items:
$ref: '#/components/schemas/Media'
page_info:
type: object
properties:
start_cursor:
type: string
example: WyIwMSIsICJiMmYwODI0Ni1iYWE5LTQyY2QtYmM3Yi04YmM4MjY3M2E2NTgiXQ==
description: Start cursor of result set.
end_cursor:
type: string
example: WyIwNSIsICJmMjZhZjZiMC00ZWE4LTQ3MDgtODU2NC0wN2JmYzI4ZGQ5ZTgiXQ==
description: End cursor of result set.
has_previous_page:
type: boolean
example: true
description: If result set has previous page (if yes, use start_cursor value in before parameter to load it).
has_next_page:
type: boolean
example: true
description: If result set has next page (if yes, use end_cursor value in after parameter to load it).
description: Page info result set. Please note it is returned only when legacy limit & offset parameters are not used.
'500':
description: unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
post:
description: Creates new Media
operationId: Medias.create
summary: Medias.create
tags:
- Media
parameters:
- name: validation-level
in: query
description: 'Specify validation level of Media on create. Use them as bit mask: 0 - validate each field on entity,
2 - validate only changed fields, 4 - validate only system fields, 8 - allows to override readonly fields,
16 - allows to set entity on deleted relationship.'
schema:
type: integer
format: int32
requestBody:
description: data of new Media
required: true
content:
application / json:
schema:
$ref: '#/components/schemas/createMediaInput'
responses:
'201':
description: Creation confirmation. Returns created Media
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
example: true
description: True when response succeeded, false on error.
data:
$ref: '#/components/schemas/Media'
'500':
description: unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/entities/Medias/batch-delete:
post:
description: Removes Medias with given list of ids
operationId: Medias.batch_delete
summary: Medias.batch_delete
tags:
- Media
parameters:
- name: validation-level
in: query
description: 'Specify validation level of Medias on delete. Use them as bit mask: 0 - validate each field on entity,
2 - validate only changed fields, 4 - validate only system fields, 8 - allows to override readonly fields,
16 - allows to set entity on deleted relationship.'
schema:
type: integer
format: int32
- name: rollback-method
in: query
description: Specify rollback method for Medias. 0 - rollback all, 1 - rollback only failed records.
schema:
type: integer
format: int32
requestBody:
description: List of ids to delete.
required: true
content:
application / json:
schema:
type: array
items:
type: string
description: An id of entity Media to delete.
format: uuid
responses:
'200':
description: Batch removal confirmation
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
example: true
description: True when response succeeded, false on error.
data:
type: array
items:
oneOf:
- type: string
description: An id of deleted Media.
format: uuid
- $ref: '#/components/schemas/Error'
'500':
description: unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/entities/Medias/batch-modify:
post:
description: Create or update an batch of Medias
operationId: Medias.batch_create_or_update
summary: Medias.batch_create_or_update
tags:
- Media
parameters:
- name: validation-level
in: query
description: 'Specify validation level of Medias on change. Use them as bit mask: 0 - validate each field on entity,
2 - validate only changed fields, 4 - validate only system fields, 8 - allows to override readonly fields,
16 - allows to set entity on deleted relationship.'
schema:
type: integer
format: int32
- name: rollback-method
in: query
description: Specify rollback method for Medias. 0 - rollback all, 1 - rollback only failed records.
schema:
type: integer
format: int32
requestBody:
description: data of new Media
required: true
content:
application / json:
schema:
type: array
items:
$ref: '#/components/schemas/batchMediaInput'
responses:
'200':
description: Creation confirmation. Returns a list of created / updated Medias
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
example: true
description: True when response succeeded, false on error.
data:
type: array
items:
oneOf:
- type: string
description: And ID of created / updated entity.
format: uuid
- $ref: '#/components/schemas/Error'
'500':
description: unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/entities/Medias/batch-restore:
post:
description: Restores Medias with given list of ids
operationId: Medias.batch_restore
summary: Medias.batch_restore
tags:
- Media
parameters:
- name: validation-level
in: query
description: 'Specify validation level of Medias on restore. Use them as bit mask: 0 - validate each field on entity,
2 - validate only changed fields, 4 - validate only system fields, 8 - allows to override readonly fields,
16 - allows to set entity on deleted relationship.'
schema:
type: integer
format: int32
- name: rollback-method
in: query
description: Specify rollback method for Medias. 0 - rollback all, 1 - rollback only failed records.
schema:
type: integer
format: int32
requestBody:
description: List of ids to restore.
required: true
content:
application / json:
schema:
type: array
items:
type: string
description: An id of entity Media to restore.
format: uuid
responses:
'200':
description: Batch restoration confirmation
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
example: true
description: True when response succeeded, false on error.
data:
type: array
items:
oneOf:
- type: string
description: An id of restored Media.
format: uuid
- $ref: '#/components/schemas/Error'
'500':
description: unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
components:
schemas:
updateMediaInput:
properties:
activity_id:
type: string
format: uuid
example: 01234567-abcd-dcba-ffff-000000000000
description: Id of the linked appointment or task, or empty when not linked to an activity.
call_id:
type: string
format: uuid
example: 01234567-abcd-dcba-ffff-000000000000
description: Id of the linked call, or empty when not linked.
data:
type: object
description: Provider-specific metadata about the media (e.g. transcription identifiers, recording parameters), as a JSON object.
description:
type: string
example: string
description: Free-text description of the media.
error_code:
type: integer
format: int32
example: 1
description: Error code reported by the calling/recording provider when processing failed; empty on success.
status:
type: integer
description: 'Field whose values are strictly defined with an enumeration of values.
Integer enum value: 1 - NoRecording, 2 - Uploading, 3 - Uploaded, 4 - Transcoding, 5 - TranscriptionInProgress, 6 - TranscriptionCompleted'
example: 1
enum:
- 1
- 2
- 3
- 4
- 5
- 6
type:
type: integer
description: 'Field whose values are strictly defined with an enumeration of values.
Integer enum value: 1 - Audio, 2 - Video, 3 - Transcription'
example: 1
enum:
- 1
- 2
- 3
revision:
type: integer
format: int32
example: 1
description: Revision when entity was lastly changed.
createMediaInput:
properties:
modified:
type: string
format: date-time
example: '2019-01-01T00:00:00'
description: Last modification time.
readOnly: true
created:
type: string
format: date-time
example: '2019-01-01T00:00:00'
description: Creation time.
readOnly: true
activity_id:
type: string
format: uuid
example: 01234567-abcd-dcba-ffff-000000000000
description: Id of the linked appointment or task, or empty when not linked to an activity.
call_id:
type: string
format: uuid
example: 01234567-abcd-dcba-ffff-000000000000
description: Id of the linked call, or empty when not linked.
data:
type: object
description: Provider-specific metadata about the media (e.g. transcription identifiers, recording parameters), as a JSON object.
description:
type: string
example: string
description: Free-text description of the media.
error_code:
type: integer
format: int32
example: 1
description: Error code reported by the calling/recording provider when processing failed; empty on success.
status:
type: integer
description: 'Field whose values are strictly defined with an enumeration of values.
Integer enum value: 1 - NoRecording, 2 - Uploading, 3 - Uploaded, 4 - Transcoding, 5 - TranscriptionInProgress, 6 - TranscriptionCompleted'
example: 1
enum:
- 1
- 2
- 3
- 4
- 5
- 6
type:
type: integer
description: 'Field whose values are strictly defined with an enumeration of values.
Integer enum value: 1 - Audio, 2 - Video, 3 - Transcription'
example: 1
enum:
- 1
- 2
- 3
revision:
type: integer
format: int32
example: 1
description: Revision when entity was lastly changed.
Media:
properties:
is_delete_protected:
type: boolean
example: false
description: Tells if the entity instance is protected against delete (Entities that need to be present in the system at any time). Delete action still may fail if entity is deletable, due some other additional validations.
readOnly: true
id:
type: string
format: uuid
example: 01234567-abcd-dcba-ffff-000000000000
description: Unique identifier of entity.
readOnly: true
is_deleted:
type: boolean
example: false
description: Specifies if the entity is considered deleted.
readOnly: true
modified:
type: string
format: date-time
example: '2019-01-01T00:00:00'
description: Last modification time.
readOnly: true
created:
type: string
format: date-time
example: '2019-01-01T00:00:00'
description: Creation time.
readOnly: true
appointment:
type: string
format: uri
description: 'Appointment this media is attached to. Set when activity_id resolves to an Appointment.
Relation to Appointment. By default it is returned as URI to related resource. Using parameter ''expand'', it will return full entity. See: ''Appointment'' object for properties.'
task:
type: string
format: uri
description: 'Task this media is attached to. Set when activity_id resolves to a Task.
Relation to Task. By default it is returned as URI to related resource. Using parameter ''expand'', it will return full entity. See: ''Task'' object for properties.'
call:
type: string
format: uri
description: 'Call this media belongs to (e.g. a recording or transcription).
Relation to Call. By default it is returned as URI to related resource. Using parameter ''expand'', it will return full entity. See: ''Call'' object for properties.'
activity_id:
type: string
format: uuid
example: 01234567-abcd-dcba-ffff-000000000000
description: Id of the linked appointment or task, or empty when not linked to an activity.
call_id:
type: string
format: uuid
example: 01234567-abcd-dcba-ffff-000000000000
description: Id of the linked call, or empty when not linked.
data:
type: object
description: Provider-specific metadata about the media (e.g. transcription identifiers, recording parameters), as a JSON object.
description:
type: string
example: string
description: Free-text description of the media.
error_code:
type: integer
format: int32
example: 1
description: Error code reported by the calling/recording provider when processing failed; empty on success.
status:
type: integer
description: 'Field whose values are strictly defined with an enumeration of values.
Integer enum value: 1 - NoRecording, 2 - Uploading, 3 - Uploaded, 4 - Transcoding, 5 - TranscriptionInProgress, 6 - TranscriptionCompleted'
example: 1
enum:
- 1
- 2
- 3
- 4
- 5
- 6
type:
type: integer
description: 'Field whose values are strictly defined with an enumeration of values.
Integer enum value: 1 - Audio, 2 - Video, 3 - Transcription'
example: 1
enum:
- 1
- 2
- 3
revision:
type: integer
format: int32
example: 1
description: Revision when entity was lastly changed.
audio_id:
type: string
format: uuid
example: 01234567-abcd-dcba-ffff-000000000000
description: Id of the cloud object holding the audio recording, when available.
transcription_file_id:
type: string
format: uuid
example: 01234567-abcd-dcba-ffff-000000000000
description: Id of the cloud object holding the transcription payload, when available.
transcription_id:
type: string
example: string
description: External transcription identifier from the calling provider.
transcription_language:
type: string
example: string
description: Language requested for the transcription as a BCP-47 locale tag (e.g. "en-US", "de-DE"). Set when the transcription was requested.
transcription_summary:
type: string
example: string
description: AI-generated summary of the transcription content.
get_transcription_viewer_token:
type: string
example: string
description: Short-lived token for opening the transcription in the calling provider's viewer. Empty when no transcription is available.
required:
- is_delete_protected
- id
- transcription_id
- transcription_language
- transcription_summary
- get_transcription_viewer_token
batchMediaInput:
properties:
activity_id:
type: string
format: uuid
example: 01234567-abcd-dcba-ffff-000000000000
description: Id of the linked appointment or task, or empty when not linked to an activity.
call_id:
type: string
format: uuid
example: 01234567-abcd-dcba-ffff-000000000000
description: Id of the linked call, or empty when not linked.
data:
type: object
description: Provider-specific metadata about the media (e.g. transcription identifiers, recording parameters), as a JSON object.
description:
type: string
example: string
description: Free-text description of the media.
error_code:
type: integer
format: int32
example: 1
description: Error code reported by the calling/recording provider when processing failed; empty on success.
status:
type: integer
description: 'Field whose values are strictly defined with an enumeration of values.
Integer enum value: 1 - NoRecording, 2 - Uploading, 3 - Uploaded, 4 - Transcoding, 5 - TranscriptionInProgress, 6 - TranscriptionCompleted'
example: 1
enum:
- 1
- 2
- 3
- 4
- 5
- 6
type:
type: integer
description: 'Field whose values are strictly defined with an enumeration of values.
Integer enum value: 1 - Audio, 2 - Video, 3 - Transcription'
example: 1
enum:
- 1
- 2
- 3
revision:
type: integer
format: int32
example: 1
description: Revision when entity was lastly changed.
id:
description: ID of object to update.
type: string
format: uuid
Error:
properties:
http_status:
description: HTTP status code
type: integer
example: 400
code:
description: Internal API error code
type: integer
example: 117
name:
description: Name of the API error
type: string
example: ERROR_PARAMETER_INVALID
message:
description: Description of the API error
type: string
success:
description: Always false on error.
type: boolean
example: false
required:
- success
- http_status