Narrative Sports Recaps API
The Recaps API from Narrative Sports — 3 operation(s) for recaps.
The Recaps API from Narrative Sports — 3 operation(s) for recaps.
openapi: 3.1.0
info:
title: Narrative Sports Health Recaps API
version: 1.0.0
servers:
- url: https://api.narrative-sports.com
tags:
- name: Recaps
paths:
/v1/recaps:
post:
tags:
- Recaps
summary: Create Recap
security:
- HTTPBearer: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreatePublicRecapRequest'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/CreatePublicRecapResponse'
description: Success
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
description: Validation Error
get:
tags:
- Recaps
summary: List Recaps
security:
- HTTPBearer: []
parameters:
- name: limit
in: query
required: false
schema:
anyOf:
- type: integer
maximum: 100
minimum: 1
- type: 'null'
title: Limit
- name: cursor
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: Cursor
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ListPublicRecapsResponse'
description: Success
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
description: Validation Error
/v1/recaps/batch:
get:
tags:
- Recaps
summary: Batch Recaps
security:
- HTTPBearer: []
parameters:
- name: limit
in: query
required: false
schema:
type: integer
maximum: 100
minimum: 1
default: 50
title: Limit
- name: cursor
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: Cursor
- name: created_after
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: Created After
- name: created_before
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: Created Before
- name: status
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: Status
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/BatchPublicRecapsResponse'
description: Success
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
description: Validation Error
/v1/recaps/{recap_id}:
get:
tags:
- Recaps
summary: Get Recap
security:
- HTTPBearer: []
parameters:
- name: recap_id
in: path
required: true
schema:
type: integer
title: Recap Id
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PublicRecapResponse'
description: Success
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
description: Validation Error
delete:
tags:
- Recaps
summary: Delete Recap
security:
- HTTPBearer: []
parameters:
- name: recap_id
in: path
required: true
schema:
type: integer
title: Recap Id
responses:
'204':
description: No Content
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
description: Validation Error
components:
schemas:
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
CreatePublicRecapRequest:
properties:
name:
anyOf:
- type: string
- type: 'null'
title: Name
project_id:
type: integer
title: Project Id
target_duration_seconds:
type: integer
maximum: 3600
minimum: 0
title: Target Duration Seconds
exclude_event_types:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Exclude Event Types
selected_edit_ids:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Selected Edit Ids
recap_mode:
type: string
title: Recap Mode
default: custom
fight_ceremony_config:
anyOf:
- items:
$ref: '#/components/schemas/FightCeremonyConfig'
type: array
- type: 'null'
title: Fight Ceremony Config
render_video:
type: string
enum:
- ffmpeg
- none
title: Render Video
default: ffmpeg
sport:
anyOf:
- type: string
- type: 'null'
title: Sport
recap_options:
anyOf:
- $ref: '#/components/schemas/RecapOptions'
- type: 'null'
type: object
required:
- project_id
- target_duration_seconds
title: CreatePublicRecapRequest
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
type: object
required:
- loc
- msg
- type
title: ValidationError
ListPublicRecapsResponse:
properties:
recaps:
items:
$ref: '#/components/schemas/PublicRecapResponse'
type: array
title: Recaps
total:
type: integer
title: Total
next_cursor:
anyOf:
- type: string
- type: 'null'
title: Next Cursor
type: object
required:
- recaps
- total
title: ListPublicRecapsResponse
CreatePublicRecapResponse:
properties:
id:
type: integer
title: Id
status:
type: string
title: Status
default: queued
task_id:
anyOf:
- type: string
- type: 'null'
title: Task Id
type: object
required:
- id
title: CreatePublicRecapResponse
FightCeremonyConfig:
properties:
fight_number:
type: integer
title: Fight Number
include_walkon:
type: boolean
title: Include Walkon
default: false
include_decision:
type: boolean
title: Include Decision
default: false
type: object
required:
- fight_number
title: FightCeremonyConfig
BatchPublicRecapsResponse:
properties:
recaps:
items:
$ref: '#/components/schemas/PublicRecapResponse'
type: array
title: Recaps
next_cursor:
anyOf:
- type: string
- type: 'null'
title: Next Cursor
type: object
required:
- recaps
title: BatchPublicRecapsResponse
RecapOptions:
properties:
start_style:
anyOf:
- type: string
enum:
- none
- short_walkout
- full_walkout
- type: 'null'
title: Start Style
ending_style:
anyOf:
- type: string
enum:
- auto
- decision_or_ending
- type: 'null'
title: Ending Style
pacing:
anyOf:
- type: string
enum:
- tight_action
- balanced
- action_sprint
- type: 'null'
title: Pacing
editorial_prompt:
anyOf:
- type: string
maxLength: 2000
- type: 'null'
title: Editorial Prompt
duration_mode:
anyOf:
- type: string
enum:
- exact
- range
- uncapped
- type: 'null'
title: Duration Mode
target_duration_min_seconds:
anyOf:
- type: integer
maximum: 3600
minimum: 60
- type: 'null'
title: Target Duration Min Seconds
target_duration_max_seconds:
anyOf:
- type: integer
maximum: 3600
minimum: 60
- type: 'null'
title: Target Duration Max Seconds
type: object
title: RecapOptions
PublicRecapResponse:
properties:
id:
type: integer
title: Id
name:
anyOf:
- type: string
- type: 'null'
title: Name
editor_project_id:
anyOf:
- type: string
- type: 'null'
title: Editor Project Id
status:
type: string
title: Status
project_id:
type: integer
title: Project Id
target_duration_seconds:
anyOf:
- type: integer
- type: 'null'
title: Target Duration Seconds
render_video:
anyOf:
- type: string
- type: 'null'
title: Render Video
exclude_event_types:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Exclude Event Types
video_url:
anyOf:
- type: string
- type: 'null'
title: Video Url
otio_timeline:
anyOf:
- additionalProperties: true
type: object
- type: 'null'
title: Otio Timeline
duration:
anyOf:
- type: number
- type: 'null'
title: Duration
num_clips:
anyOf:
- type: integer
- type: 'null'
title: Num Clips
selected_edit_ids:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Selected Edit Ids
render_job_id:
anyOf:
- type: string
- type: 'null'
title: Render Job Id
thumbnail_url:
anyOf:
- type: string
- type: 'null'
title: Thumbnail Url
failure_reason:
anyOf:
- type: string
- type: 'null'
title: Failure Reason
task_id:
anyOf:
- type: string
- type: 'null'
title: Task Id
created_at:
anyOf:
- type: string
- type: 'null'
title: Created At
type: object
required:
- id
- status
- project_id
title: PublicRecapResponse
securitySchemes:
HTTPBearer:
type: http
scheme: bearer