---
title: "Get Source Connector Schema"
method: GET
path: "/sources/connectors/{code}/schema"
tags: ["Sources"]
---

# Get Source Connector Schema

`GET /sources/connectors/{code}/schema`

## Request

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

JSON Forms form contract for an API-source connector.

Returns a clean `json_schema` (the config model's data schema — standard keywords only) plus
a `ui_schema`: a JSON Forms UISchema grouping the fields into one `Category` per tab, each
`Control` carrying its render hints in `options`. Legacy (Kafka Connect) connectors keep the
mapping catalog and return **404** here.

## Path parameters

- `code` string, required

## Response `200`

Successful Response

- SourceConnectorSchemaContract: An API source's form contract: the source of truth for its `config`.
  - `connector` string, required: The connector code.
  - `entity_json_schema` object, required: JSON Schema of the shared entity fields (`name`).
  - `entity_ui_schema` object, required: JSON Forms UISchema for the entity fields.
  - `json_schema` object, required: JSON Schema of `config`: its fields, the `auth_mode` choices and which fields are required.
  - `ui_schema` object, required: JSON Forms UISchema: one Category per tab, render hints in options.
  - `capabilities` ConnectorCapabilities, required: What this deployment offers for the connector; a client shows an affordance only where it is true.
    - `available` boolean, required: False where no new source of this connector can be created here; see unavailable_reason.
    - `validate_connection` boolean, required: POST /sources/connectors/{code}/validate tests the credential.
    - `validate_resources` boolean, required: The connection test also checks each selected resource.
    - `oauth_connect` boolean, required: The Connect (OAuth) flow can run here: POST .../oauth/start.
    - `discover_objects` boolean, required: GET /sources/{source_id}/available-objects lists custom objects.
    - `discover_properties` boolean, required: GET /sources/{source_id}/available-properties lists properties.
    - `discover_accounts` boolean, required: POST /sources/connectors/{code}/available-accounts lists the accounts the submitted credentials reach, for the controls whose options name `discovered_accounts`.
  - `oauth` OAuthContract, required: The Connect flow's client-visible shape; null on the contract when the vendor has none or it is not provisioned.
    - `environments` OAuthEnvironmentChoice[], required: Authorization environments to choose between.
      - `key` string, required: The value to send as `environment` to POST .../oauth/start.
      - `label` string, required: The vendor's label for this environment.
    - `default_environment` string, nullable, required: The environment used when `environment` is omitted.
    - `host_field` string, nullable: Present when the authorization host is the customer's own account (Zendesk): the config field whose value is sent as `environment`.
    - `client_fields` string[], nullable: Present when the flow runs as the customer's own OAuth client (Google Ads): the config fields sent to POST .../oauth/start as `client_id` and `client_secret`.
    - `redirect_uri` string, nullable: With client_fields: the callback URL the customer registers on their OAuth client.
  - `topic_resource_field` string, required: The config field whose entries each become one topic.
  - `unavailable_reason` string, nullable, required: Set exactly when capabilities.available is false: why no new source can be created here.

## 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/connectors/:code/schema/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)
