---
title: "Create a connector data product descriptor"
method: POST
path: "/data/products"
tags: ["ConnectorDataProducts"]
---

# Create a connector data product descriptor

`POST /data/products`

Creates or replaces a connector data product descriptor. The descriptor must reference an
existing logical connection binding, matching physical connector instance, known dataset
resource descriptors, at least one transfer type, and at least one catalog offer policy ref.

## Request body

- ConnectorDataProductDescriptorCreateRequest — Request to persist a connector data product descriptor.
  - `descriptor` ConnectorDataProductDescriptor, required — Dataspace/data-use-contract-ready descriptor for a product exposed from a connector route or logical binding. It carries provider/consumer Party refs, dataset resource refs, field scopes, governance scope, transfer type, and catalog offer/policy refs without implementing DSP/DCAT wire behavior.
    - `dataProductId` string, required — Stable identifier of a connector data product descriptor.
    - `providerParty` PartyRef, required — Neutral Party reference carried by EDK connector envelopes without importing the VDX Party repository.
      - `partyId` string
      - `externalId` string
      - `partyType` string
      - `displayName` string
      - `metadata` StringMap — Small string-only metadata map for labels, ownership, routing hints, and implementation-specific annotations. Use first-class fields for contractually significant data.
    - `consumerParty` PartyRef — Neutral Party reference carried by EDK connector envelopes without importing the VDX Party repository.
      - `partyId` string
      - `externalId` string
      - `partyType` string
      - `displayName` string
      - `metadata` StringMap — Small string-only metadata map for labels, ownership, routing hints, and implementation-specific annotations. Use first-class fields for contractually significant data.
    - `physicalConnectorInstanceId` string, uuid, required — Stable platform identifier for a configured connector instance.
    - `logicalConnectionBindingId` string, required — Stable identifier of a tenant, OU, brand, legal-entity, or channel usage binding for a physical connector instance.
    - `datasetResourceIds` ResourceDescriptorId[], required
    - `title` string, required
    - `description` string
    - `version` string
    - `canonicalFieldScopes` string[]
    - `schemaRefs` string[]
    - `freshness` string
    - `quality` string
    - `distributionTransferTypes` string[], required
    - `residency` string
    - `classification` string
    - `governanceScope` string
    - `catalogOfferRefs` ConnectorCatalogOfferRef[], required
      - `offerId` string, required — Stable catalog offer identifier associated with a connector data product.
      - `policy` ConnectorOdrlPolicyRef, required — ODRL policy reference associated with a data product catalog offer.
        - `profileId` string, required
        - `policyType` 'SET' | 'OFFER' | 'AGREEMENT', required — ODRL policy reference type.
        - `policyUid` string, required
        - `targetRefs` string[]
        - `assigner` PartyRef — Neutral Party reference carried by EDK connector envelopes without importing the VDX Party repository.
          - `partyId` string
          - `externalId` string
          - `partyType` string
          - `displayName` string
          - `metadata` StringMap — Small string-only metadata map for labels, ownership, routing hints, and implementation-specific annotations. Use first-class fields for contractually significant data.
        - `assignee` PartyRef — Neutral Party reference carried by EDK connector envelopes without importing the VDX Party repository.
          - `partyId` string
          - `externalId` string
          - `partyType` string
          - `displayName` string
          - `metadata` StringMap — Small string-only metadata map for labels, ownership, routing hints, and implementation-specific annotations. Use first-class fields for contractually significant data.
        - `permissionRefs` string[]
        - `prohibitionRefs` string[]
        - `dutyRefs` string[]
      - `projectionHint` string
    - `partyAnchors` ConnectorPartyAnchorSet — Party, relationship, and projection candidates attached to connector invocation/run lineage.
      - `anchors` ConnectorPartyAnchor[]
        - `role` string
        - `party` PartyRef — Neutral Party reference carried by EDK connector envelopes without importing the VDX Party repository.
          - `partyId` string
          - `externalId` string
          - `partyType` string
          - `displayName` string
          - `metadata` StringMap — Small string-only metadata map for labels, ownership, routing hints, and implementation-specific annotations. Use first-class fields for contractually significant data.
        - `relationships` object[]
      - `relationshipCandidates` object[]
      - `projectionCandidates` object[]

