{
  "openapi": "3.0.1",
  "info": {
    "title": "Blackbird.io API",
    "description": "This API provides generic app functions for the Blackbird.io system.",
    "version": "v1"
  },
  "servers": [
    {
      "url": "https://eu-1.blackbird.io/api-rest/",
      "description": "Blackbird EU-1 instance"
    },
    {
      "url": "https://us-2.blackbird.io/api-rest/",
      "description": "Blackbird US-2 instance"
    }
  ],
  "paths": {
    "/nests/{nestId}/birds": {
      "get": {
        "summary": "Search Birds in a Nest",
        "description": "Returns the Birds in a Nest. Results can be filtered by trigger type and status.",
        "operationId": "searchBirds",
        "tags": ["Birds"],
        "parameters": [
          {
            "name": "nestId",
            "in": "path",
            "required": true,
            "description": "The ID of the Nest that contains the Birds.",
            "style": "simple",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "TriggerType",
            "in": "query",
            "description": "Filters Birds by how they are triggered: manual, event, or scheduled. Only manual Birds can be triggered through the POST Bird endpoint in this API.",
            "style": "form",
            "schema": {
              "type": "string",
              "enum": ["manual", "event", "scheduled"]
            }
          },
          {
            "name": "Status",
            "in": "query",
            "description": "Filters Birds by status. Unpublished Birds are drafts. Active Birds are enabled. Suspended Birds were active Birds that were temporarily paused.",
            "style": "form",
            "schema": {
              "type": "string",
              "enum": ["active", "unpublished", "suspended"]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A list of Birds in the Nest.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BirdEntity"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Server Error"
          }
        }
      }
    },
    "/nests/{nestId}/birds/{birdId}": {
      "get": {
        "summary": "Get a Bird",
        "description": "Returns a single Bird in a Nest by its ID.",
        "operationId": "getBird",
        "tags": ["Birds"],
        "parameters": [
          {
            "name": "nestId",
            "in": "path",
            "required": true,
            "description": "The ID of the Nest that contains the Bird.",
            "style": "simple",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "birdId",
            "in": "path",
            "required": true,
            "description": "The ID of the Bird.",
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The requested Bird.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BirdEntity"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Server Error"
          }
        }
      },
      "post": {
        "summary": "Fly a Manual Bird",
        "description": "Starts a Flight for the specified Bird. Only Birds with a manual trigger type can be flown through this endpoint.",
        "operationId": "flyBird",
        "tags": ["Birds"],
        "parameters": [
          {
            "name": "nestId",
            "in": "path",
            "required": true,
            "description": "The ID of the Nest that contains the Bird.",
            "style": "simple",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "birdId",
            "in": "path",
            "required": true,
            "description": "The ID of the Bird. Only manual Birds can be triggered through this endpoint.",
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The Bird was successfully flown."
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Server Error"
          }
        }
      }
    },
    "/nests/{nestId}/birds/{birdId}/logs": {
      "get": {
        "summary": "Get Bird logs",
        "description": "Returns Bird related events such as publishing, saving and subscription errors.",
        "operationId": "getBirdLogs",
        "tags": ["Birds"],
        "parameters": [
          {
            "name": "nestId",
            "in": "path",
            "required": true,
            "description": "The ID of the Nest that contains the Bird.",
            "style": "simple",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "birdId",
            "in": "path",
            "required": true,
            "description": "The ID of the Bird whose logs are being retrieved.",
            "style": "simple",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "The zero-based page index to return.",
            "style": "form",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "The number of log items to return per page.",
            "style": "form",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "ascending",
            "in": "query",
            "description": "Whether to sort the logs in ascending order by creation time.",
            "style": "form",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "from",
            "in": "query",
            "description": "Optional start timestamp to filter logs from, in ISO 8601 format, for example 2027-10-13T16:33:46Z.",
            "style": "form",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "to",
            "in": "query",
            "description": "Optional end timestamp to filter logs to, in ISO 8601 format, for example 2027-10-13T16:33:46Z.",
            "style": "form",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A paginated list of logs for the specified Bird.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BirdLogListResponse"
                },
                "examples": {
                  "publishAndSaveEvents": {
                    "summary": "Publishing and saving events",
                    "value": {
                      "items": [
                        {
                          "id": "019f2320-b7be-73b5-b6d3-5fbe563bca02",
                          "createdAt": "2026-07-02T13:59:34.590833Z",
                          "workspaceId": 726,
                          "workflowId": 148139,
                          "eventType": "Discarded",
                          "initiator": "Maksym Kharchenko"
                        },
                        {
                          "id": "019f2320-8b16-7fcb-be73-c4de699d455b",
                          "createdAt": "2026-07-02T13:59:23.158131Z",
                          "workspaceId": 726,
                          "workflowId": 148139,
                          "eventType": "Saved",
                          "initiator": "Maksym Kharchenko"
                        },
                        {
                          "id": "019f231e-d16e-7975-ac41-7ca732efaf1c",
                          "createdAt": "2026-07-02T13:57:30.094529Z",
                          "workspaceId": 726,
                          "workflowId": 148139,
                          "eventType": "Published",
                          "initiator": "Maksym Kharchenko"
                        },
                        {
                          "id": "019f231e-c01b-70f7-93d1-b9ec6803ec88",
                          "createdAt": "2026-07-02T13:57:25.659129Z",
                          "workspaceId": 726,
                          "workflowId": 148139,
                          "eventType": "Saved",
                          "initiator": "Maksym Kharchenko"
                        }
                      ],
                      "totalCount": 4,
                      "page": 0,
                      "pageSize": 20
                    }
                  },
                  "subscriptionError": {
                    "summary": "Subscription error event",
                    "value": {
                      "items": [
                        {
                          "id": "019f2290-928b-7471-8141-6f0269dc1133",
                          "createdAt": "2026-07-02T11:22:07.883565Z",
                          "workspaceId": 726,
                          "workflowId": 148960,
                          "eventType": "EventError",
                          "message": "This is expected PluginUnhandled exception\n\n   at TestPlugin.Webhooks.Handlers.FailSubscriptionHandler.ThrowErrorForTesting(String errorType)\n   at TestPlugin.Webhooks.Handlers.FailSubscriptionHandler.SubscribeAsync(IEnumerable`1 authenticationCredentialsProviders, Dictionary`2 values)",
                          "eventFailedBy": "Subscription",
                          "errorType": "PluginUnhandled"
                        }
                      ],
                      "totalCount": 1,
                      "page": 0,
                      "pageSize": 20
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Server Error"
          }
        }
      }
    },
    "/nests/{nestId}/birds/{birdId}/flights": {
      "get": {
        "summary": "Search Flights",
        "description": "Search for Flights of the specified Nest. This endpoint is especially useful for applications that need to inspect Flight error messages to understand failed or cancelled Flights.",
        "operationId": "searchFlights",
        "tags": ["Flights"],
        "parameters": [
          {
            "name": "nestId",
            "in": "path",
            "required": true,
            "description": "The ID of the Nest that contains the Bird.",
            "style": "simple",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "birdId",
            "in": "path",
            "required": true,
            "description": "The ID of the Bird whose Flights are being listed.",
            "style": "simple",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "MinStartDate",
            "in": "query",
            "description": "Filters Flights to those with a start date on or after this timestamp.",
            "style": "form",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "MaxStartDate",
            "in": "query",
            "description": "Filters Flights to those with a start date on or before this timestamp.",
            "style": "form",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "Status",
            "in": "query",
            "description": "Filters Flights by status. Active Flights are currently running. Cancelled Flights were cancelled by a user.",
            "style": "form",
            "schema": {
              "type": "string",
              "enum": ["succeeded", "failed", "cancelled", "active"]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A list of Flights for the specified Bird, including error messages when available.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/FlightEntity"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Server Error"
          }
        }
      }
    },
    "/nests/{nestId}/birds/{birdId}/flights/{flightId}": {
      "get": {
        "summary": "Get Flight",
        "description": "Get details of a specific Flight, including error messages when available. This is especially important for applications that need to diagnose failed or cancelled Flights.",
        "operationId": "getFlight",
        "tags": ["Flights"],
        "parameters": [
          {
            "name": "nestId",
            "in": "path",
            "required": true,
            "description": "The ID of the Nest that contains the Bird.",
            "style": "simple",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "birdId",
            "in": "path",
            "required": true,
            "description": "The ID of the Bird whose Flight is being retrieved.",
            "style": "simple",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "flightId",
            "in": "path",
            "required": true,
            "description": "The ID of the Flight.",
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The requested Flight.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FlightEntity"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Server Error"
          }
        }
      }
    },
    "/nests/{nestId}/birds/{birdId}/flights/{flightId}/logs": {
      "get": {
        "summary": "Get Flight logs",
        "description": "Returns Flight related events such as take-off, landing, informational logs and errors.",
        "operationId": "getFlightLogs",
        "tags": ["Flights"],
        "parameters": [
          {
            "name": "nestId",
            "in": "path",
            "required": true,
            "description": "The ID of the Nest that contains the Bird.",
            "style": "simple",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "birdId",
            "in": "path",
            "required": true,
            "description": "The ID of the Bird whose Flight logs are being listed.",
            "style": "simple",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "flightId",
            "in": "path",
            "required": true,
            "description": "The ID of the Flight whose logs are being retrieved.",
            "style": "simple",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "The zero-based page index to return.",
            "style": "form",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "The number of log items to return per page.",
            "style": "form",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "ascending",
            "in": "query",
            "description": "Whether to sort the logs in ascending order by creation time.",
            "style": "form",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "from",
            "in": "query",
            "description": "Optional start timestamp to filter logs from, in ISO 8601 format, for example 2027-10-13T16:33:46Z.",
            "style": "form",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "to",
            "in": "query",
            "description": "Optional end timestamp to filter logs to, in ISO 8601 format, for example 2027-10-13T16:33:46Z.",
            "style": "form",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A paginated list of logs for the specified Flight.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FlightLogListResponse"
                },
                "examples": {
                  "flightLifecycleAndSdkLogs": {
                    "summary": "Take-off, SDK logs and landing events",
                    "value": {
                      "items": [
                        {
                          "eventType": 2,
                          "durationInSeconds": 11,
                          "id": "019ef4c8-7d14-7f83-8b4a-0bf706d696c6",
                          "createdAt": "2026-06-23T14:00:40.468335Z",
                          "workspaceId": 682,
                          "flowInstanceId": "e18b5841-3f1a-42d9-b7bf-b47200e6d761",
                          "initiator": "Blackbird"
                        },
                        {
                          "eventType": 4,
                          "sdkLogType": "Information",
                          "stepId": "a6fa91cd-928d-4958-8237-1b75e7c5fbbe",
                          "scope": "0",
                          "id": "019ef4c8-7aae-73f8-ac1f-0f7168f6fe09",
                          "createdAt": "2026-06-23T14:00:39.854443Z",
                          "workspaceId": 682,
                          "flowInstanceId": "e18b5841-3f1a-42d9-b7bf-b47200e6d761",
                          "initiator": "Blackbird",
                          "message": "This is information log"
                        },
                        {
                          "eventType": 5,
                          "stepId": "75850698-a910-4039-a9ac-751abb34c0b4",
                          "scope": "0",
                          "errorType": 2,
                          "isSkipped": true,
                          "isRetried": false,
                          "id": "019ef4c8-7a82-74b0-bddc-a61b8787c3e4",
                          "createdAt": "2026-06-23T14:00:39.810444Z",
                          "workspaceId": 682,
                          "flowInstanceId": "e18b5841-3f1a-42d9-b7bf-b47200e6d761",
                          "initiator": "Blackbird",
                          "message": "This is expected PluginApplication exception"
                        }
                      ],
                      "totalCount": 21,
                      "page": 0,
                      "pageSize": 20
                    }
                  },
                  "errorEvents": {
                    "summary": "Error and diagnostic events",
                    "value": {
                      "items": [
                        {
                          "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
                          "createdAt": "2026-07-02T14:15:00.458Z",
                          "workspaceId": 0,
                          "flowInstanceId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
                          "initiator": "string",
                          "message": "string",
                          "eventType": 1
                        },
                        {
                          "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
                          "createdAt": "2026-07-02T14:15:00.458Z",
                          "workspaceId": 0,
                          "flowInstanceId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
                          "initiator": "string",
                          "message": "string",
                          "eventType": 2,
                          "durationInSeconds": 0
                        },
                        {
                          "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
                          "createdAt": "2026-07-02T14:15:00.458Z",
                          "workspaceId": 0,
                          "flowInstanceId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
                          "initiator": "string",
                          "message": "string",
                          "eventType": 3,
                          "eventFailedBy": "Subscription",
                          "isSkipped": true,
                          "isRetried": true
                        },
                        {
                          "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
                          "createdAt": "2026-07-02T14:15:00.458Z",
                          "workspaceId": 0,
                          "flowInstanceId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
                          "initiator": "string",
                          "message": "string",
                          "eventType": 4,
                          "sdkLogType": "Information",
                          "stepId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
                          "scope": "string"
                        },
                        {
                          "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
                          "createdAt": "2026-07-02T14:15:00.458Z",
                          "workspaceId": 0,
                          "flowInstanceId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
                          "initiator": "string",
                          "message": "string",
                          "eventType": 5,
                          "stepId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
                          "scope": "string",
                          "eventFailedBy": "Subscription",
                          "errorType": 0,
                          "isSkipped": true,
                          "isRetried": true
                        }
                      ],
                      "totalCount": 0,
                      "page": 0,
                      "pageSize": 0
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Server Error"
          }
        }
      }
    },
    "/nests/{nestId}/users": {
      "put": {
        "summary": "Add User to Nest",
        "description": "Adds a User to a Nest.",
        "operationId": "addUserToNest",
        "tags": ["Nests"],
        "parameters": [
          {
            "name": "nestId",
            "in": "path",
            "required": true,
            "description": "The ID of the Nest to which the user will be added.",
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddNestUserDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AddNestUserDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AddNestUserDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The User was successfully added to the Nest."
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Server Error"
          }
        }
      }
    },
    "/nests/{nestId}/users/{userId}": {
      "delete": {
        "summary": "Remove User from Nest",
        "description": "Removes a User from a Nest.",
        "operationId": "removeUserFromNest",
        "tags": ["Nests"],
        "parameters": [
          {
            "name": "nestId",
            "in": "path",
            "required": true,
            "description": "The ID of the Nest from which the user will be removed.",
            "style": "simple",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "userId",
            "in": "path",
            "required": true,
            "description": "The ID of the User to remove from the Nest.",
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The User was successfully removed from the Nest."
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Server Error"
          }
        }
      }
    },
    "/nests": {
      "get": {
        "summary": "Search Nests",
        "description": "Returns all Nests.",
        "operationId": "searchNests",
        "tags": ["Nests"],
        "responses": {
          "200": {
            "description": "A list of Nests.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/NestEntity"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Server Error"
          }
        }
      }
    },
    "/nests/{nestId}": {
      "get": {
        "summary": "Get Nest",
        "description": "Returns a single Nest by its ID.",
        "operationId": "getNest",
        "tags": ["Nests"],
        "parameters": [
          {
            "name": "nestId",
            "in": "path",
            "required": true,
            "description": "The ID of the Nest to retrieve.",
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The requested Nest.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NestEntity"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Server Error"
          }
        }
      }
    },
    "/notifications": {
      "get": {
        "summary": "Get Notifications",
        "description": "Returns important notifications for admin users f.e. when a connection disconnects or a Bird is automatically deactivated",
        "operationId": "getNotifications",
        "tags": ["Notifications"],
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "description": "The zero-based page index to return.",
            "style": "form",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "The number of notifications to return per page.",
            "style": "form",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "ascending",
            "in": "query",
            "description": "Whether to sort the notifications in ascending order by creation time.",
            "style": "form",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "from",
            "in": "query",
            "description": "Optional start timestamp to filter notifications from, in ISO 8601 format, for example 2027-10-13T16:33:46Z.",
            "style": "form",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "to",
            "in": "query",
            "description": "Optional end timestamp to filter notifications to, in ISO 8601 format, for example 2027-10-13T16:33:46Z.",
            "style": "form",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A paginated list of admin notifications.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotificationListResponse"
                },
                "examples": {
                  "connectionDisconnected": {
                    "summary": "Connection disconnection notifications",
                    "value": {
                      "items": [
                        {
                          "id": "019f22bd-6b5b-70de-ad71-85a4993da4b3",
                          "createdAt": "2026-07-02T12:11:06.971611Z",
                          "workspaceId": 726,
                          "entityId": 18287,
                          "entityName": "Release 5.8.0",
                          "entityType": "Connection",
                          "eventType": "ConnectionDisconnected",
                          "isSeen": true,
                          "message": "Connection check failed and all retries were exhausted. Please reconnect."
                        },
                        {
                          "id": "019f22bc-2d5c-7e7b-ab7e-011449c05004",
                          "createdAt": "2026-07-02T12:09:45.564406Z",
                          "workspaceId": 726,
                          "entityId": 18287,
                          "entityName": "Release 5.8.0",
                          "entityType": "Connection",
                          "eventType": "ConnectionDisconnected",
                          "isSeen": true,
                          "message": "Connection check failed. Retrying connection, please wait."
                        },
                        {
                          "id": "019f22b0-69bb-79a6-a85a-0e587b64484d",
                          "createdAt": "2026-07-02T11:56:54.587375Z",
                          "workspaceId": 726,
                          "entityId": 14680,
                          "entityName": "Hubspot Smoke 2",
                          "entityType": "Connection",
                          "eventType": "ConnectionDisconnected",
                          "isSeen": true,
                          "message": "Connection check failed. Retrying connection, please wait."
                        }
                      ],
                      "totalCount": 308,
                      "page": 0,
                      "pageSize": 10
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Server Error"
          }
        }
      }
    },
    "/users": {
      "get": {
        "summary": "Search Users",
        "description": "Returns all Users.",
        "operationId": "searchUsers",
        "tags": ["Users"],
        "responses": {
          "200": {
            "description": "A list of Users.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/UserEntity"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Server Error"
          }
        }
      }
    },
    "/users/{userId}": {
      "get": {
        "summary": "Get User",
        "description": "Returns a single User by its ID.",
        "operationId": "getUser",
        "tags": ["Users"],
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "required": true,
            "description": "The ID of the User to retrieve.",
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The requested User.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserEntity"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Server Error"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AddNestUserDto": {
        "type": "object",
        "properties": {
          "userId": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "BirdEntity": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "nestId": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": ["active", "unpublished", "suspended"]
          },
          "triggerType": {
            "type": "string",
            "enum": ["manual", "event", "scheduled"]
          },
          "isPublished": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "BirdLogEntity": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "workspaceId": {
            "type": "integer",
            "format": "int32"
          },
          "workflowId": {
            "type": "integer",
            "format": "int32"
          },
          "eventType": {
            "type": "string"
          },
          "message": {
            "type": "string",
            "nullable": true
          },
          "eventFailedBy": {
            "type": "string",
            "nullable": true
          },
          "errorType": {
            "type": "string",
            "nullable": true
          },
          "initiator": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "BirdLogListResponse": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BirdLogEntity"
            }
          },
          "totalCount": {
            "type": "integer",
            "format": "int32"
          },
          "page": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "FlightEntity": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "birdId": {
            "type": "string"
          },
          "nestId": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": ["succeeded", "failed", "cancelled", "active"]
          },
          "errorMessages": {
            "type": "string",
            "description": "Error details for the Flight when available. This field is especially useful for applications that need to diagnose failed or cancelled Flights.",
            "nullable": true
          },
          "startDate": {
            "type": "string",
            "format": "date-time"
          },
          "duration": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "FlightLogEntity": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "workspaceId": {
            "type": "integer",
            "format": "int32"
          },
          "flowInstanceId": {
            "type": "string"
          },
          "initiator": {
            "type": "string",
            "nullable": true
          },
          "message": {
            "type": "string",
            "nullable": true
          },
          "eventType": {
            "type": "integer",
            "format": "int32"
          },
          "durationInSeconds": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "eventFailedBy": {
            "type": "string",
            "nullable": true
          },
          "isSkipped": {
            "type": "boolean",
            "nullable": true
          },
          "isRetried": {
            "type": "boolean",
            "nullable": true
          },
          "sdkLogType": {
            "type": "string",
            "nullable": true
          },
          "stepId": {
            "type": "string",
            "nullable": true
          },
          "scope": {
            "type": "string",
            "nullable": true
          },
          "errorType": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "FlightLogListResponse": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FlightLogEntity"
            }
          },
          "totalCount": {
            "type": "integer",
            "format": "int32"
          },
          "page": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "NestEntity": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "members": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserEntity"
            }
          }
        },
        "additionalProperties": false
      },
      "NotificationEntity": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "workspaceId": {
            "type": "integer",
            "format": "int32"
          },
          "entityId": {
            "type": "integer",
            "format": "int32"
          },
          "entityName": {
            "type": "string"
          },
          "entityType": {
            "type": "string"
          },
          "eventType": {
            "type": "string"
          },
          "isSeen": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "NotificationListResponse": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NotificationEntity"
            }
          },
          "totalCount": {
            "type": "integer",
            "format": "int32"
          },
          "page": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "UserEntity": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "firstName": {
            "type": "string"
          },
          "lastName": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "isActive": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "ProblemDetails": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "detail": {
            "type": "string",
            "nullable": true
          },
          "instance": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": {}
      }
    },
    "securitySchemes": {
      "Token": {
        "type": "apiKey",
        "description": "Add your token to the authorization header as the raw key only. Do not prefix it with \"Bearer \".\n\nE.g. Authorization: 1ab2c3e4",
        "name": "Authorization",
        "in": "header"
      }
    }
  },
  "security": [
    {
      "Token": []
    }
  ]
}
