Skip to main content

Sharing API

REST API for managing partner sharing configurations and entity sharing.

Quick Startโ€‹

# List available operations
epilot sharing

# Call an operation
epilot sharing getSharingConfiguration -p partner_org_id=123e4567-e89b-12d3-a456-426614174000

Common Flagsโ€‹

FlagDescription
-p key=valueSet a named parameter
-d '{...}'Request body JSON
-H 'Key: Value'Custom header
-t, --token <token>Bearer token for authentication
--profile <name>Use a named profile
-s, --server <url>Override server base URL
-i, --includeInclude response headers in output
--jsonOutput raw JSON (no formatting)
-v, --verboseVerbose output (show request details)
--jsonata <expr>JSONata expression to transform response
--definition <file>Override OpenAPI spec file/URL
--guidedPrompt for all parameters interactively
--no-interactiveDisable interactive prompts

Operationsโ€‹

Sharing Configuration

  • getSharingConfiguration โ€” Returns the sharing configuration for a specific partner organization, including shared entities, offered entities, and
  • updateSharingConfiguration โ€” Updates the sharing configuration for a partner, such as the user limit. Also patches the internal role if the user limi
  • deleteSharingConfiguration โ€” Deletes the sharing configuration for a partner, removing all shared and offered entity access.
  • assignRoleToConfiguration โ€” Assigns a template role to a partner sharing configuration. The role grants are copied into the configuration for entity
  • getSharingConfigurations โ€” Returns sharing configurations for multiple partner organizations in a single batch request.
  • searchPartnerSharingConfigurations โ€” Searches for partner sharing configurations that have access to the given entities. Returns configurations with their sh
  • getConfigurationsByTemplateRole โ€” Returns all partner sharing configurations that reference the given template role ID. Useful for checking role usage bef

Entity Sharing

  • shareEntityWithPartners โ€” Shares or unshares top-level entities with one or more partner organizations. Publishes sharing events for downstream pr
  • shareChildEntityWithPartners โ€” Shares or unshares child entities (entities that belong to an already-shared parent) with partner organizations.

Entity Offering

  • offerEntityToPartners โ€” Offers or unoffers entities to partner organizations using a First Come First Served model. Only one partner can accept
  • getOfferStatus โ€” Returns the current status of an entity offer (pending, accepted, expired). This is a public endpoint used from partner-
  • acceptOffer โ€” Accepts an entity offer on behalf of a partner organization. This is a public endpoint used from partner-facing pages wi

getSharingConfigurationโ€‹

Returns the sharing configuration for a specific partner organization, including shared entities, offered entities, and

GET /v1/sharing/configurations/{partner_org_id}

Parameters

NameInTypeRequiredDescription
partner_org_idpathstringYesPartner organization ID

Sample Call

epilot sharing getSharingConfiguration \
-p partner_org_id=123e4567-e89b-12d3-a456-426614174000

Using positional args for path parameters:

epilot sharing getSharingConfiguration 123e4567-e89b-12d3-a456-426614174000

With JSONata filter:

epilot sharing getSharingConfiguration -p partner_org_id=123e4567-e89b-12d3-a456-426614174000 --jsonata 'sharing_org_id'
Sample Response
{
"sharing_org_id": "string",
"partner_org_id": "string",
"users": ["string"],
"partner_status": "REGISTERED",
"entities": [
{
"schema": "string",
"entity_id": "string",
"parent_entity_id": "string",
"offer_accepted": true,
"updated_at": "string",
"created_at": "string"
}
],
"offered_entities": [
{
"schema": "string",
"entity_id": "string",
"parent_entity_id": "string",
"offer_status": "EXPIRED",
"offered_by_user_id": "string",
"updated_at": "string",
"created_at": "string"
}
],
"template_role_id": "string",
"template_role_grants": [
{
"action": "string",
"resource": "string",
"effect": "string"
}
],
"generated_role_id": "string",
"user_limit": 0,
"created_at": "string",
"updated_at": "string"
}

updateSharingConfigurationโ€‹

Updates the sharing configuration for a partner, such as the user limit. Also patches the internal role if the user limi

PATCH /v1/sharing/configurations/{partner_org_id}

