Source

Add a source with the given site_id, template_id, name and config. It returns the created object including fields like id, created_at, updated_at.

post

Update an existing source.

Authorizations
authorizationstringRequired

JWT Authorization header using the Bearer scheme. Example: 'Bearer {token}'

Body
Responses
200

A successful response.

application/json
post
/gateway/v1/source
POST /gateway/v1/source HTTP/1.1
Host: p01-api.observo.ai
authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 785

{
  "source": {
    "id": 1,
    "siteId": 1,
    "templateId": 1,
    "templateVersion": 1,
    "templateName": "text",
    "name": "text",
    "description": "text",
    "config": {},
    "status": "NS_DEFAULT",
    "created": "2025-11-28T07:07:28.151Z",
    "updated": "2025-11-28T07:07:28.151Z",
    "createdBy": "text",
    "updatedBy": "text",
    "type": "DEFAULT_TYPE",
    "origin": "NODE_ORIGIN_DEFAULT",
    "archivalInfo": {
      "sinkId": 1,
      "sinkName": "text",
      "sinkType": "DEFAULT_TYPE",
      "pipelineId": 1,
      "pipelineName": "text",
      "pipelineStatus": "DEFAULT"
    },
    "logFormat": "LOG_FORMAT_UNSPECIFIED",
    "preprocessorConfig": {},
    "port": 1,
    "pushBased": true,
    "pushSourceAddress": "text",
    "k8sInternalSvcUrl": "text",
    "siteFilenames": [
      "text"
    ],
    "sourceConfigs": [
      {
        "id": 1,
        "sourceId": 1,
        "templateId": 1,
        "templateName": "text",
        "category": "DEFAULT",
        "config": {},
        "position": 1,
        "templateVersion": 1
      }
    ],
    "userVisible": true
  }
}
{
  "status": {
    "code": "OK",
    "errorMessage": "text",
    "userMessageCode": "DEFAULT"
  },
  "source": {
    "id": 1,
    "siteId": 1,
    "templateId": 1,
    "templateVersion": 1,
    "templateName": "text",
    "name": "text",
    "description": "text",
    "config": {},
    "status": "NS_DEFAULT",
    "created": "2025-11-28T07:07:28.151Z",
    "updated": "2025-11-28T07:07:28.151Z",
    "createdBy": "text",
    "updatedBy": "text",
    "type": "DEFAULT_TYPE",
    "origin": "NODE_ORIGIN_DEFAULT",
    "archivalInfo": {
      "sinkId": 1,
      "sinkName": "text",
      "sinkType": "DEFAULT_TYPE",
      "pipelineId": 1,
      "pipelineName": "text",
      "pipelineStatus": "DEFAULT"
    },
    "logFormat": "LOG_FORMAT_UNSPECIFIED",
    "preprocessorConfig": {},
    "port": 1,
    "pushBased": true,
    "pushSourceAddress": "text",
    "k8sInternalSvcUrl": "text",
    "siteFilenames": [
      "text"
    ],
    "sourceConfigs": [
      {
        "id": 1,
        "sourceId": 1,
        "templateId": 1,
        "templateName": "text",
        "category": "DEFAULT",
        "config": {},
        "position": 1,
        "templateVersion": 1
      }
    ],
    "userVisible": true
  }
}

Updates a source with the given id with the site_id, template_id, name, status and config provided. It returns the updated object including fields like id, created_at, updated_at. If any change has happened to the object in between, this call should fail. previous_update_time must be set to the last available site's update time. This ensures that the object hasn't updated in between.

patch

Update an existing source.

Authorizations
authorizationstringRequired

JWT Authorization header using the Bearer scheme. Example: 'Bearer {token}'

Body
lastUpdatedstring · date-timeOptional
Responses
200

A successful response.

application/json
patch
/gateway/v1/source
PATCH /gateway/v1/source HTTP/1.1
Host: p01-api.observo.ai
authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 826

