C1 App Entitlement API
The App Entitlement API from C1 — 11 operation(s) for app entitlement.
The App Entitlement API from C1 — 11 operation(s) for app entitlement.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/c1-app-entitlement-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
openapi: 3.2.0
info:
description: The ConductorOne API is a HTTP API for managing ConductorOne resources.
title: ConductorOne Access Conflict App Entitlement API
version: 0.1.0-alpha
servers:
- description: The ConductorOne API server for the current tenant.
url: https://{tenantDomain}.conductor.one
variables:
tenantDomain:
default: example
description: The domain of the tenant to use for this request.
security:
- bearerAuth: []
oauth: []
tags:
- name: App Entitlement
paths:
/api/v1/apps/{app_id}/entitlements:
get:
description: List app entitlements associated with an app.
operationId: c1.api.app.v1.AppEntitlements.List
parameters:
- in: path
name: app_id
required: true
schema:
description: The appId field.
readOnly: false
type: string
- in: query
name: page_size
schema:
description: The pageSize field.
format: int32
readOnly: false
type: integer
- in: query
name: page_token
schema:
description: The pageToken field.
readOnly: false
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/c1.api.app.v1.ListAppEntitlementsResponse'
description: The ListAppEntitlementsResponse message contains a list of results and a nextPageToken if applicable.
summary: List
tags:
- App Entitlement
x-speakeasy-group: AppEntitlements
x-speakeasy-name-override: List
post:
description: Invokes the c1.api.app.v1.AppEntitlements.Create method.
operationId: c1.api.app.v1.AppEntitlements.Create
parameters:
- in: path
name: app_id
required: true
schema:
description: The appId field.
readOnly: false
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/c1.api.app.v1.CreateAppEntitlementRequestInput'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/c1.api.app.v1.CreateAppEntitlementResponse'
description: Successful response
summary: Create
tags:
- App Entitlement
x-speakeasy-entity-operation:
terraform-resource: Custom App Entitlement#create
x-speakeasy-group: AppEntitlements
x-speakeasy-name-override: Create
/api/v1/apps/{app_id}/entitlements/{app_entitlement_id}/add-manual-user:
post:
description: Invokes the c1.api.app.v1.AppEntitlements.AddManuallyManagedMembers method.
operationId: c1.api.app.v1.AppEntitlements.AddManuallyManagedMembers
parameters:
- in: path
name: app_id
required: true
schema:
description: The appId field.
readOnly: false
type: string
- in: path
name: app_entitlement_id
required: true
schema:
description: The appEntitlementId field.
readOnly: false
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/c1.api.app.v1.AddManuallyManagedUsersRequestInput'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/c1.api.app.v1.ManuallyManagedUsersResponse'
description: Successful response
summary: Add Manually Managed Members
tags:
- App Entitlement
x-speakeasy-group: AppEntitlements
x-speakeasy-name-override: AddManuallyManagedMembers
/api/v1/apps/{app_id}/entitlements/{app_entitlement_id}/grants:
get:
description: Search app entitlements, include app users, users, expires, discovered.
operationId: c1.api.app.v1.AppEntitlementSearchService.SearchAppEntitlementsWithExpired
parameters:
- in: path
name: app_id
required: true
schema:
description: The appId field.
readOnly: false
type: string
- in: path
name: app_entitlement_id
required: true
schema:
description: The appEntitlementId field.
readOnly: false
type: string
- in: query
name: page_size
schema:
description: The pageSize field.
format: int32
readOnly: false
type: integer
- in: query
name: page_token
schema:
description: The pageToken field.
readOnly: false
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/c1.api.app.v1.SearchAppEntitlementsWithExpiredResponse'
description: The SearchAppEntitlementsWithExpiredResponse message contains a list of results and a nextPageToken if applicable.
summary: Search App Entitlements With Expired
tags:
- App Entitlement
x-speakeasy-group: AppEntitlementSearch
x-speakeasy-name-override: SearchAppEntitlementsWithExpired
/api/v1/apps/{app_id}/entitlements/{app_entitlement_id}/remove-membership:
delete:
description: Invokes the c1.api.app.v1.AppEntitlements.RemoveEntitlementMembership method.
operationId: c1.api.app.v1.AppEntitlements.RemoveEntitlementMembership
parameters:
- in: path
name: app_id
required: true
schema:
description: The appId field.
readOnly: false
type: string
- in: path
name: app_entitlement_id
required: true
schema:
description: The appEntitlementId field.
readOnly: false
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/c1.api.app.v1.RemoveEntitlementMembershipRequestInput'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/c1.api.app.v1.RemoveEntitlementMembershipResponse'
description: Successful response
summary: Remove Entitlement Membership
tags:
- App Entitlement
x-speakeasy-group: AppEntitlements
x-speakeasy-name-override: RemoveEntitlementMembership
/api/v1/apps/{app_id}/entitlements/{app_entitlement_id}/users:
get:
deprecated: true
description: List the users, as AppEntitlementUsers objects, of an app entitlement.
operationId: c1.api.app.v1.AppEntitlements.ListUsers
parameters:
- in: path
name: app_id
required: true
schema:
description: The appId field.
readOnly: false
type: string
- in: path
name: app_entitlement_id
required: true
schema:
description: The appEntitlementId field.
readOnly: false
type: string
- in: query
name: page_size
schema:
description: The pageSize field.
format: int32
readOnly: false
type: integer
- in: query
name: page_token
schema:
description: The pageToken field.
readOnly: false
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/c1.api.app.v1.ListAppEntitlementUsersResponse'
description: The ListAppEntitlementUsersResponse message contains a list of results and a nextPageToken if applicable.
summary: List Users
tags:
- App Entitlement
x-speakeasy-group: AppEntitlements
x-speakeasy-name-override: ListUsers
/api/v1/apps/{app_id}/entitlements/{id}:
delete:
description: Invokes the c1.api.app.v1.AppEntitlements.Delete method.
operationId: c1.api.app.v1.AppEntitlements.Delete
parameters:
- in: path
name: app_id
required: true
schema:
description: The appId field.
readOnly: false
type: string
- in: path
name: id
required: true
schema:
description: The id field.
readOnly: false
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/c1.api.app.v1.DeleteAppEntitlementRequestInput'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/c1.api.app.v1.DeleteAppEntitlementResponse'
description: Successful response
summary: Delete
tags:
- App Entitlement
x-speakeasy-entity-operation:
terraform-resource: Custom App Entitlement#delete
x-speakeasy-group: AppEntitlements
x-speakeasy-name-override: Delete
get:
description: Get an app entitlement by ID.
operationId: c1.api.app.v1.AppEntitlements.Get
parameters:
- in: path
name: app_id
required: true
schema:
description: The appId field.
readOnly: false
type: string
- in: path
name: id
required: true
schema:
description: The id field.
readOnly: false
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/c1.api.app.v1.GetAppEntitlementResponse'
description: The get app entitlement response returns an entitlement view containing paths in the expanded array for the objects expanded as indicated by the expand mask in the request.
summary: Get
tags:
- App Entitlement
x-speakeasy-entity-operation:
terraform-datasource: null
terraform-resource: Custom App Entitlement#read
x-speakeasy-group: AppEntitlements
x-speakeasy-name-override: Get
post:
description: Update an app entitlement by ID.
operationId: c1.api.app.v1.AppEntitlements.Update
parameters:
- in: path
name: app_id
required: true
schema:
description: The ID of the app that is associated with the app entitlement.
readOnly: false
type: string
- in: path
name: id
required: true
schema:
description: The unique ID for the App Entitlement.
readOnly: true
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/c1.api.app.v1.UpdateAppEntitlementRequestInput'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/c1.api.app.v1.UpdateAppEntitlementResponse'
description: Successful response
summary: Update
tags:
- App Entitlement
x-speakeasy-entity-operation:
terraform-resource: Custom App Entitlement#update
x-speakeasy-group: AppEntitlements
x-speakeasy-name-override: Update
/api/v1/apps/{app_id}/entitlements/resource_types/{app_resource_type_id}/resources/{app_resource_id}:
get:
description: List app entitlements associated with an app resource.
operationId: c1.api.app.v1.AppEntitlements.ListForAppResource
parameters:
- in: path
name: app_id
required: true
schema:
description: The appId field.
readOnly: false
type: string
- in: path
name: app_resource_type_id
required: true
schema:
description: The appResourceTypeId field.
readOnly: false
type: string
- in: path
name: app_resource_id
required: true
schema:
description: The appResourceId field.
readOnly: false
type: string
- in: query
name: page_size
schema:
description: The pageSize field.
format: int32
readOnly: false
type: integer
- in: query
name: page_token
schema:
description: The pageToken field.
readOnly: false
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/c1.api.app.v1.ListAppEntitlementsResponse'
description: The ListAppEntitlementsResponse message contains a list of results and a nextPageToken if applicable.
summary: List For App Resource
tags:
- App Entitlement
x-speakeasy-group: AppEntitlements
x-speakeasy-name-override: ListForAppResource
/api/v1/apps/{app_id}/entitlements/users/{app_user_id}:
get:
description: List app entitlements associated with an app user.
operationId: c1.api.app.v1.AppEntitlements.ListForAppUser
parameters:
- in: path
name: app_id
required: true
schema:
description: The appId field.
readOnly: false
type: string
- in: path
name: app_user_id
required: true
schema:
description: The appUserId field.
readOnly: false
type: string
- in: query
name: page_size
schema:
description: The pageSize field.
format: int32
readOnly: false
type: integer
- in: query
name: page_token
schema:
description: The pageToken field.
readOnly: false
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/c1.api.app.v1.ListAppEntitlementsResponse'
description: The ListAppEntitlementsResponse message contains a list of results and a nextPageToken if applicable.
summary: List For App User
tags:
- App Entitlement
x-speakeasy-group: AppEntitlements
x-speakeasy-name-override: ListForAppUser
/api/v1/search/apps/{app_id}/entitlements/users/{app_user_id}:
get:
description: Invokes the c1.api.app.v1.AppEntitlementSearchService.SearchAppEntitlementsForAppUser method.
operationId: c1.api.app.v1.AppEntitlementSearchService.SearchAppEntitlementsForAppUser
parameters:
- in: path
name: app_id
required: true
schema:
description: The appId field.
readOnly: false
type: string
- in: path
name: app_user_id
required: true
schema:
description: The appUserId field.
readOnly: false
type: string
- in: query
name: page_size
schema:
description: The pageSize field.
format: int32
readOnly: false
type: integer
- in: query
name: page_token
schema:
description: The pageToken field.
readOnly: false
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/c1.api.app.v1.ListAppEntitlementsResponse'
description: The ListAppEntitlementsResponse message contains a list of results and a nextPageToken if applicable.
summary: Search App Entitlements For App User
tags:
- App Entitlement
x-speakeasy-group: AppEntitlementSearch
x-speakeasy-name-override: SearchAppEntitlementsForAppUser
/api/v1/search/entitlements:
post:
description: Search app entitlements based on filters specified in the request body.
operationId: c1.api.app.v1.AppEntitlementSearchService.Search
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/c1.api.app.v1.AppEntitlementSearchServiceSearchRequest'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/c1.api.app.v1.AppEntitlementSearchServiceSearchResponse'
description: Successful response
summary: Search
tags:
- App Entitlement
x-speakeasy-entity-operation:
terraform-datasource:
- App Entitlement#read
- App Entitlements#read
terraform-resource: null
x-speakeasy-group: AppEntitlementSearch
x-speakeasy-name-override: Search
x-speakeasy-pagination:
inputs:
- in: requestBody
name: pageToken
type: cursor
outputs:
nextCursor: $.nextPageToken
type: cursor
/api/v1/search/grants:
post:
description: Invokes the c1.api.app.v1.AppEntitlementSearchService.SearchGrants method.
operationId: c1.api.app.v1.AppEntitlementSearchService.SearchGrants
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/c1.api.app.v1.AppEntitlementSearchServiceSearchGrantsRequest'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/c1.api.app.v1.AppEntitlementSearchServiceSearchGrantsResponse'
description: Successful response
summary: Search Grants
tags:
- App Entitlement
x-speakeasy-group: AppEntitlementSearch
x-speakeasy-name-override: SearchGrants
components:
schemas:
c1.api.policy.v1.ProvisionPolicy:
description: "ProvisionPolicy is a oneOf that indicates how a provision step should be processed.\n\nThis message contains a oneof named typ. Only a single field of the following list may be set at a time:\n - connector\n - manual\n - delegated\n - webhook\n - multiStep\n - externalTicket\n - unconfigured\n - action\n"
properties:
action:
$ref: '#/components/schemas/c1.api.policy.v1.ActionProvision'
connector:
$ref: '#/components/schemas/c1.api.policy.v1.ConnectorProvision'
delegated:
$ref: '#/components/schemas/c1.api.policy.v1.DelegatedProvision'
externalTicket:
$ref: '#/components/schemas/c1.api.policy.v1.ExternalTicketProvision'
manual:
$ref: '#/components/schemas/c1.api.policy.v1.ManualProvision'
multiStep:
$ref: '#/components/schemas/c1.api.policy.v1.MultiStep'
unconfigured:
$ref: '#/components/schemas/c1.api.policy.v1.UnconfiguredProvision'
webhook:
$ref: '#/components/schemas/c1.api.policy.v1.WebhookProvision'
title: Provision Policy
type: object
x-speakeasy-name-override: ProvisionPolicy
c1.api.policy.v1.WebhookProvision:
description: This provision step indicates that a webhook should be called to provision this entitlement.
nullable: true
properties:
webhookId:
description: The ID of the webhook to call for provisioning.
readOnly: false
type: string
title: Webhook Provision
type: object
x-speakeasy-name-override: WebhookProvision
c1.api.user.v1.User:
description: The User object provides all of the details for an user, as well as some configuration.
properties:
createdAt:
format: date-time
readOnly: true
type: string
delegatedUserId:
description: The id of the user to whom tasks will be automatically reassigned to.
readOnly: false
type: string
deletedAt:
format: date-time
readOnly: true
type: string
department:
description: The department which the user belongs to in the organization.
readOnly: true
type: string
departmentSources:
description: A list of objects mapped based on department attribute mappings configured in the system.
items:
$ref: '#/components/schemas/c1.api.user.v1.UserAttributeMappingSource'
nullable: true
readOnly: true
type: array
directoryIds:
description: A list of unique ids that represent different directories.
items:
type: string
nullable: true
readOnly: true
type: array
directoryStatus:
description: The status of the user in the directory.
enum:
- UNKNOWN
- ENABLED
- DISABLED
- DELETED
readOnly: true
type: string
x-speakeasy-unknown-values: allow
directoryStatusSources:
description: A list of objects mapped based on directoryStatus attribute mappings configured in the system.
items:
$ref: '#/components/schemas/c1.api.user.v1.UserAttributeMappingSource'
nullable: true
readOnly: true
type: array
displayName:
description: The display name of the user.
readOnly: true
type: string
email:
description: This is the user's email.
readOnly: true
type: string
emailSources:
description: A list of source data for the email attribute.
items:
$ref: '#/components/schemas/c1.api.user.v1.UserAttributeMappingSource'
nullable: true
readOnly: true
type: array
emails:
description: This is a list of all of the user's emails from app users.
items:
type: string
nullable: true
readOnly: true
type: array
employeeIdSources:
description: A list of source data for the employee IDs attribute.
items:
$ref: '#/components/schemas/c1.api.user.v1.UserAttributeMappingSource'
nullable: true
readOnly: true
type: array
employeeIds:
description: This is a list of all of the user's employee IDs from app users.
items:
type: string
nullable: true
readOnly: true
type: array
employmentStatus:
description: The users employment status.
readOnly: true
type: string
employmentStatusSources:
description: A list of objects mapped based on employmentStatus attribute mappings configured in the system.
items:
$ref: '#/components/schemas/c1.api.user.v1.UserAttributeMappingSource'
nullable: true
readOnly: true
type: array
employmentType:
description: The employment type of the user.
readOnly: true
type: string
employmentTypeSources:
description: A list of objects mapped based on employmentType attribute mappings configured in the system.
items:
$ref: '#/components/schemas/c1.api.user.v1.UserAttributeMappingSource'
nullable: true
readOnly: true
type: array
id:
description: A unique identifier of the user.
readOnly: true
type: string
jobTitle:
description: The job title of the user.
readOnly: true
type: string
jobTitleSources:
description: A list of objects mapped based on jobTitle attribute mappings configured in the system.
items:
$ref: '#/components/schemas/c1.api.user.v1.UserAttributeMappingSource'
nullable: true
readOnly: true
type: array
managerIds:
description: A list of ids of the user's managers.
items:
type: string
nullable: true
readOnly: true
type: array
managerSources:
description: A list of objects mapped based on managerId attribute mappings configured in the system.
items:
$ref: '#/components/schemas/c1.api.user.v1.UserAttributeMappingSource'
nullable: true
readOnly: true
type: array
profile:
additionalProperties: true
readOnly: true
type: object
roleIds:
description: A list of unique identifiers that maps to ConductorOne's user roles let you assign users permissions tailored to the work they do in the software.
items:
type: string
nullable: true
readOnly: false
type: array
status:
description: The status of the user in the system.
enum:
- UNKNOWN
- ENABLED
- DISABLED
- DELETED
readOnly: false
type: string
x-speakeasy-unknown-values: allow
type:
description: The type of the user.
enum:
- USER_TYPE_UNSPECIFIED
- USER_TYPE_SYSTEM
- USER_TYPE_HUMAN
- USER_TYPE_SERVICE
- USER_TYPE_AGENT
readOnly: true
type: string
x-speakeasy-unknown-values: allow
updatedAt:
format: date-time
readOnly: true
type: string
username:
description: This is the user's primary username. Typically sourced from the primary directory.
readOnly: true
type: string
usernameSources:
description: A list of source data for the usernames attribute.
items:
$ref: '#/components/schemas/c1.api.user.v1.UserAttributeMappingSource'
nullable: true
readOnly: true
type: array
usernames:
description: This is a list of all of the user's usernames from app users.
items:
type: string
nullable: true
readOnly: true
type: array
title: User
type: object
x-speakeasy-name-override: User
c1.api.app.v1.RemoveEntitlementMembershipRequestInput:
description: The RemoveEntitlementMembershipRequest message.
properties:
appUserId:
description: The appUserId field.
readOnly: false
type: string
title: Remove Entitlement Membership Request
type: object
x-speakeasy-name-override: RemoveEntitlementMembershipRequest
c1.api.app.v1.UpdateAppEntitlementRequestInput:
description: The UpdateAppEntitlementRequest message contains the app entitlement and the fields to be updated.
properties:
entitlement:
$ref: '#/components/schemas/c1.api.app.v1.AppEntitlement'
expandMask:
$ref: '#/components/schemas/c1.api.app.v1.AppEntitlementExpandMask'
overrideAccessRequestsDefaults:
description: Flag to indicate that access request defaults, if any are applied to these entitlements, should be overridden.
readOnly: false
type: boolean
updateMask:
nullable: true
readOnly: false
type: string
title: Update App Entitlement Request
type: object
x-speakeasy-name-override: UpdateAppEntitlementRequest
c1.api.search.v1.FacetRange:
description: The FacetRange message.
properties:
count:
description: The count of items in the range.
format: int64
readOnly: false
type: string
displayName:
description: The display name of the range.
readOnly: false
type: string
from:
description: The starting value of the range.
format: int64
readOnly: false
type: string
iconUrl:
description: The icon of the range.
readOnly: false
type: string
to:
description: The ending value of the range.
format: int64
readOnly: false
type: string
title: Facet Range
type: object
x-speakeasy-name-override: FacetRange
c1.api.policy.v1.ExternalTicketProvision:
description: This provision step indicates that we should check an external ticket to provision this entitlement
nullable: true
properties:
appId:
description: The appId field.
readOnly: false
type: string
connectorId:
description: The connectorId field.
readOnly: false
type: string
externalTicketProvisionerConfigId:
description: The externalTicketProvisionerConfigId field.
readOnly: false
type: string
instructions:
description: This field indicates a text body of instructions for the provisioner to indicate.
readOnly: false
type: string
title: External Ticket Provision
type: object
x-speakeasy-name-override: ExternalTicketProvision
c1.api.app.v1.AppEntitlementSearchServiceSearchResponse:
description: The AppEntitlementSearchServiceSearchResponse message.
properties:
expanded:
description: List of related objects.
items:
additionalProperties: true
description: Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.
properties:
'@type':
description: The type of the serialized message.
type: string
readOnly: false
type: object
nullable: true
readOnly: false
type: array
facets:
$ref: '#/components/schemas/c1.api.search.v1.Facets'
list:
description: List of app entitlement view objects.
items:
$ref: '#/components/schemas/c1.api.app.v1.AppEntitlementView'
nullable: true
readOnly: false
type: array
nextPageToken:
description: The nextPageToken is shown for the next page if the number of results is larger than the max page size. The server returns one page of results and the nextPageToken until all results are retreived. To retrieve the next page, use the same request and append a pageToken field with the value of nextPageToken shown on the previous page.
readOnly: false
type: string
title: App Entitlement Search Service Search Response
type: object
x-speakeasy-name-override: AppEntitlementSearchServiceSearchResponse
c1.api.app.v1.AppEntitlementSearchServiceSearchRequest:
description: Search app entitlements by a variety of filters.
properties:
accessReviewId:
description: Search for app entitlements that are being reviewed as part of this access review campaign.
readOnly: false
type: string
alias:
description: Search for app entitlements that have this alias (exact match).
readOnly: false
type: string
appIds:
description: Search for app entitlements contained in any of these apps.
items:
type: string
nullable: true
readOnly: false
type: array
appUserIds:
description: Search for app entitlements that are granted to any of these app user ids.
items:
type: string
nullable: true
readOnly: false
type: array
complianceFrameworkIds:
description: Search for app entitlements that are part of these compliace frameworks.
items:
type: string
nullable: true
readOnly: false
type: array
displayName:
description: The displayName field.
readOnly: false
type: string
excludeAppIds:
description: Exclude app entitlements from the results that are in these app IDs.
items:
type: string
nullable: true
readOnly: false
type: array
excludeAppUserIds:
description: Exclude app entitlements from the results that these app users have granted.
items:
type: string
nullable: true
readOnly: false
type: array
excludeImmutable:
description: The excludeImmutable field.
readOnly: false
type: boolean
excludeResourceTypeIds:
description: The excludeResourceTypeIds field.
items:
# --- truncated at 32 KB (77 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/c1/refs/heads/main/openapi/c1-app-entitlement-api-openapi.yml