---
title: "Create a route exposure grant"
method: POST
path: "/route/exposures/{exposureDescriptorId}/grants"
tags: ["RouteExposures"]
---

# Create a route exposure grant

`POST /route/exposures/{exposureDescriptorId}/grants`

## Path parameters

- `exposureDescriptorId` string, required — Stable identifier of an externally callable route exposure descriptor.

## Request body

- RouteExposureGrantCreateRequest
  - `callerParty` 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.
  - `grantedBy` 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.
  - `allowedAuthMethods` string[]
  - `allowedOperations` OperationKind[]
  - `status` 'ACTIVE' | 'SUSPENDED' | 'REVOKED' | 'EXPIRED'
  - `validFrom` string, date-time
  - `validUntil` string, date-time
  - `maxUses` integer
  - `throttlePolicy` RouteExposureThrottlePolicy
    - `maxRequests` integer, required
    - `windowSeconds` integer, required
    - `throttleKey` string
  - `metadata` object

## Response `201`

Route exposure grant created.

- RouteExposureGrant
  - `grantId` string, required — Stable identifier of a route exposure grant.
  - `exposureDescriptorId` string, required — Stable identifier of an externally callable route exposure descriptor.
  - `owningTenantId` string, required — Tenant identifier used by tenant-scoped connector registration, routing, and execution.
  - `callerParty` 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.
  - `grantedBy` 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.
  - `allowedAuthMethods` string[]
  - `allowedOperations` OperationKind[]
  - `status` 'ACTIVE' | 'SUSPENDED' | 'REVOKED' | 'EXPIRED', required
  - `validFrom` string, date-time
  - `validUntil` string, date-time
  - `maxUses` integer
  - `useCount` integer, required
  - `throttlePolicy` RouteExposureThrottlePolicy
    - `maxRequests` integer, required
    - `windowSeconds` integer, required
    - `throttleKey` string
  - `metadata` object
  - `createdAt` string, date-time
  - `updatedAt` string, date-time

## 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/versions/60cb8c70871b/schema)
