---
title: "List Source Available Properties"
method: GET
path: "/sources/{source_id}/available-properties"
tags: ["Sources"]
---

# List Source Available Properties

`GET /sources/{source_id}/available-properties`

## Request

- Base URL: `https://api.streamkap.com`
- URL: `https://api.streamkap.com/sources/{source_id}/available-properties`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/streamkap/apis/streamkap-rest-api/docs/sources/:source_id/available-properties/get.ts> (a function with typed inputs; its response is checked against the schema)

List the properties a source's objects expose, so it can be narrowed to just the ones wanted.

Scoped to an existing API source; its stored token is used server-side to read the vendor's property
catalogs, and the objects read are the ones the source stores. Source-scoped on purpose, exactly as
custom-object discovery is: the default is to sync every property, so the create form never needs this
picker — narrowing is a refinement on a source that already exists.

Takes no object parameter: the selection it feeds applies to every object the source syncs, so the
result is their union, each property naming which of them expose it. A source whose objects have no
property catalog reads as a 400 with the reason, not a 500.

## Path parameters

- `source_id` string, required

## Response `200`

Successful Response

- DiscoveredProperty[]
  - `name` string, required
  - `label` string, nullable
  - `type` string, nullable
  - `resources` string[]

## Other responses

- `422`: Validation Error

## Changes

- **2026-10-01** `50e54c2e65f2`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/streamkap/apis/streamkap-rest-api/changes/sources/:source_id/available-properties/get.md)

---

[API](https://skmtc.dev/streamkap/apis/streamkap-rest-api.md) - [All operations](https://skmtc.dev/streamkap/apis/streamkap-rest-api/llms.txt) - [OpenAPI document](https://skmtc.dev/streamkap/apis/streamkap-rest-api/revisions/56dda39bb53c?raw)
