openapi: 3.0.3 info: title: Tines REST Actions Stories API description: The Tines REST API provides programmatic access to all platform resources including stories (workflows), actions, credentials, teams, folders, cases, records, dashboards, audit logs, SCIM provisioning, AI usage tracking, reporting, tags, and the workbench. The API uses API key authentication via X-User-Token header or Bearer token and is accessed via each tenant's custom subdomain. version: 1.0.0 contact: name: Tines API Documentation url: https://www.tines.com/api/welcome/ x-api-id: tines-rest-api x-provider-name: tines servers: - url: https://{tenantDomain}/api/v1 description: Tines tenant API v1 variables: tenantDomain: default: your-tenant.tines.com description: Your Tines tenant domain (e.g. adjective-noun-1234.tines.com) - url: https://{tenantDomain}/api/v2 description: Tines tenant API v2 (Cases) variables: tenantDomain: default: your-tenant.tines.com description: Your Tines tenant domain security: - BearerAuth: [] - ApiKeyAuth: [] tags: - name: Stories description: Manage stories (automated workflows) paths: /stories: get: operationId: listStories summary: List stories description: Returns a paginated list of stories accessible by the authenticated API key. tags: - Stories parameters: - $ref: '#/components/parameters/Page' - $ref: '#/components/parameters/PerPage' - name: team_id in: query description: Filter stories by team ID schema: type: integer - name: folder_id in: query description: Filter stories by folder ID schema: type: integer responses: '200': description: Paginated list of stories content: application/json: schema: allOf: - $ref: '#/components/schemas/PaginatedMeta' - type: object properties: stories: type: array items: $ref: '#/components/schemas/Story' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/UnprocessableEntity' post: operationId: createStory summary: Create a story description: Creates a new story (workflow) within a team. tags: - Stories requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/StoryCreate' example: name: Simple story description: Detection system alerts team_id: 1 folder_id: 1 responses: '200': description: Story created successfully content: application/json: schema: $ref: '#/components/schemas/Story' example: id: 7981 name: Simple story team_id: 1 folder_id: 1 guid: df1e838a18d20696120b41516497b017 slug: simple_story published: true disabled: false created_at: '2021-05-10T08:56:50Z' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/UnprocessableEntity' /stories/{id}: get: operationId: getStory summary: Get a story description: Returns details for a specific story by ID. tags: - Stories parameters: - $ref: '#/components/parameters/ResourceId' responses: '200': description: Story details content: application/json: schema: $ref: '#/components/schemas/Story' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/UnprocessableEntity' put: operationId: updateStory summary: Update a story description: Updates an existing story by ID. tags: - Stories parameters: - $ref: '#/components/parameters/ResourceId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/StoryCreate' responses: '200': description: Story updated successfully content: application/json: schema: $ref: '#/components/schemas/Story' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/UnprocessableEntity' delete: operationId: deleteStory summary: Delete a story description: Deletes a story by ID. tags: - Stories parameters: - $ref: '#/components/parameters/ResourceId' responses: '200': description: Story deleted successfully '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/UnprocessableEntity' components: schemas: Story: type: object properties: id: type: integer description: Unique story identifier name: type: string description: Story name description: type: string description: User-defined description team_id: type: integer description: ID of the team that owns the story folder_id: type: integer nullable: true description: ID of the folder containing the story guid: type: string description: Globally unique story identifier slug: type: string description: URL-friendly story identifier published: type: boolean description: Whether the story is published disabled: type: boolean description: Whether the story is disabled priority: type: boolean description: Whether the story is high-priority keep_events_for: type: integer description: Event retention period in seconds tags: type: array items: type: string description: Tags associated with the story created_at: type: string format: date-time updated_at: type: string format: date-time edited_at: type: string format: date-time Error: type: object properties: error: type: string description: Error message describing the issue StoryCreate: type: object required: - team_id properties: team_id: type: integer description: ID of the team to which the story should be added name: type: string description: Story name description: type: string description: User-defined description keep_events_for: type: integer description: Event retention in seconds (3600 to 31536000) minimum: 3600 maximum: 31536000 folder_id: type: integer description: Folder ID for organization tags: type: array items: type: string description: Array of strings used to create tags disabled: type: boolean description: Story enabled status default: false priority: type: boolean description: High priority flag default: false PaginatedMeta: type: object properties: meta: type: object properties: current_page: type: integer previous_page: type: integer nullable: true next_page: type: integer nullable: true next_page_number: type: integer nullable: true per_page: type: integer pages: type: integer count: type: integer responses: Unauthorized: description: Authentication credentials missing or invalid content: application/json: schema: $ref: '#/components/schemas/Error' NotFound: description: The requested resource was not found content: application/json: schema: $ref: '#/components/schemas/Error' UnprocessableEntity: description: Validation error — one or more request parameters are invalid content: application/json: schema: $ref: '#/components/schemas/Error' parameters: ResourceId: name: id in: path required: true description: The unique numeric identifier of the resource schema: type: integer Page: name: page in: query description: Page number for pagination (default 1) schema: type: integer default: 1 PerPage: name: per_page in: query description: Number of results per page (default 20, max 500) schema: type: integer default: 20 maximum: 500 securitySchemes: BearerAuth: type: http scheme: bearer description: 'Bearer token authentication using an Tines API key. Format: `Authorization: Bearer `' ApiKeyAuth: type: apiKey in: header name: X-User-Token description: 'API key authentication using the X-User-Token header. Format: `X-User-Token: `'