{
  "source": {
    "id": 1,
    "siteId": 1,
    "templateId": 1,
    "templateVersion": 1,
    "templateName": "text",
    "name": "text",
    "description": "text",
    "config": {},
    "status": "NS_DEFAULT",
    "created": "2025-11-28T07:07:28.151Z",
    "updated": "2025-11-28T07:07:28.151Z",
    "createdBy": "text",
    "updatedBy": "text",
    "type": "DEFAULT_TYPE",
    "origin": "NODE_ORIGIN_DEFAULT",
    "archivalInfo": {
      "sinkId": 1,
      "sinkName": "text",
      "sinkType": "DEFAULT_TYPE",
      "pipelineId": 1,
      "pipelineName": "text",
      "pipelineStatus": "DEFAULT"
    },
    "logFormat": "LOG_FORMAT_UNSPECIFIED",
    "preprocessorConfig": {},
    "port": 1,
    "pushBased": true,
    "pushSourceAddress": "text",
    "k8sInternalSvcUrl": "text",
    "siteFilenames": [
      "text"
    ],
    "sourceConfigs": [
      {
        "id": 1,
        "sourceId": 1,
        "templateId": 1,
        "templateName": "text",
        "category": "DEFAULT",
        "config": {},
        "position": 1,
        "templateVersion": 1
      }
    ],
    "userVisible": true
  },
  "lastUpdated": "2025-11-28T07:07:28.151Z"
}
{
  "status": {
    "code": "OK",
    "errorMessage": "text",
    "userMessageCode": "DEFAULT"
  },
  "source": {
    "id": 1,
    "siteId": 1,
    "templateId": 1,
    "templateVersion": 1,
    "templateName": "text",
    "name": "text",
    "description": "text",
    "config": {},
    "status": "NS_DEFAULT",
    "created": "2025-11-28T07:07:28.151Z",
    "updated": "2025-11-28T07:07:28.151Z",
    "createdBy": "text",
    "updatedBy": "text",
    "type": "DEFAULT_TYPE",
    "origin": "NODE_ORIGIN_DEFAULT",
    "archivalInfo": {
      "sinkId": 1,
      "sinkName": "text",
      "sinkType": "DEFAULT_TYPE",
      "pipelineId": 1,
      "pipelineName": "text",
      "pipelineStatus": "DEFAULT"
    },
    "logFormat": "LOG_FORMAT_UNSPECIFIED",
    "preprocessorConfig": {},
    "port": 1,
    "pushBased": true,
    "pushSourceAddress": "text",
    "k8sInternalSvcUrl": "text",
    "siteFilenames": [
      "text"
    ],
    "sourceConfigs": [
      {
        "id": 1,
        "sourceId": 1,
        "templateId": 1,
        "templateName": "text",
        "category": "DEFAULT",
        "config": {},
        "position": 1,
        "templateVersion": 1
      }
    ],
    "userVisible": true
  }
}

List all source templates. If site_ids are specified, returns only templates for sources in the given sites. If include_config_format is set, will return config formats for each of the templates.

get

List templates for available source types.

Authorizations
authorizationstringRequired

JWT Authorization header using the Bearer scheme. Example: 'Bearer {token}'

Query parameters
includeConfigFormatbooleanOptional

Whether to include config format in return value.

idsinteger · uint64[]Optional

Filter on source template IDs.

displayNamesstring[]Optional

Filter on source template display name.

versionsinteger · uint64[]Optional

Filter on source template versions.

pagination.offsetinteger · int64Optional
pagination.limitinteger · int64Optional
pagination.totalCountinteger · int64Optional
pagination.ordering.fieldNamestringOptional
pagination.ordering.descendingbooleanOptional
Responses
200

A successful response.