Parameters

NameInTypeRequiredDescription
partner_org_idpathstringYesPartner organization ID

Request Body (required)

Sample Call

epilot sharing updateSharingConfiguration \
-p partner_org_id=123e4567-e89b-12d3-a456-426614174000 \
-d '{"user_limit":0}'

Using positional args for path parameters:

epilot sharing updateSharingConfiguration 123e4567-e89b-12d3-a456-426614174000

Using stdin pipe:

cat body.json | epilot sharing updateSharingConfiguration -p partner_org_id=123e4567-e89b-12d3-a456-426614174000

With JSONata filter:

epilot sharing updateSharingConfiguration -p partner_org_id=123e4567-e89b-12d3-a456-426614174000 --jsonata 'sharing_org_id'
Sample Response
{
"sharing_org_id": "string",
"partner_org_id": "string",
"users": ["string"],
"partner_status": "REGISTERED",
"entities": [
{
"schema": "string",
"entity_id": "string",
"parent_entity_id": "string",
"offer_accepted": true,
"updated_at": "string",
"created_at": "string"
}
],
"offered_entities": [
{
"schema": "string",
"entity_id": "string",
"parent_entity_id": "string",
"offer_status": "EXPIRED",
"offered_by_user_id": "string",
"updated_at": "string",
"created_at": "string"
}
],
"template_role_id": "string",
"template_role_grants": [
{
"action": "string",
"resource": "string",
"effect": "string"
}
],
"generated_role_id": "string",
"user_limit": 0,
"created_at": "string",
"updated_at": "string"
}

deleteSharingConfigurationโ€‹

Deletes the sharing configuration for a partner, removing all shared and offered entity access.

DELETE /v1/sharing/configurations/{partner_org_id}

Parameters

NameInTypeRequiredDescription
partner_org_idpathstringYesPartner organization ID

Sample Call

epilot sharing deleteSharingConfiguration \
-p partner_org_id=123e4567-e89b-12d3-a456-426614174000

Using positional args for path parameters:

epilot sharing deleteSharingConfiguration 123e4567-e89b-12d3-a456-426614174000

With JSONata filter:

epilot sharing deleteSharingConfiguration -p partner_org_id=123e4567-e89b-12d3-a456-426614174000 --jsonata 'sharing_org_id'
Sample Response
{
"sharing_org_id": "string",
"partner_org_id": "string",
"users": ["string"],
"partner_status": "REGISTERED",
"entities": [
{
"schema": "string",
"entity_id": "string",
"parent_entity_id": "string",
"offer_accepted": true,
"updated_at": "string",
"created_at": "string"
}
],
"offered_entities": [
{
"schema": "string",
"entity_id": "string",
"parent_entity_id": "string",
"offer_status": "EXPIRED",
"offered_by_user_id": "string",
"updated_at": "string",
"created_at": "string"
}
],
"template_role_id": "string",
"template_role_grants": [
{
"action": "string",
"resource": "string",
"effect": "string"
}
],
"generated_role_id": "string",
"user_limit": 0,
"created_at": "string",
"updated_at": "string"
}

assignRoleToConfigurationโ€‹

Assigns a template role to a partner sharing configuration. The role grants are copied into the configuration for entity

PUT /v1/sharing/configurations/{partner_org_id}/role

Parameters

NameInTypeRequiredDescription
partner_org_idpathstringYesPartner organization ID

Request Body (required)

Sample Call

epilot sharing assignRoleToConfiguration \
-p partner_org_id=123e4567-e89b-12d3-a456-426614174000 \
-d '{"template_role_id":"string"}'

Using positional args for path parameters:

epilot sharing assignRoleToConfiguration 123e4567-e89b-12d3-a456-426614174000

Using stdin pipe:

cat body.json | epilot sharing assignRoleToConfiguration -p partner_org_id=123e4567-e89b-12d3-a456-426614174000

With JSONata filter:

