openapi: 3.1.0 info: title: Soveren Object API version: v1 description: >- The Soveren Object API exposes the data-security inventory Soveren discovers across your Kubernetes / cloud environment: clusters, assets (services and workloads), endpoints, detected data types, and the data flows between them, plus data-store inventories for S3, Kafka, and SQL databases. Read-only. Authenticate with a bearer token generated in the Soveren app under Integrations. This specification was reconstructed faithfully from Soveren's published Object API reference (https://docs.soveren.io/en/stable/integration/api/ref/); response schemas are modeled as generic objects where the reference does not publish field-level detail. x-apisjson-generated: '2026-07-21' x-apisjson-method: searched x-apisjson-source: https://docs.soveren.io/en/stable/integration/api/ref/ servers: - url: https://api.soveren.io description: Soveren Object API production host security: - bearerAuth: [] tags: - name: Data Types - name: Assets - name: Endpoints - name: S3 - name: Kafka - name: SQL DB paths: /api/v1/data-types: get: operationId: get-data-types summary: List detected data types description: Returns the catalog of sensitive data types Soveren has detected across the environment. tags: [Data Types] responses: '200': { $ref: '#/components/responses/ObjectList' } '401': { $ref: '#/components/responses/Unauthorized' } /api/v1/clusters: get: operationId: get-clusters summary: List clusters description: Returns the Kubernetes clusters where Soveren sensors are deployed. tags: [Assets] responses: '200': { $ref: '#/components/responses/ObjectList' } '401': { $ref: '#/components/responses/Unauthorized' } /api/v1/assets: get: operationId: get-assets summary: List assets description: Returns discovered assets (services and workloads), optionally filtered by cluster and namespace. tags: [Assets] parameters: - { $ref: '#/components/parameters/limit' } - { $ref: '#/components/parameters/offset' } - name: cluster_id in: query schema: { type: string } - name: namespace in: query schema: { type: string } responses: '200': { $ref: '#/components/responses/ObjectList' } '401': { $ref: '#/components/responses/Unauthorized' } /api/v1/assets/{id}: get: operationId: get-asset summary: Get an asset tags: [Assets] parameters: - { $ref: '#/components/parameters/id' } responses: '200': { $ref: '#/components/responses/Object' } '401': { $ref: '#/components/responses/Unauthorized' } '404': { $ref: '#/components/responses/NotFound' } /api/v1/assets/{id}/data-flows: get: operationId: get-asset-data-flows summary: List data flows for an asset description: Returns the data flows (senders/receivers and the data types moving between them) for a given asset. tags: [Assets] parameters: - { $ref: '#/components/parameters/id' } - { $ref: '#/components/parameters/limit' } - { $ref: '#/components/parameters/offset' } responses: '200': { $ref: '#/components/responses/ObjectList' } '401': { $ref: '#/components/responses/Unauthorized' } '404': { $ref: '#/components/responses/NotFound' } /api/v1/assets/{id}/endpoints: get: operationId: get-asset-endpoints summary: List endpoints for an asset tags: [Endpoints] parameters: - { $ref: '#/components/parameters/id' } - { $ref: '#/components/parameters/limit' } - { $ref: '#/components/parameters/offset' } responses: '200': { $ref: '#/components/responses/ObjectList' } '401': { $ref: '#/components/responses/Unauthorized' } '404': { $ref: '#/components/responses/NotFound' } /api/v1/endpoints/{id}: get: operationId: get-endpoint summary: Get an endpoint description: Returns a single endpoint (a hostname / method / URL combination discovered on an asset). tags: [Endpoints] parameters: - { $ref: '#/components/parameters/id' } responses: '200': { $ref: '#/components/responses/Object' } '401': { $ref: '#/components/responses/Unauthorized' } '404': { $ref: '#/components/responses/NotFound' } /api/v1/s3/buckets: get: operationId: list-s3-buckets summary: List S3 buckets tags: [S3] parameters: - { $ref: '#/components/parameters/offset' } - { $ref: '#/components/parameters/limit' } - name: name in: query schema: { type: string } responses: '200': { $ref: '#/components/responses/ObjectList' } '401': { $ref: '#/components/responses/Unauthorized' } /api/v1/s3/buckets/{id}: get: operationId: get-s3-bucket summary: Get an S3 bucket tags: [S3] parameters: - { $ref: '#/components/parameters/id' } responses: '200': { $ref: '#/components/responses/Object' } '401': { $ref: '#/components/responses/Unauthorized' } '404': { $ref: '#/components/responses/NotFound' } /api/v1/kafka/instances: get: operationId: list-kafka-instances summary: List Kafka instances tags: [Kafka] parameters: - { $ref: '#/components/parameters/offset' } - { $ref: '#/components/parameters/limit' } responses: '200': { $ref: '#/components/responses/ObjectList' } '401': { $ref: '#/components/responses/Unauthorized' } /api/v1/kafka/instances/{id}: get: operationId: get-kafka-instance summary: Get a Kafka instance tags: [Kafka] parameters: - { $ref: '#/components/parameters/id' } responses: '200': { $ref: '#/components/responses/Object' } '401': { $ref: '#/components/responses/Unauthorized' } '404': { $ref: '#/components/responses/NotFound' } /api/v1/kafka/topics: get: operationId: list-kafka-topics summary: List Kafka topics tags: [Kafka] parameters: - { $ref: '#/components/parameters/offset' } - { $ref: '#/components/parameters/limit' } - name: instance_id in: query schema: { type: string } responses: '200': { $ref: '#/components/responses/ObjectList' } '401': { $ref: '#/components/responses/Unauthorized' } /api/v1/kafka/topics/{id}: get: operationId: get-kafka-topic summary: Get a Kafka topic tags: [Kafka] parameters: - { $ref: '#/components/parameters/id' } responses: '200': { $ref: '#/components/responses/Object' } '401': { $ref: '#/components/responses/Unauthorized' } '404': { $ref: '#/components/responses/NotFound' } /api/v1/sql-db/instances: get: operationId: list-sqldb-instances summary: List SQL database instances tags: [SQL DB] parameters: - { $ref: '#/components/parameters/offset' } - { $ref: '#/components/parameters/limit' } responses: '200': { $ref: '#/components/responses/ObjectList' } '401': { $ref: '#/components/responses/Unauthorized' } /api/v1/sql-db/instances/{id}: get: operationId: get-sqldb-instance summary: Get a SQL database instance tags: [SQL DB] parameters: - { $ref: '#/components/parameters/id' } responses: '200': { $ref: '#/components/responses/Object' } '401': { $ref: '#/components/responses/Unauthorized' } '404': { $ref: '#/components/responses/NotFound' } /api/v1/sql-db/databases: get: operationId: list-sqldb-databases summary: List SQL databases tags: [SQL DB] parameters: - { $ref: '#/components/parameters/offset' } - { $ref: '#/components/parameters/limit' } - name: instance_id in: query schema: { type: string } responses: '200': { $ref: '#/components/responses/ObjectList' } '401': { $ref: '#/components/responses/Unauthorized' } /api/v1/sql-db/databases/{id}: get: operationId: get-sqldb-database summary: Get a SQL database tags: [SQL DB] parameters: - { $ref: '#/components/parameters/id' } responses: '200': { $ref: '#/components/responses/Object' } '401': { $ref: '#/components/responses/Unauthorized' } '404': { $ref: '#/components/responses/NotFound' } /api/v1/sql-db/databases/{id}/tables: get: operationId: list-sqldb-tables summary: List tables in a SQL database tags: [SQL DB] parameters: - { $ref: '#/components/parameters/id' } - { $ref: '#/components/parameters/limit' } - { $ref: '#/components/parameters/offset' } responses: '200': { $ref: '#/components/responses/ObjectList' } '401': { $ref: '#/components/responses/Unauthorized' } '404': { $ref: '#/components/responses/NotFound' } components: securitySchemes: bearerAuth: type: http scheme: bearer description: Bearer token generated in the Soveren app under Integrations - External API. parameters: id: name: id in: path required: true schema: { type: string } limit: name: limit in: query description: Maximum number of items to return. schema: { type: integer } offset: name: offset in: query description: Number of items to skip for pagination. schema: { type: integer } responses: Object: description: A single object. content: application/json: schema: { type: object } ObjectList: description: A paginated list of objects. content: application/json: schema: type: object properties: data: type: array items: { type: object } Unauthorized: description: Missing or invalid bearer token. NotFound: description: The requested object was not found.