Shuffle
Shuffle is an open source security automation platform (SOAR) built for and by security professionals. The platform enables security teams to orchestrate workflows across their entire security tool stack using a no-code/low-code interface powered by OpenAPI integrations. Shuffle provides workflow automation, app integration, webhook triggers, scheduled executions, file storage, and organization management via a comprehensive REST API. It follows the Unix philosophy of doing one thing well — connecting security tools through REST APIs.
1 APIs
0 Features
SecurityWorkflowsAutomationSOAROrchestrationOpen Source
APIs
Shuffle API
The Shuffle REST API provides programmatic access to all platform capabilities including workflow management, app integration, execution control, user and organization managemen...
Collections
Shuffle API
OPENPricing Plans
Rate Limits
FinOps
Shuffle Finops
FINOPSSemantic Vocabularies
API Governance Rules
JSON Structure
Example Payloads
Resources
Sources
opencollection: 1.0.0
info:
name: Shuffle API
version: v1
request:
auth:
type: bearer
token: '{{bearerToken}}'
items:
- info:
name: Workflows
type: folder
items:
- info:
name: List Workflows
type: http
http:
method: GET
url: https://shuffler.io/api/v1/workflows
params:
- name: truncate
value: ''
type: query
description: Whether to truncate workflow details in the response
docs: Returns all workflows accessible to the authenticated user.
- info:
name: Create Workflow
type: http
http:
method: POST
url: https://shuffler.io/api/v1/workflows
body:
type: json
data: '{}'
docs: Creates a new automation workflow.
- info:
name: Get Workflow
type: http
http:
method: GET
url: https://shuffler.io/api/v1/workflows/:id
params:
- name: id
value: ''
type: path
description: Workflow ID
docs: Retrieves a specific workflow by ID.
- info:
name: Update Workflow
type: http
http:
method: PUT
url: https://shuffler.io/api/v1/workflows/:id
params:
- name: id
value: ''
type: path
description: Workflow ID
body:
type: json
data: '{}'
docs: Updates an existing workflow with a full workflow object.
- info:
name: Delete Workflow
type: http
http:
method: DELETE
url: https://shuffler.io/api/v1/workflows/:id
params:
- name: id
value: ''
type: path
description: Workflow ID
docs: Deletes a workflow by ID.
- info:
name: Execute Workflow
type: http
http:
method: POST
url: https://shuffler.io/api/v1/workflows/:id/execute
params:
- name: id
value: ''
type: path
description: Workflow ID
body:
type: json
data: '{}'
docs: Triggers execution of a workflow with an optional execution argument.
- info:
name: Get Workflow Executions
type: http
http:
method: GET
url: https://shuffler.io/api/v1/workflows/:id/executions
params:
- name: id
value: ''
type: path
description: Workflow ID
- name: top
value: ''
type: query
description: Number of executions to return
- name: cursor
value: ''
type: query
description: Pagination cursor
docs: Returns the execution history for a workflow.
- info:
name: Abort Workflow Execution
type: http
http:
method: GET
url: https://shuffler.io/api/v1/workflows/:id/executions/:exec_id/abort
params:
- name: id
value: ''
type: path
description: Workflow ID
- name: exec_id
value: ''
type: path
description: Execution ID to abort
docs: Aborts a running workflow execution.
- info:
name: Schedule Workflow
type: http
http:
method: POST
url: https://shuffler.io/api/v1/workflows/:id/schedule
params:
- name: id
value: ''
type: path
description: Workflow ID
body:
type: json
data: '{}'
docs: Creates a scheduled trigger for a workflow.
- info:
name: Delete Workflow Schedule
type: http
http:
method: DELETE
url: https://shuffler.io/api/v1/workflows/:id/schedule/:sched_id
params:
- name: id
value: ''
type: path
description: Workflow ID
- name: sched_id
value: ''
type: path
description: Schedule ID to delete
docs: Removes a scheduled trigger from a workflow.
- info:
name: List Workflow Schedules
type: http
http:
method: GET
url: https://shuffler.io/api/v1/workflows/schedules
docs: Returns all workflow schedules for the organization.
- info:
name: Get Execution Results
type: http
http:
method: POST
url: https://shuffler.io/api/v1/streams/results
body:
type: json
data: '{}'
docs: Retrieves results of a specific workflow execution.
- info:
name: Apps
type: folder
items:
- info:
name: List Apps
type: http
http:
method: GET
url: https://shuffler.io/api/v1/apps
docs: Returns all apps available to the organization.
- info:
name: Delete App
type: http
http:
method: DELETE
url: https://shuffler.io/api/v1/apps/:id
params:
- name: id
value: ''
type: path
description: App ID
docs: Deletes a custom app by ID.
- info:
name: Upload App
type: http
http:
method: POST
url: https://shuffler.io/api/v1/apps/upload
body:
type: multipart-form
data:
- name: file
type: text
value: ''
docs: Uploads a custom app as a ZIP file.
- info:
name: Search Apps
type: http
http:
method: POST
url: https://shuffler.io/api/v1/apps/search
body:
type: json
data: '{}'
docs: Searches the global app library.
- info:
name: List App Authentications
type: http
http:
method: GET
url: https://shuffler.io/api/v1/apps/authentication
docs: Returns all app authentication configurations.
- info:
name: Create App Authentication
type: http
http:
method: PUT
url: https://shuffler.io/api/v1/apps/authentication
body:
type: json
data: '{}'
docs: Creates a new authentication configuration for an app.
- info:
name: Delete App Authentication
type: http
http:
method: DELETE
url: https://shuffler.io/api/v1/apps/authentication/:id
params:
- name: id
value: ''
type: path
description: Authentication ID
docs: Removes an app authentication configuration.
- info:
name: List App Categories
type: http
http:
method: GET
url: https://shuffler.io/api/v1/apps/categories
docs: Returns all available app categories.
- info:
name: Run App Category Action
type: http
http:
method: POST
url: https://shuffler.io/api/v1/apps/categories/run
body:
type: json
data: '{}'
docs: Executes an action within an app category using AI-assisted routing.
- info:
name: Triggers
type: folder
items:
- info:
name: Create Webhook
type: http
http:
method: POST
url: https://shuffler.io/api/v1/hooks
body:
type: json
data: '{}'
docs: Creates a webhook trigger that can start a workflow when called.
- info:
name: Delete Webhook
type: http
http:
method: DELETE
url: https://shuffler.io/api/v1/hooks/:id
params:
- name: id
value: ''
type: path
description: Webhook ID
docs: Removes a webhook trigger.
- info:
name: Files
type: folder
items:
- info:
name: Create File
type: http
http:
method: POST
url: https://shuffler.io/api/v1/files/create
body:
type: json
data: '{}'
docs: Creates a file record in the Shuffle file store.
- info:
name: List Files
type: http
http:
method: GET
url: https://shuffler.io/api/v1/files
docs: Returns all files accessible to the organization.
- info:
name: Upload File Content
type: http
http:
method: POST
url: https://shuffler.io/api/v1/files/:id/upload
params:
- name: id
value: ''
type: path
description: File ID
body:
type: multipart-form
data:
- name: file
type: text
value: ''
docs: Uploads content to an existing file record.
- info:
name: Get File Content
type: http
http:
method: GET
url: https://shuffler.io/api/v1/files/:id/content
params:
- name: id
value: ''
type: path
description: File ID
docs: Downloads the content of a file.
- info:
name: Get File Metadata
type: http
http:
method: POST
url: https://shuffler.io/api/v1/files/:id
params:
- name: id
value: ''
type: path
description: File ID
docs: Retrieves metadata for a specific file.
- info:
name: Delete File
type: http
http:
method: DELETE
url: https://shuffler.io/api/v1/files/:id
params:
- name: id
value: ''
type: path
description: File ID
- name: remove_metadata
value: ''
type: query
description: Whether to also remove file metadata
docs: Deletes a file from the file store.
- info:
name: Datastore
type: folder
items:
- info:
name: Set Cache Value
type: http
http:
method: POST
url: https://shuffler.io/api/v1/orgs/:org_id/set_cache
params:
- name: org_id
value: ''
type: path
description: Organization ID
body:
type: json
data: '{}'
docs: Stores a key-value pair in the organization datastore.
- info:
name: Get Cache Value
type: http
http:
method: POST
url: https://shuffler.io/api/v1/orgs/:org_id/get_cache
params:
- name: org_id
value: ''
type: path
description: Organization ID
body:
type: json
data: '{}'
docs: Retrieves a value from the organization datastore by key.
- info:
name: List Cache Items
type: http
http:
method: GET
url: https://shuffler.io/api/v1/orgs/:org_id/list_cache
params:
- name: org_id
value: ''
type: path
description: Organization ID
- name: top
value: ''
type: query
description: Number of items to return
- name: cursor
value: ''
type: query
description: Pagination cursor
- name: category
value: ''
type: query
description: Filter by category
docs: Lists all cache items in the organization datastore.
- info:
name: Delete Cache Item
type: http
http:
method: POST
url: https://shuffler.io/api/v1/orgs/:org_id/delete_cache
params:
- name: org_id
value: ''
type: path
description: Organization ID
body:
type: json
data: '{}'
docs: Removes a key-value pair from the organization datastore.
- info:
name: Users
type: folder
items:
- info:
name: List Users
type: http
http:
method: GET
url: https://shuffler.io/api/v1/users/getusers
docs: Returns all users in the organization.
- info:
name: Register User
type: http
http:
method: POST
url: https://shuffler.io/api/v1/users/register
body:
type: json
data: '{}'
docs: Registers a new user in the organization.
- info:
name: Update User
type: http
http:
method: PUT
url: https://shuffler.io/api/v1/users/updateuser
body:
type: json
data: '{}'
docs: Updates user details including role assignment.
- info:
name: Delete User
type: http
http:
method: DELETE
url: https://shuffler.io/api/v1/users/:id
params:
- name: id
value: ''
type: path
description: User ID
docs: Removes a user from the organization.
- info:
name: Generate API Key
type: http
http:
method: GET
url: https://shuffler.io/api/v1/users/generateapikey
docs: Generates a new API key for the authenticated user.
- info:
name: Organizations
type: folder
items:
- info:
name: List Organizations
type: http
http:
method: GET
url: https://shuffler.io/api/v1/orgs
docs: Returns all organizations accessible to the user.
- info:
name: Get Organization
type: http
http:
method: GET
url: https://shuffler.io/api/v1/orgs/:id
params:
- name: id
value: ''
type: path
description: Organization ID
docs: Retrieves details of a specific organization.
- info:
name: Update Organization
type: http
http:
method: POST
url: https://shuffler.io/api/v1/orgs/:id
params:
- name: id
value: ''
type: path
description: Organization ID
body:
type: json
data: '{}'
docs: Updates organization details.
- info:
name: Get Organization Stats
type: http
http:
method: GET
url: https://shuffler.io/api/v1/orgs/:org_id/stats
params:
- name: org_id
value: ''
type: path
description: Organization ID
docs: Returns usage statistics for an organization.
- info:
name: Notifications
type: folder
items:
- info:
name: List Notifications
type: http
http:
method: GET
url: https://shuffler.io/api/v1/notifications
params:
- name: status
value: ''
type: query
description: Filter by status
- name: type
value: ''
type: query
description: Filter by notification type
- name: severity
value: ''
type: query
description: Filter by severity level
docs: Returns notifications for the organization.
- info:
name: Create Notification
type: http
http:
method: POST
url: https://shuffler.io/api/v1/notifications
body:
type: json
data: '{}'
docs: Creates a new notification in the organization.
- info:
name: Clear Notifications
type: http
http:
method: GET
url: https://shuffler.io/api/v1/notifications/clear
docs: Clears all notifications for the organization.
- info:
name: Mark Notification As Read
type: http
http:
method: GET
url: https://shuffler.io/api/v1/notifications/:id/markasread
params:
- name: id
value: ''
type: path
description: Notification ID
docs: Marks a specific notification as read.
- info:
name: Administration
type: folder
items:
- info:
name: List Environments
type: http
http:
method: GET
url: https://shuffler.io/api/v1/getenvironments
docs: Returns all execution environments (workers) configured for the organization.
bundled: true