epilot sharing assignRoleToConfiguration -p partner_org_id=123e4567-e89b-12d3-a456-426614174000 --jsonata 'sharing_org_id'
Sample Response
{
"sharing_org_id": "string",
"partner_org_id": "string",
"users": ["string"],
"partner_status": "REGISTERED",
"entities": [
{
"schema": "string",
"entity_id": "string",
"parent_entity_id": "string",
"offer_accepted": true,
"updated_at": "string",
"created_at": "string"
}
],
"offered_entities": [
{
"schema": "string",
"entity_id": "string",
"parent_entity_id": "string",
"offer_status": "EXPIRED",
"offered_by_user_id": "string",
"updated_at": "string",
"created_at": "string"
}
],
"template_role_id": "string",
"template_role_grants": [
{
"action": "string",
"resource": "string",
"effect": "string"
}
],
"generated_role_id": "string",
"user_limit": 0,
"created_at": "string",
"updated_at": "string"
}

getSharingConfigurationsโ€‹

Returns sharing configurations for multiple partner organizations in a single batch request.

GET /v1/sharing/configurations

Parameters

NameInTypeRequiredDescription
partner_org_idsquerystring[]YesComma-separated list of partner organization IDs

Sample Call

epilot sharing getSharingConfigurations \
-p partner_org_ids=example

With JSONata filter:

epilot sharing getSharingConfigurations -p partner_org_ids=example --jsonata '$'
Sample Response
[
{
"sharing_org_id": "string",
"partner_org_id": "string",
"users": ["string"],
"partner_status": "REGISTERED",
"entities": [
{
"schema": "string",
"entity_id": "string",
"parent_entity_id": "string",
"offer_accepted": true,
"updated_at": "string",
"created_at": "string"
}
],
"offered_entities": [
{
"schema": "string",
"entity_id": "string",
"parent_entity_id": "string",
"offer_status": "EXPIRED",
"offered_by_user_id": "string",
"updated_at": "string",
"created_at": "string"
}
],
"template_role_id": "string",
"template_role_grants": [
{
"action": "string",
"resource": "string",
"effect": "string"
}
],
"generated_role_id": "string",
"user_limit": 0,
"created_at": "string",
"updated_at": "string"
}
]

searchPartnerSharingConfigurationsโ€‹

Searches for partner sharing configurations that have access to the given entities. Returns configurations with their sh

POST /v1/sharing/configurations:search

Request Body (required)

Sample Call

epilot sharing searchPartnerSharingConfigurations \
-d '{"entities":[{"schema":"string","entity_id":"string","parent_entity_id":"string","offer_accepted":true}]}'

Using stdin pipe:

cat body.json | epilot sharing searchPartnerSharingConfigurations

With JSONata filter:

epilot sharing searchPartnerSharingConfigurations --jsonata '$'
Sample Response
[
{
"sharing_org_id": "string",
"partner_org_id": "string",
"users": ["string"],
"partner_status": "REGISTERED",
"entities": [
{
"schema": "string",
"entity_id": "string",
"parent_entity_id": "string",
"offer_accepted": true,
"updated_at": "string",
"created_at": "string"
}
],
"offered_entities": [
{
"schema": "string",
"entity_id": "string",
"parent_entity_id": "string",
"offer_status": "EXPIRED",
"offered_by_user_id": "string",
"updated_at": "string",
"created_at": "string"
}
],
"template_role_id": "string",
"template_role_grants": [
{
"action": "string",
"resource": "string",
"effect": "string"
}
],
"generated_role_id": "string",
"user_limit": 0,
"created_at": "string",
"updated_at": "string"
}
]

getConfigurationsByTemplateRoleโ€‹

Returns all partner sharing configurations that reference the given template role ID. Useful for checking role usage bef

GET /v1/sharing/configurations/by-role/{template_role_id}

Parameters

NameInTypeRequiredDescription
template_role_idpathstringYesTemplate role ID to search for

Sample Call

epilot sharing getConfigurationsByTemplateRole \
-p template_role_id=123e4567-e89b-12d3-a456-426614174000

Using positional args for path parameters:

epilot sharing getConfigurationsByTemplateRole 123e4567-e89b-12d3-a456-426614174000

With JSONata filter:

epilot sharing getConfigurationsByTemplateRole -p template_role_id=123e4567-e89b-12d3-a456-426614174000 --jsonata '$'
Sample Response
[
{
"sharing_org_id": "string",
"partner_org_id": "string",
"users": ["string"],
"partner_status": "REGISTERED",
"entities": [
{
"schema": "string",
"entity_id": "string",
"parent_entity_id": "string",
"offer_accepted": true,
"updated_at": "string",
"created_at": "string"
}
],
"offered_entities": [
{
"schema": "string",
"entity_id": "string",
"parent_entity_id": "string",
"offer_status": "EXPIRED",
"offered_by_user_id": "string",
"updated_at": "string",
"created_at": "string"
}
],
"template_role_id": "string",
"template_role_grants": [
{
"action": "string",
"resource": "string",
"effect": "string"
}
],
"generated_role_id": "string",
"user_limit": 0,
"created_at": "string",
"updated_at": "string"
}
]

shareEntityWithPartnersโ€‹

Shares or unshares top-level entities with one or more partner organizations. Publishes sharing events for downstream pr

POST /v1/sharing/entities:share

Request Body (required)

Sample Call

epilot sharing shareEntityWithPartners

With request body:

epilot sharing shareEntityWithPartners \
-d '{
"share": [
{
"partner_org_id": "string",
"entities": [
{
"schema": "string",
"entity_id": "string",
"parent_entity_id": "string",
"offer_accepted": true
}
]
}
],
"unshare": [
{
"partner_org_id": "string",
"entities": [
{
"schema": "string",
"entity_id": "string",
"parent_entity_id": "string",
"offer_accepted": true
}
]
}
]
}'

Using stdin pipe:

cat body.json | epilot sharing shareEntityWithPartners

With JSONata filter:

epilot sharing shareEntityWithPartners --jsonata '$'
Sample Response
[
{
"sharing_org_id": "string",
"partner_org_id": "string",
"users": ["string"],
"partner_status": "REGISTERED",
"entities": [
{
"schema": "string",
"entity_id": "string",
"parent_entity_id": "string",
"offer_accepted": true,
"updated_at": "string",
"created_at": "string"
}
],
"offered_entities": [
{
"schema": "string",
"entity_id": "string",
"parent_entity_id": "string",
"offer_status": "EXPIRED",
"offered_by_user_id": "string",
"updated_at": "string",
"created_at": "string"
}
],
"template_role_id": "string",
"template_role_grants": [
{
"action": "string",
"resource": "string",
"effect": "string"
}
],
"generated_role_id": "string",
"user_limit": 0,
"created_at": "string",
"updated_at": "string"
}
]

shareChildEntityWithPartnersโ€‹

Shares or unshares child entities (entities that belong to an already-shared parent) with partner organizations.

POST /v1/sharing/entities:share-child

Request Body (required)

Sample Call

epilot sharing shareChildEntityWithPartners

With request body:

epilot sharing shareChildEntityWithPartners \
-d '{
"share": [
{
"entity": {
"schema": "string",
"entity_id": "string",
"parent_entity_id": "string",
"offer_accepted": true
},
"partner_org_id": "string"
}
],
"unshare": [
{
"entity": {
"schema": "string",
"entity_id": "string",
"parent_entity_id": "string",
"offer_accepted": true
},
"partner_org_id": "string"
}
]
}'

Using stdin pipe:

cat body.json | epilot sharing shareChildEntityWithPartners

With JSONata filter:

epilot sharing shareChildEntityWithPartners --jsonata '$'
Sample Response
[
{
"sharing_org_id": "string",
"partner_org_id": "string",
"users": ["string"],
"partner_status": "REGISTERED",
"entities": [
{
"schema": "string",
"entity_id": "string",
"parent_entity_id": "string",
"offer_accepted": true,
"updated_at": "string",
"created_at": "string"
}
],
"offered_entities": [
{
"schema": "string",
"entity_id": "string",
"parent_entity_id": "string",
"offer_status": "EXPIRED",
"offered_by_user_id": "string",
"updated_at": "string",
"created_at": "string"
}
],
"template_role_id": "string",
"template_role_grants": [
{
"action": "string",
"resource": "string",
"effect": "string"
}
],
"generated_role_id": "string",
"user_limit": 0,
"created_at": "string",
"updated_at": "string"
}
]