application/json
get
/gateway/v1/source-templates
GET /gateway/v1/source-templates HTTP/1.1
Host: p01-api.observo.ai
authorization: YOUR_API_KEY
Accept: */*
{
  "sourceTemplates": [
    {
      "id": 1,
      "type": "DEFAULT_TYPE",
      "displayName": "text",
      "configFormat": {},
      "version": 1
    }
  ],
  "status": {
    "code": "OK",
    "errorMessage": "text",
    "userMessageCode": "DEFAULT"
  },
  "pagination": {
    "offset": 1,
    "limit": 1,
    "totalCount": 1,
    "ordering": {
      "fieldName": "text",
      "descending": true
    }
  }
}

List all sources, filtered based on site_ids, source_ids and status. This API is paginated and returns values [offset, offset + page_size). site_ids is mandatory. Source's config is returned if include_config is set. Filters out deleted sources, unless source_ids or statuses provided.

get

List all data sources.

Authorizations
authorizationstringRequired

JWT Authorization header using the Bearer scheme. Example: 'Bearer {token}'

Query parameters
siteIdsinteger · uint64[]Optional
sourceIdsinteger · uint64[]Optional
templateIdsinteger · uint64[]Optional
includeConfigbooleanOptional

Whether to include config in return value.

pagination.offsetinteger · int64Optional
pagination.limitinteger · int64Optional
pagination.totalCountinteger · int64Optional
pagination.ordering.fieldNamestringOptional
pagination.ordering.descendingbooleanOptional
namesstring[]Optional

Filter on source display name.

Responses
200

A successful response.

application/json
get
/gateway/v1/sources
GET /gateway/v1/sources HTTP/1.1
Host: p01-api.observo.ai
authorization: YOUR_API_KEY
Accept: */*
{
  "status": {
    "code": "OK",
    "errorMessage": "text",
    "userMessageCode": "DEFAULT"
  },
  "sources": [
    {
      "id": 1,
      "siteId": 1,
      "templateId": 1,
      "templateVersion": 1,
      "templateName": "text",
      "name": "text",
      "description": "text",
      "config": {},
      "status": "NS_DEFAULT",
      "created": "2025-11-28T07:07:28.151Z",
      "updated": "2025-11-28T07:07:28.151Z",
      "createdBy": "text",
      "updatedBy": "text",
      "type": "DEFAULT_TYPE",
      "origin": "NODE_ORIGIN_DEFAULT",
      "archivalInfo": {
        "sinkId": 1,
        "sinkName": "text",
        "sinkType": "DEFAULT_TYPE",
        "pipelineId": 1,
        "pipelineName": "text",
        "pipelineStatus": "DEFAULT"
      },
      "logFormat": "LOG_FORMAT_UNSPECIFIED",
      "preprocessorConfig": {},
      "port": 1,
      "pushBased": true,
      "pushSourceAddress": "text",
      "k8sInternalSvcUrl": "text",
      "siteFilenames": [
        "text"
      ],
      "sourceConfigs": [
        {
          "id": 1,
          "sourceId": 1,
          "templateId": 1,
          "templateName": "text",
          "category": "DEFAULT",
          "config": {},
          "position": 1,
          "templateVersion": 1
        }
      ],
      "userVisible": true
    }
  ],
  "pagination": {
    "offset": 1,
    "limit": 1,
    "totalCount": 1,
    "ordering": {
      "fieldName": "text",
      "descending": true
    }
  }
}

Delete a source by ID

delete

Deletes the source with the specified ID

Authorizations
authorizationstringRequired

JWT Authorization header using the Bearer scheme. Example: 'Bearer {token}'

Path parameters
sourceIdinteger · uint64Required

ID of the source to delete

Responses
200

Source deleted successfully

application/json
delete
/gateway/v1/source/{sourceId}
DELETE /gateway/v1/source/{sourceId} HTTP/1.1
Host: p01-api.observo.ai
authorization: YOUR_API_KEY
Accept: */*
{
  "status": {
    "code": "OK",
    "errorMessage": "text",
    "userMessageCode": "DEFAULT"
  }
}

Last updated

Was this helpful?