openapi: 3.0.3 info: title: 'YourStoryz API Documentation' description: 'This documentation aims to provide all the information you need to work with our API.' version: 1.0.0 servers: - url: 'https://dashboard.yourstoryz.com' tags: - name: Users description: '' - name: Companies description: 'APIs for managing companies' - name: Departments description: 'APIs for managing departments' - name: Stories description: 'APIs for managing stories' - name: 'Published Videos' description: 'APIs for managing published videos' - name: Endpoints description: '' components: securitySchemes: default: type: http scheme: bearer description: 'You can retrieve your token by visiting your dashboard and clicking Generate API token.' security: - default: [] paths: '/api/v1/users/{user_id}/published-videos': get: summary: 'Get published videos' operationId: getPublishedVideos description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: array items: type: object properties: id: type: integer example: 1830 orientation: type: string example: null nullable: true video_url: type: string example: 'https://yourstoryz.s3.eu-west-2.amazonaws.com/7uUHlRqbNfbvD8whagB4CdN9XAn5X3HFMBNaq1G2l45j8pmWz6wqD5cgCub9fgn4kPfRAUxBoDQKqPRIMwaH6wE45Ro47jPbdZm1' thumbnail_url: type: string example: null nullable: true contents: type: array example: [] created_at: type: string example: '2025-10-13T09:42:40.000000Z' example: - id: 1830 orientation: null video_url: 'https://yourstoryz.s3.eu-west-2.amazonaws.com/7uUHlRqbNfbvD8whagB4CdN9XAn5X3HFMBNaq1G2l45j8pmWz6wqD5cgCub9fgn4kPfRAUxBoDQKqPRIMwaH6wE45Ro47jPbdZm1' thumbnail_url: null contents: [] created_at: '2025-10-13T09:42:40.000000Z' - id: 1831 orientation: null video_url: 'https://yourstoryz.s3.eu-west-2.amazonaws.com/iRNHGpMBvkPJpdkUd2RxPzuDggV2hsMGxksTO8ew3tXi6tkStCRU6Sq55JGU14FGbrM3pas9dkPQBeLnvisfiQlYGYhFN5XHPWZi' thumbnail_url: null contents: [] created_at: '2025-10-13T09:42:40.000000Z' tags: - Users security: [] parameters: - in: path name: user_id description: 'The ID of the user.' example: 507 required: true schema: type: integer '/api/v1/users/{user_id}/stories': get: summary: 'Get stories' operationId: getStories description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: array items: type: object properties: id: type: integer example: 1438 title: type: string example: 'Ab perspiciatis iure cum aut non.' description: type: string example: null nullable: true video: type: string example: null nullable: true media: type: array example: [] author: type: string example: null nullable: true created_at: type: string example: '2025-10-13T11:00:07.000000Z' updated_at: type: string example: '2025-10-13T11:00:07.000000Z' example: - id: 1438 title: 'Ab perspiciatis iure cum aut non.' description: null video: null media: [] author: null created_at: '2025-10-13T11:00:07.000000Z' updated_at: '2025-10-13T11:00:07.000000Z' - id: 1439 title: 'Nostrum quia fuga veritatis voluptatum.' description: null video: null media: [] author: null created_at: '2025-10-13T11:00:07.000000Z' updated_at: '2025-10-13T11:00:07.000000Z' tags: - Users security: [] parameters: - in: path name: user_id description: 'The ID of the user.' example: 507 required: true schema: type: integer '/api/v1/companies/{company_id}/settings': get: summary: 'Get settings' operationId: getSettings description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: caption_background: '#F7F9FC' caption_background_opacity: 100 caption_title_color: '#38416F' caption_title_color_opacity: 100 caption_sub_title_color: '#4F5B9C' caption_sub_title_color_opacity: 100 video_pre_post_loader_removable: false properties: caption_background: type: string example: '#F7F9FC' caption_background_opacity: type: integer example: 100 caption_title_color: type: string example: '#38416F' caption_title_color_opacity: type: integer example: 100 caption_sub_title_color: type: string example: '#4F5B9C' caption_sub_title_color_opacity: type: integer example: 100 video_pre_post_loader_removable: type: boolean example: false tags: - Companies parameters: - in: path name: company_id description: 'The ID of the company.' example: 116 required: true schema: type: integer /api/v1/companies: get: summary: 'Get companies' operationId: getCompanies description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: array items: type: object properties: id: type: integer example: 400 name: type: string example: 'Price Ltd' logo: type: string example: c400-(02-04-2026_14-55-37). logo_url: type: string example: 'https://dashboard.yourstoryz.com/storage/logos/c400-(02-04-2026_14-55-37).' phone: type: string example: null nullable: true website: type: string example: 'https://leuschke.com/et-et-modi-ipsum-nostrum.html' country: type: string example: null nullable: true address: type: string example: null nullable: true postcode: type: string example: null nullable: true place: type: string example: null nullable: true vat_id: type: string example: null nullable: true coc_number: type: string example: null nullable: true bank_ascription: type: string example: null nullable: true bank_account_number: type: string example: null nullable: true owner_id: type: integer example: 5567 created_at: type: string example: '2026-04-02T14:55:37.000000Z' updated_at: type: string example: '2026-04-02T14:55:37.000000Z' example: - id: 400 name: 'Price Ltd' logo: c400-(02-04-2026_14-55-37). logo_url: 'https://dashboard.yourstoryz.com/storage/logos/c400-(02-04-2026_14-55-37).' phone: null website: 'https://leuschke.com/et-et-modi-ipsum-nostrum.html' country: null address: null postcode: null place: null vat_id: null coc_number: null bank_ascription: null bank_account_number: null owner_id: 5567 created_at: '2026-04-02T14:55:37.000000Z' updated_at: '2026-04-02T14:55:37.000000Z' - id: 401 name: 'Feeney, Leffler and Glover' logo: c401-(02-04-2026_14-55-37). logo_url: 'https://dashboard.yourstoryz.com/storage/logos/c401-(02-04-2026_14-55-37).' phone: null website: 'http://www.haag.org/distinctio-eum-doloremque-id-aut-libero-aliquam-veniam-corporis' country: null address: null postcode: null place: null vat_id: null coc_number: null bank_ascription: null bank_account_number: null owner_id: 5568 created_at: '2026-04-02T14:55:37.000000Z' updated_at: '2026-04-02T14:55:37.000000Z' tags: - Companies '/api/v1/companies/{id}': get: summary: 'Get company' operationId: getCompany description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 402 name: 'Price Ltd' logo: c402-(02-04-2026_14-55-37). logo_url: 'https://dashboard.yourstoryz.com/storage/logos/c402-(02-04-2026_14-55-37).' phone: null website: 'https://leuschke.com/et-et-modi-ipsum-nostrum.html' country: null address: null postcode: null place: null vat_id: null coc_number: null bank_ascription: null bank_account_number: null owner_id: 5569 created_at: '2026-04-02T14:55:37.000000Z' updated_at: '2026-04-02T14:55:37.000000Z' properties: id: type: integer example: 402 name: type: string example: 'Price Ltd' logo: type: string example: c402-(02-04-2026_14-55-37). logo_url: type: string example: 'https://dashboard.yourstoryz.com/storage/logos/c402-(02-04-2026_14-55-37).' phone: type: string example: null nullable: true website: type: string example: 'https://leuschke.com/et-et-modi-ipsum-nostrum.html' country: type: string example: null nullable: true address: type: string example: null nullable: true postcode: type: string example: null nullable: true place: type: string example: null nullable: true vat_id: type: string example: null nullable: true coc_number: type: string example: null nullable: true bank_ascription: type: string example: null nullable: true bank_account_number: type: string example: null nullable: true owner_id: type: integer example: 5569 created_at: type: string example: '2026-04-02T14:55:37.000000Z' updated_at: type: string example: '2026-04-02T14:55:37.000000Z' tags: - Companies parameters: - in: path name: id description: 'The ID of the company.' example: 116 required: true schema: type: integer '/api/v1/companies/{company_id}/departments': get: summary: 'Get departments' operationId: getDepartments description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: array items: type: object properties: id: type: integer example: 217 name: type: string example: 'Price Ltd' email: type: string example: dare.emelie@baumbach.org company_id: type: integer example: 403 created_at: type: string example: 02-04-2026 updated_at: type: string example: '2026-04-02T14:55:37.000000Z' logo: type: string example: null nullable: true example: - id: 217 name: 'Price Ltd' email: dare.emelie@baumbach.org company_id: 403 created_at: 02-04-2026 updated_at: '2026-04-02T14:55:37.000000Z' logo: null - id: 218 name: 'Gaylord, Hettinger and Nitzsche' email: mcdermott.verlie@mayer.com company_id: 404 created_at: 02-04-2026 updated_at: '2026-04-02T14:55:37.000000Z' logo: null tags: - Companies parameters: - in: path name: company_id description: 'The ID of the company.' example: 116 required: true schema: type: integer '/api/v1/companies/{company_id}/stories': get: summary: 'Get stories' operationId: getStories description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: array items: type: object properties: id: type: integer example: 1440 title: type: string example: 'Nostrum ut id autem sint ut.' description: type: string example: null nullable: true video: type: string example: null nullable: true media: type: array example: [] author: type: string example: null nullable: true created_at: type: string example: '2025-10-13T11:00:07.000000Z' updated_at: type: string example: '2025-10-13T11:00:07.000000Z' example: - id: 1440 title: 'Nostrum ut id autem sint ut.' description: null video: null media: [] author: null created_at: '2025-10-13T11:00:07.000000Z' updated_at: '2025-10-13T11:00:07.000000Z' - id: 1441 title: 'Consequatur commodi nostrum quae est reprehenderit et.' description: null video: null media: [] author: null created_at: '2025-10-13T11:00:07.000000Z' updated_at: '2025-10-13T11:00:07.000000Z' tags: - Companies security: [] parameters: - in: path name: company_id description: 'The ID of the company.' example: 116 required: true schema: type: integer '/api/v1/companies/{company_id}/published-videos': get: summary: 'Get published videos' operationId: getPublishedVideos description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: array items: type: object properties: id: type: integer example: 1832 orientation: type: string example: null nullable: true video_url: type: string example: 'https://yourstoryz.s3.eu-west-2.amazonaws.com/2TMZfDAbVw7FIcv111B566x9u8XYfO5PXBop9DRnJ0bkweCp6vgoCqiwmmwkCVnuL2eW7FqQ5rcczBAsUp0kS7Na1FaoEPZtLpg0' thumbnail_url: type: string example: null nullable: true contents: type: array example: [] created_at: type: string example: '2025-10-13T09:42:40.000000Z' example: - id: 1832 orientation: null video_url: 'https://yourstoryz.s3.eu-west-2.amazonaws.com/2TMZfDAbVw7FIcv111B566x9u8XYfO5PXBop9DRnJ0bkweCp6vgoCqiwmmwkCVnuL2eW7FqQ5rcczBAsUp0kS7Na1FaoEPZtLpg0' thumbnail_url: null contents: [] created_at: '2025-10-13T09:42:40.000000Z' - id: 1833 orientation: null video_url: 'https://yourstoryz.s3.eu-west-2.amazonaws.com/AXFZKpTFitPtrgXZRR2u4Ayt8B94QjtYLOucFRPJ6QV7UqlVvo7pkp7yZZhgH3sUPawVih5B5PmAM1ztSZ4A2snQxiEMk9lMUSS1' thumbnail_url: null contents: [] created_at: '2025-10-13T09:42:40.000000Z' tags: - Companies security: [] parameters: - in: path name: company_id description: 'The ID of the company.' example: 116 required: true schema: type: integer '/api/v1/departments/{department_id}/settings': get: summary: 'Get settings' operationId: getSettings description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: caption_background: '#F7F9FC' caption_background_opacity: 100 caption_title_color: '#38416F' caption_title_color_opacity: 100 caption_sub_title_color: '#4F5B9C' caption_sub_title_color_opacity: 100 video_pre_post_loader_removable: false properties: caption_background: type: string example: '#F7F9FC' caption_background_opacity: type: integer example: 100 caption_title_color: type: string example: '#38416F' caption_title_color_opacity: type: integer example: 100 caption_sub_title_color: type: string example: '#4F5B9C' caption_sub_title_color_opacity: type: integer example: 100 video_pre_post_loader_removable: type: boolean example: false tags: - Departments parameters: - in: path name: department_id description: 'The ID of the department.' example: 99 required: true schema: type: integer /api/v1/departments: get: summary: 'Get departments' operationId: getDepartments description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: array items: type: object properties: id: type: integer example: 219 name: type: string example: 'Price Ltd' email: type: string example: ferne52@okeefe.net company_id: type: integer example: 405 created_at: type: string example: 02-04-2026 updated_at: type: string example: '2026-04-02T14:55:37.000000Z' logo: type: string example: null nullable: true example: - id: 219 name: 'Price Ltd' email: ferne52@okeefe.net company_id: 405 created_at: 02-04-2026 updated_at: '2026-04-02T14:55:37.000000Z' logo: null - id: 220 name: Mayer-Kutch email: oking@cartwright.com company_id: 406 created_at: 02-04-2026 updated_at: '2026-04-02T14:55:37.000000Z' logo: null tags: - Departments '/api/v1/departments/{id}': get: summary: 'Get department' operationId: getDepartment description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 221 name: 'Price Ltd' email: christian51@leffler.com company_id: 407 created_at: 02-04-2026 updated_at: '2026-04-02T14:55:37.000000Z' logo: null properties: id: type: integer example: 221 name: type: string example: 'Price Ltd' email: type: string example: christian51@leffler.com company_id: type: integer example: 407 created_at: type: string example: 02-04-2026 updated_at: type: string example: '2026-04-02T14:55:37.000000Z' logo: type: string example: null nullable: true tags: - Departments parameters: - in: path name: id description: 'The ID of the department.' example: 99 required: true schema: type: integer '/api/v1/departments/{department_id}/stories': get: summary: 'Get stories' operationId: getStories description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: array items: type: object properties: id: type: integer example: 1442 title: type: string example: 'Sit nostrum aut dolorem blanditiis.' description: type: string example: null nullable: true video: type: string example: null nullable: true media: type: array example: [] author: type: string example: null nullable: true created_at: type: string example: '2025-10-13T11:00:07.000000Z' updated_at: type: string example: '2025-10-13T11:00:07.000000Z' example: - id: 1442 title: 'Sit nostrum aut dolorem blanditiis.' description: null video: null media: [] author: null created_at: '2025-10-13T11:00:07.000000Z' updated_at: '2025-10-13T11:00:07.000000Z' - id: 1443 title: 'Qui magni qui assumenda sint.' description: null video: null media: [] author: null created_at: '2025-10-13T11:00:07.000000Z' updated_at: '2025-10-13T11:00:07.000000Z' tags: - Departments security: [] parameters: - in: path name: department_id description: 'The ID of the department.' example: 99 required: true schema: type: integer '/api/v1/departments/{department_id}/published-videos': get: summary: 'Get published videos' operationId: getPublishedVideos description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: array items: type: object properties: id: type: integer example: 1834 orientation: type: string example: null nullable: true video_url: type: string example: 'https://yourstoryz.s3.eu-west-2.amazonaws.com/gMubylRn0k2hIkqSIwMDHlRZ5eEyGeRor2fnxiIUb4Ukfvv2ddMUx4Vex92wbHhUbAE1dYRAm9PL2J4GtZOXTlRbB5mZFv3OAnVX' thumbnail_url: type: string example: null nullable: true contents: type: array example: [] created_at: type: string example: '2025-10-13T09:42:40.000000Z' example: - id: 1834 orientation: null video_url: 'https://yourstoryz.s3.eu-west-2.amazonaws.com/gMubylRn0k2hIkqSIwMDHlRZ5eEyGeRor2fnxiIUb4Ukfvv2ddMUx4Vex92wbHhUbAE1dYRAm9PL2J4GtZOXTlRbB5mZFv3OAnVX' thumbnail_url: null contents: [] created_at: '2025-10-13T09:42:40.000000Z' - id: 1835 orientation: null video_url: 'https://yourstoryz.s3.eu-west-2.amazonaws.com/YdCQBfLlzpd20Aizcf3AlpBPS1ucn0phf2kpjwEjOyUpWJxcU1jbHJd2HJWVDHukvUcbmsSROirUIU9Xbn4hz0FspXRx6yhsQZTD' thumbnail_url: null contents: [] created_at: '2025-10-13T09:42:40.000000Z' tags: - Departments security: [] parameters: - in: path name: department_id description: 'The ID of the department.' example: 99 required: true schema: type: integer /api/v1/stories: get: summary: 'Get stories' operationId: getStories description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: array items: type: object properties: id: type: integer example: 1465 title: type: string example: 'Mollitia et quos exercitationem dolore aut.' description: type: string example: null nullable: true video: type: string example: null nullable: true media: type: array example: [] author: type: string example: null nullable: true location: type: array example: - -15.917464 - -71.60898 items: type: number location_description: type: string example: null nullable: true created_at: type: string example: '2026-04-02T14:55:37.000000Z' updated_at: type: string example: '2026-04-02T14:55:37.000000Z' example: - id: 1465 title: 'Mollitia et quos exercitationem dolore aut.' description: null video: null media: [] author: null location: - -15.917464 - -71.60898 location_description: null created_at: '2026-04-02T14:55:37.000000Z' updated_at: '2026-04-02T14:55:37.000000Z' - id: 1466 title: 'Vel temporibus quibusdam laborum reprehenderit.' description: null video: null media: [] author: null location: - -9.225575 - 77.065306 location_description: null created_at: '2026-04-02T14:55:37.000000Z' updated_at: '2026-04-02T14:55:37.000000Z' tags: - Stories post: summary: 'Create story' operationId: createStory description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 1467 title: 'Mollitia modi deserunt aut ab provident perspiciatis quo.' description: null video: null media: [] author: null location: - -175.353288 - -25.59289 location_description: null created_at: '2026-04-02T14:55:38.000000Z' updated_at: '2026-04-02T14:55:38.000000Z' properties: id: type: integer example: 1467 title: type: string example: 'Mollitia modi deserunt aut ab provident perspiciatis quo.' description: type: string example: null nullable: true video: type: string example: null nullable: true media: type: array example: [] author: type: string example: null nullable: true location: type: array example: - -175.353288 - -25.59289 items: type: number location_description: type: string example: null nullable: true created_at: type: string example: '2026-04-02T14:55:38.000000Z' updated_at: type: string example: '2026-04-02T14:55:38.000000Z' tags: - Stories requestBody: required: true content: multipart/form-data: schema: type: object properties: storiable_type: type: string description: 'Must not be greater than 255 characters.' example: b storiable_id: type: integer description: '' example: 16 title: type: string description: 'Must not be greater than 255 characters.' example: 'n' description: type: string description: '' example: 'Eius et animi quos velit et.' nullable: true file: type: string format: binary description: 'This field is required when thumbnail or metadata is present. Must be a file.' thumbnail: type: string format: binary description: 'Must be a file.' nullable: true metadata: type: string description: 'Must be a valid JSON string.' example: '["architecto","architecto"]' nullable: true duration: type: integer description: '' example: 16 nullable: true channel: type: string description: '' example: architecto nullable: true channels: type: array description: '' example: null items: type: object properties: channel: type: string description: '' example: architecto channel_folders: type: array description: '' example: - architecto items: type: string required: - channel - channel_folders posts: type: string description: 'Must be a valid JSON string.' example: '["architecto","architecto"]' nullable: true media: type: array description: 'Must be a file.' items: type: string format: binary nullable: true location: type: object description: '' example: null properties: latitude: type: number description: 'Must be between -180 and 180.' example: -179 longitude: type: number description: 'Must be between -90 and 90.' example: -89 nullable: true location_description: type: string description: '' example: architecto nullable: true required: - storiable_type - storiable_id - title '/api/v1/stories/{id}': get: summary: 'Get story' operationId: getStory description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 1468 title: 'Modi ipsum nostrum omnis autem et.' description: null video: null media: [] author: null location: - -48.641047 - -45.649001 location_description: null created_at: '2026-04-02T14:55:38.000000Z' updated_at: '2026-04-02T14:55:38.000000Z' properties: id: type: integer example: 1468 title: type: string example: 'Modi ipsum nostrum omnis autem et.' description: type: string example: null nullable: true video: type: string example: null nullable: true media: type: array example: [] author: type: string example: null nullable: true location: type: array example: - -48.641047 - -45.649001 items: type: number location_description: type: string example: null nullable: true created_at: type: string example: '2026-04-02T14:55:38.000000Z' updated_at: type: string example: '2026-04-02T14:55:38.000000Z' tags: - Stories put: summary: 'Update story' operationId: updateStory description: '' parameters: [] responses: { } tags: - Stories delete: summary: 'Delete story' operationId: deleteStory description: '' parameters: [] responses: { } tags: - Stories parameters: - in: path name: id description: 'The ID of the story.' example: 1 required: true schema: type: integer '/api/v1/published-videos/{id}': get: summary: 'Get published video' operationId: getPublishedVideo description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 1931 orientation: null video_url: 'https://yourstoryz.s3.eu-west-2.amazonaws.com/WmKhFTK8uB3ENNmrI0c6sQisnmTJqhbbvmg37gBNInbLbsGi2hxcUki2A9jCDWKdx9ui35o10F8Aan4n0n9SNNxt2VKvquNZZqOT' thumbnail_url: null contents: [] created_at: '2026-04-02T14:55:38.000000Z' properties: id: type: integer example: 1931 orientation: type: string example: null nullable: true video_url: type: string example: 'https://yourstoryz.s3.eu-west-2.amazonaws.com/WmKhFTK8uB3ENNmrI0c6sQisnmTJqhbbvmg37gBNInbLbsGi2hxcUki2A9jCDWKdx9ui35o10F8Aan4n0n9SNNxt2VKvquNZZqOT' thumbnail_url: type: string example: null nullable: true contents: type: array example: [] created_at: type: string example: '2026-04-02T14:55:38.000000Z' tags: - 'Published Videos' parameters: - in: path name: id description: 'The ID of the published video.' example: 304 required: true schema: type: integer /api/v1/users/me: get: summary: '' operationId: getApiV1UsersMe description: '' parameters: [] responses: 401: description: '' content: application/json: schema: type: object example: message: Unauthenticated. properties: message: type: string example: Unauthenticated. tags: - Endpoints