offerEntityToPartnersโ€‹

Offers or unoffers entities to partner organizations using a First Come First Served model. Only one partner can accept

POST /v1/sharing/entities:offer

Request Body (required)

Sample Call

epilot sharing offerEntityToPartners

With request body:

epilot sharing offerEntityToPartners \
-d '{
"offer": [
{
"partner_org_id": "string",
"offered_entities": [
{
"schema": "string",
"entity_id": "string",
"parent_entity_id": "string"
}
]
}
],
"unoffer": [
{
"partner_org_id": "string",
"offered_entities": [
{
"schema": "string",
"entity_id": "string",
"parent_entity_id": "string"
}
]
}
]
}'

Using stdin pipe:

cat body.json | epilot sharing offerEntityToPartners

With JSONata filter:

epilot sharing offerEntityToPartners --jsonata '$'
Sample Response
[
{
"sharing_org_id": "string",
"partner_org_id": "string",
"users": ["string"],
"partner_status": "REGISTERED",
"entities": [
{
"schema": "string",
"entity_id": "string",
"parent_entity_id": "string",
"offer_accepted": true,
"updated_at": "string",
"created_at": "string"
}
],
"offered_entities": [
{
"schema": "string",
"entity_id": "string",
"parent_entity_id": "string",
"offer_status": "EXPIRED",
"offered_by_user_id": "string",
"updated_at": "string",
"created_at": "string"
}
],
"template_role_id": "string",
"template_role_grants": [
{
"action": "string",
"resource": "string",
"effect": "string"
}
],
"generated_role_id": "string",
"user_limit": 0,
"created_at": "string",
"updated_at": "string"
}
]

getOfferStatusโ€‹

Returns the current status of an entity offer (pending, accepted, expired). This is a public endpoint used from partner-

GET /v1/sharing/offers/status

Parameters

NameInTypeRequiredDescription
partner_org_idquerystringYes
sharing_org_idquerystringYes
entity_idquerystringYes

Sample Call

epilot sharing getOfferStatus \
-p partner_org_id=123e4567-e89b-12d3-a456-426614174000 \
-p sharing_org_id=123e4567-e89b-12d3-a456-426614174000 \
-p entity_id=123e4567-e89b-12d3-a456-426614174000

With JSONata filter:

epilot sharing getOfferStatus -p partner_org_id=123e4567-e89b-12d3-a456-426614174000 -p sharing_org_id=123e4567-e89b-12d3-a456-426614174000 -p entity_id=123e4567-e89b-12d3-a456-426614174000 --jsonata 'entity._title'
Sample Response
{
"entity": {
"_schema": "string",
"_id": "string",
"_title": "string",
"_created_at": "string",
"_updated_at": "string"
},
"offer_status": "EXPIRED",
"status_changed_at": "string",
"offered_at": "string",
"accepted_by_org_id": "string"
}

acceptOfferโ€‹

Accepts an entity offer on behalf of a partner organization. This is a public endpoint used from partner-facing pages wi

POST /v1/sharing/offers:accept

Request Body (required)

Sample Call

epilot sharing acceptOffer \
-d '{"partner_org_id":"string","sharing_org_id":"string","entity_id":"string"}'

Using stdin pipe:

cat body.json | epilot sharing acceptOffer

With JSONata filter:

epilot sharing acceptOffer --jsonata 'sharing_org_id'
Sample Response
{
"sharing_org_id": "string",
"partner_org_id": "string",
"users": ["string"],
"partner_status": "REGISTERED",
"entities": [
{
"schema": "string",
"entity_id": "string",
"parent_entity_id": "string",
"offer_accepted": true,
"updated_at": "string",
"created_at": "string"
}
],
"offered_entities": [
{
"schema": "string",
"entity_id": "string",
"parent_entity_id": "string",
"offer_status": "EXPIRED",
"offered_by_user_id": "string",
"updated_at": "string",
"created_at": "string"
}
],
"template_role_id": "string",
"template_role_grants": [
{
"action": "string",
"resource": "string",
"effect": "string"
}
],
"generated_role_id": "string",
"user_limit": 0,
"created_at": "string",
"updated_at": "string"
}