## Response `201`

Connector data product descriptor created.

- ConnectorDataProductDescriptor — Dataspace/data-use-contract-ready descriptor for a product exposed from a connector route or logical binding. It carries provider/consumer Party refs, dataset resource refs, field scopes, governance scope, transfer type, and catalog offer/policy refs without implementing DSP/DCAT wire behavior.
  - `dataProductId` string, required — Stable identifier of a connector data product descriptor.
  - `providerParty` PartyRef, required — Neutral Party reference carried by EDK connector envelopes without importing the VDX Party repository.
    - `partyId` string
    - `externalId` string
    - `partyType` string
    - `displayName` string
    - `metadata` StringMap — Small string-only metadata map for labels, ownership, routing hints, and implementation-specific annotations. Use first-class fields for contractually significant data.
  - `consumerParty` PartyRef — Neutral Party reference carried by EDK connector envelopes without importing the VDX Party repository.
    - `partyId` string
    - `externalId` string
    - `partyType` string
    - `displayName` string
    - `metadata` StringMap — Small string-only metadata map for labels, ownership, routing hints, and implementation-specific annotations. Use first-class fields for contractually significant data.
  - `physicalConnectorInstanceId` string, uuid, required — Stable platform identifier for a configured connector instance.
  - `logicalConnectionBindingId` string, required — Stable identifier of a tenant, OU, brand, legal-entity, or channel usage binding for a physical connector instance.
  - `datasetResourceIds` ResourceDescriptorId[], required
  - `title` string, required
  - `description` string
  - `version` string
  - `canonicalFieldScopes` string[]
  - `schemaRefs` string[]
  - `freshness` string
  - `quality` string
  - `distributionTransferTypes` string[], required
  - `residency` string
  - `classification` string
  - `governanceScope` string
  - `catalogOfferRefs` ConnectorCatalogOfferRef[], required
    - `offerId` string, required — Stable catalog offer identifier associated with a connector data product.
    - `policy` ConnectorOdrlPolicyRef, required — ODRL policy reference associated with a data product catalog offer.
      - `profileId` string, required
      - `policyType` 'SET' | 'OFFER' | 'AGREEMENT', required — ODRL policy reference type.
      - `policyUid` string, required
      - `targetRefs` string[]
      - `assigner` PartyRef — Neutral Party reference carried by EDK connector envelopes without importing the VDX Party repository.
        - `partyId` string
        - `externalId` string
        - `partyType` string
        - `displayName` string
        - `metadata` StringMap — Small string-only metadata map for labels, ownership, routing hints, and implementation-specific annotations. Use first-class fields for contractually significant data.
      - `assignee` PartyRef — Neutral Party reference carried by EDK connector envelopes without importing the VDX Party repository.
        - `partyId` string
        - `externalId` string
        - `partyType` string
        - `displayName` string
        - `metadata` StringMap — Small string-only metadata map for labels, ownership, routing hints, and implementation-specific annotations. Use first-class fields for contractually significant data.
      - `permissionRefs` string[]
      - `prohibitionRefs` string[]
      - `dutyRefs` string[]
    - `projectionHint` string
  - `partyAnchors` ConnectorPartyAnchorSet — Party, relationship, and projection candidates attached to connector invocation/run lineage.
    - `anchors` ConnectorPartyAnchor[]
      - `role` string
      - `party` PartyRef — Neutral Party reference carried by EDK connector envelopes without importing the VDX Party repository.
        - `partyId` string
        - `externalId` string
        - `partyType` string
        - `displayName` string
        - `metadata` StringMap — Small string-only metadata map for labels, ownership, routing hints, and implementation-specific annotations. Use first-class fields for contractually significant data.
      - `relationships` object[]
    - `relationshipCandidates` object[]
    - `projectionCandidates` object[]

## Other responses

- `400` — Validation error.
- `401` — Authentication is required.

---

[API](https://skmtc.net/sphereon-opensource/apis/connector-integration-profile-api.md) · [All operations](https://skmtc.net/sphereon-opensource/apis/connector-integration-profile-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/sphereon-opensource/connector-integration-profile-api/revisions/60cb8c70871b/schema)
