{"files":{"SKILL.md":"---\nname: configcat-public-management-api\ndescription: \"ConfigCat Public Management API skill. Use when working with ConfigCat Public Management for proxy-profiles, organizations, products. Covers 105 endpoints.\"\nversion: 1.0.0\ngenerator: lapsh\n---\n\n# ConfigCat Public Management API\nAPI version: v1\n\n## Auth\nBearer basic\n\n## Base URL\nhttps://api.configcat.com\n\n## Setup\n1. Set Authorization header with your Bearer token\n2. GET /v1/organizations -- verify access\n3. POST /v1/organizations/{organizationId}/proxy-profiles -- create first proxy-profiles\n\n## Endpoints\n\n105 endpoints across 16 groups. See references/api-spec.lap for full details.\n\n### proxy-profiles\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /v1/proxy-profiles/{proxyProfileId} | Get Proxy Profile |\n| PUT | /v1/proxy-profiles/{proxyProfileId} | Replace Proxy Profile |\n| PATCH | /v1/proxy-profiles/{proxyProfileId} | Update Proxy Profile |\n| DELETE | /v1/proxy-profiles/{proxyProfileId} | Delete Proxy Profile |\n| GET | /v1/proxy-profiles/{proxyProfileId}/sdk-keys | Get selected SDK keys |\n| POST | /v1/proxy-profiles/{proxyProfileId}/sdk-keys/deselect | Deselect SDK keys |\n| POST | /v1/proxy-profiles/{proxyProfileId}/secret | Generate Secret |\n| POST | /v1/proxy-profiles/{proxyProfileId}/sdk-keys/select | Select SDK keys |\n\n### organizations\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /v1/organizations | List Organizations |\n| GET | /v1/organizations/{organizationId}/proxy-profiles | List Proxy Profiles |\n| POST | /v1/organizations/{organizationId}/proxy-profiles | Create Proxy Profile |\n| GET | /v1/organizations/{organizationId}/auditlogs | List Audit log items for Organization |\n| GET | /v1/organizations/{organizationId}/organization-limitations | Get Organization limitations |\n| GET | /v1/organizations/{organizationId}/members | List Organization Members |\n| GET | /v2/organizations/{organizationId}/members | List Organization Members |\n| GET | /v1/organizations/{organizationId}/invitations | List Pending Invitations in Organization |\n| POST | /v1/organizations/{organizationId}/products | Create Product |\n| POST | /v1/organizations/{organizationId}/members/{userId} | Update Member Permissions |\n| DELETE | /v1/organizations/{organizationId}/members/{userId} | Delete Member from Organization |\n\n### products\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /v1/products | List Products |\n| GET | /v1/products/{productId}/tags | List Tags |\n| POST | /v1/products/{productId}/tags | Create Tag |\n| GET | /v1/products/{productId}/webhooks | List Webhooks |\n| GET | /v1/products/{productId}/configs | List Configs |\n| POST | /v1/products/{productId}/configs | Create Config |\n| GET | /v1/products/{productId}/environments | List Environments |\n| POST | /v1/products/{productId}/environments | Create Environment |\n| GET | /v1/products/{productId}/permissions | List Permission Groups |\n| POST | /v1/products/{productId}/permissions | Create Permission Group |\n| GET | /v1/products/{productId}/integrations | List Integrations |\n| POST | /v1/products/{productId}/integrations | Create Integration |\n| GET | /v1/products/{productId}/segments | List Segments |\n| POST | /v1/products/{productId}/segments | Create Segment |\n| GET | /v1/products/{productId}/auditlogs | List Audit log items for Product |\n| GET | /v1/products/{productId}/staleflags | List Zombie (stale) flags for Product |\n| GET | /v1/products/{productId}/invitations | List Pending Invitations in Product |\n| GET | /v1/products/{productId} | Get Product |\n| PUT | /v1/products/{productId} | Update Product |\n| DELETE | /v1/products/{productId} | Delete Product |\n| GET | /v1/products/{productId}/members | List Product Members |\n| GET | /v1/products/{productId}/preferences | Get Product Preferences |\n| POST | /v1/products/{productId}/preferences | Update Product Preferences |\n| POST | /v1/products/{productId}/members/invite | Invite Member |\n| DELETE | /v1/products/{productId}/members/{userId} | Delete Member from Product |\n\n### configs\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /v1/configs/{configId}/settings | List Flags |\n| POST | /v1/configs/{configId}/settings | Create Flag |\n| GET | /v1/configs/{configId} | Get Config |\n| PUT | /v1/configs/{configId} | Update Config |\n| DELETE | /v1/configs/{configId} | Delete Config |\n| GET | /v1/configs/{configId}/deleted-settings | List Deleted Settings |\n| GET | /v1/configs/{configId}/environments/{environmentId} | Get SDK Key |\n| GET | /v1/configs/{configId}/environments/{environmentId}/values | Get values |\n| POST | /v1/configs/{configId}/environments/{environmentId}/values | Post values |\n| GET | /v2/configs/{configId}/environments/{environmentId}/values | Get values |\n| POST | /v2/configs/{configId}/environments/{environmentId}/values | Post values |\n| POST | /v1/configs/{configId}/environments/{environmentId}/webhooks | Create Webhook |\n\n### settings\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /v1/settings/{settingId}/code-references | Get References for Feature Flag or Setting |\n| GET | /v1/settings/{settingId}/predefined-variations | Get predefined variations |\n| PUT | /v1/settings/{settingId}/predefined-variations | Update predefined variations |\n| GET | /v1/settings/{settingId} | Get Flag |\n| PUT | /v1/settings/{settingId} | Replace Flag |\n| PATCH | /v1/settings/{settingId} | Update Flag |\n| DELETE | /v1/settings/{settingId} | Delete Flag |\n| GET | /v1/settings/{settingKeyOrId}/value | Get value |\n| PUT | /v1/settings/{settingKeyOrId}/value | Replace value |\n| PATCH | /v1/settings/{settingKeyOrId}/value | Update value |\n| GET | /v2/settings/{settingKeyOrId}/value | Get value |\n| PUT | /v2/settings/{settingKeyOrId}/value | Replace value |\n| PATCH | /v2/settings/{settingKeyOrId}/value | Update value |\n\n### environments\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /v1/environments/{environmentId} | Get Environment |\n| PUT | /v1/environments/{environmentId} | Update Environment |\n| DELETE | /v1/environments/{environmentId} | Delete Environment |\n| GET | /v1/environments/{environmentId}/settings/{settingId}/value | Get value |\n| PUT | /v1/environments/{environmentId}/settings/{settingId}/value | Replace value |\n| PATCH | /v1/environments/{environmentId}/settings/{settingId}/value | Update value |\n| GET | /v2/environments/{environmentId}/settings/{settingId}/value | Get value |\n| PUT | /v2/environments/{environmentId}/settings/{settingId}/value | Replace value |\n| PATCH | /v2/environments/{environmentId}/settings/{settingId}/value | Update value |\n| POST | /v1/environments/{environmentId}/settings/{settingId}/integrationLinks/{integrationLinkType}/{key} | Add or update Integration link |\n| DELETE | /v1/environments/{environmentId}/settings/{settingId}/integrationLinks/{integrationLinkType}/{key} | Delete Integration link |\n\n### permissions\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /v1/permissions/{permissionGroupId} | Get Permission Group |\n| PUT | /v1/permissions/{permissionGroupId} | Update Permission Group |\n| DELETE | /v1/permissions/{permissionGroupId} | Delete Permission Group |\n\n### integrations\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /v1/integrations/{integrationId} | Get Integration |\n| PUT | /v1/integrations/{integrationId} | Update Integration |\n| DELETE | /v1/integrations/{integrationId} | Delete Integration |\n\n### integrationLink\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /v1/integrationLink/{integrationLinkType}/{key}/details | Get Integration link |\n\n### me\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /v1/me | Get authenticated user details |\n\n### segments\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /v1/segments/{segmentId} | Get Segment |\n| PUT | /v1/segments/{segmentId} | Update Segment |\n| DELETE | /v1/segments/{segmentId} | Delete Segment |\n\n### tags\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /v1/tags/{tagId}/settings | List Settings by Tag |\n| GET | /v1/tags/{tagId} | Get Tag |\n| PUT | /v1/tags/{tagId} | Update Tag |\n| DELETE | /v1/tags/{tagId} | Delete Tag |\n\n### webhooks\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /v1/webhooks/{webhookId} | Get Webhook |\n| PUT | /v1/webhooks/{webhookId} | Replace Webhook |\n| PATCH | /v1/webhooks/{webhookId} | Update Webhook |\n| DELETE | /v1/webhooks/{webhookId} | Delete Webhook |\n| GET | /v1/webhooks/{webhookId}/keys | Get Webhook Signing Keys |\n\n### jira\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /v1/jira/environments/{environmentId}/settings/{settingId}/integrationLinks/{key} |  |\n| POST | /v1/jira/connect |  |\n\n### code-references\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /v1/code-references/delete-reports | Delete Reference reports |\n| POST | /v1/code-references | Upload References |\n\n### invitations\n| Method | Path | Description |\n|--------|------|-------------|\n| DELETE | /v1/invitations/{invitationId} | Delete Invitation |\n\n## Common Questions\n\nMatch user requests to endpoints in references/api-spec.lap. Key patterns:\n- \"Get proxy-profile details?\" -> GET /v1/proxy-profiles/{proxyProfileId}\n- \"Update a proxy-profile?\" -> PUT /v1/proxy-profiles/{proxyProfileId}\n- \"Partially update a proxy-profile?\" -> PATCH /v1/proxy-profiles/{proxyProfileId}\n- \"Delete a proxy-profile?\" -> DELETE /v1/proxy-profiles/{proxyProfileId}\n- \"List all organizations?\" -> GET /v1/organizations\n- \"List all products?\" -> GET /v1/products\n- \"List all proxy-profiles?\" -> GET /v1/organizations/{organizationId}/proxy-profiles\n- \"Create a proxy-profile?\" -> POST /v1/organizations/{organizationId}/proxy-profiles\n- \"List all tags?\" -> GET /v1/products/{productId}/tags\n- \"Create a tag?\" -> POST /v1/products/{productId}/tags\n- \"List all webhooks?\" -> GET /v1/products/{productId}/webhooks\n- \"List all configs?\" -> GET /v1/products/{productId}/configs\n- \"Create a config?\" -> POST /v1/products/{productId}/configs\n- \"List all environments?\" -> GET /v1/products/{productId}/environments\n- \"Create a environment?\" -> POST /v1/products/{productId}/environments\n- \"List all permissions?\" -> GET /v1/products/{productId}/permissions\n- \"Create a permission?\" -> POST /v1/products/{productId}/permissions\n- \"List all integrations?\" -> GET /v1/products/{productId}/integrations\n- \"Create a integration?\" -> POST /v1/products/{productId}/integrations\n- \"List all segments?\" -> GET /v1/products/{productId}/segments\n- \"Create a segment?\" -> POST /v1/products/{productId}/segments\n- \"List all settings?\" -> GET /v1/configs/{configId}/settings\n- \"Create a setting?\" -> POST /v1/configs/{configId}/settings\n- \"List all auditlogs?\" -> GET /v1/products/{productId}/auditlogs\n- \"List all staleflags?\" -> GET /v1/products/{productId}/staleflags\n- \"List all code-references?\" -> GET /v1/settings/{settingId}/code-references\n- \"Get config details?\" -> GET /v1/configs/{configId}\n- \"Update a config?\" -> PUT /v1/configs/{configId}\n- \"Delete a config?\" -> DELETE /v1/configs/{configId}\n- \"List all deleted-settings?\" -> GET /v1/configs/{configId}/deleted-settings\n- \"Get environment details?\" -> GET /v1/environments/{environmentId}\n- \"Update a environment?\" -> PUT /v1/environments/{environmentId}\n- \"Delete a environment?\" -> DELETE /v1/environments/{environmentId}\n- \"Get permission details?\" -> GET /v1/permissions/{permissionGroupId}\n- \"Update a permission?\" -> PUT /v1/permissions/{permissionGroupId}\n- \"Delete a permission?\" -> DELETE /v1/permissions/{permissionGroupId}\n- \"Get integration details?\" -> GET /v1/integrations/{integrationId}\n- \"Update a integration?\" -> PUT /v1/integrations/{integrationId}\n- \"Delete a integration?\" -> DELETE /v1/integrations/{integrationId}\n- \"List all details?\" -> GET /v1/integrationLink/{integrationLinkType}/{key}/details\n- \"Get environment details?\" -> GET /v1/configs/{configId}/environments/{environmentId}\n- \"List all me?\" -> GET /v1/me\n- \"List all auditlogs?\" -> GET /v1/organizations/{organizationId}/auditlogs\n- \"List all organization-limitations?\" -> GET /v1/organizations/{organizationId}/organization-limitations\n- \"List all members?\" -> GET /v1/organizations/{organizationId}/members\n- \"List all members?\" -> GET /v2/organizations/{organizationId}/members\n- \"List all invitations?\" -> GET /v1/organizations/{organizationId}/invitations\n- \"List all invitations?\" -> GET /v1/products/{productId}/invitations\n- \"List all predefined-variations?\" -> GET /v1/settings/{settingId}/predefined-variations\n- \"Get product details?\" -> GET /v1/products/{productId}\n- \"Update a product?\" -> PUT /v1/products/{productId}\n- \"Delete a product?\" -> DELETE /v1/products/{productId}\n- \"List all members?\" -> GET /v1/products/{productId}/members\n- \"List all preferences?\" -> GET /v1/products/{productId}/preferences\n- \"Create a preference?\" -> POST /v1/products/{productId}/preferences\n- \"Get segment details?\" -> GET /v1/segments/{segmentId}\n- \"Update a segment?\" -> PUT /v1/segments/{segmentId}\n- \"Delete a segment?\" -> DELETE /v1/segments/{segmentId}\n- \"Get setting details?\" -> GET /v1/settings/{settingId}\n- \"Update a setting?\" -> PUT /v1/settings/{settingId}\n- \"Partially update a setting?\" -> PATCH /v1/settings/{settingId}\n- \"Delete a setting?\" -> DELETE /v1/settings/{settingId}\n- \"List all settings?\" -> GET /v1/tags/{tagId}/settings\n- \"List all value?\" -> GET /v1/settings/{settingKeyOrId}/value\n- \"List all value?\" -> GET /v1/environments/{environmentId}/settings/{settingId}/value\n- \"List all value?\" -> GET /v2/settings/{settingKeyOrId}/value\n- \"List all value?\" -> GET /v2/environments/{environmentId}/settings/{settingId}/value\n- \"List all values?\" -> GET /v1/configs/{configId}/environments/{environmentId}/values\n- \"Create a value?\" -> POST /v1/configs/{configId}/environments/{environmentId}/values\n- \"List all values?\" -> GET /v2/configs/{configId}/environments/{environmentId}/values\n- \"Create a value?\" -> POST /v2/configs/{configId}/environments/{environmentId}/values\n- \"Get tag details?\" -> GET /v1/tags/{tagId}\n- \"Update a tag?\" -> PUT /v1/tags/{tagId}\n- \"Delete a tag?\" -> DELETE /v1/tags/{tagId}\n- \"Get webhook details?\" -> GET /v1/webhooks/{webhookId}\n- \"Update a webhook?\" -> PUT /v1/webhooks/{webhookId}\n- \"Partially update a webhook?\" -> PATCH /v1/webhooks/{webhookId}\n- \"Delete a webhook?\" -> DELETE /v1/webhooks/{webhookId}\n- \"List all keys?\" -> GET /v1/webhooks/{webhookId}/keys\n- \"List all sdk-keys?\" -> GET /v1/proxy-profiles/{proxyProfileId}/sdk-keys\n- \"Delete a integrationLink?\" -> DELETE /v1/environments/{environmentId}/settings/{settingId}/integrationLinks/{integrationLinkType}/{key}\n- \"Create a connect?\" -> POST /v1/jira/connect\n- \"Create a product?\" -> POST /v1/organizations/{organizationId}/products\n- \"Create a webhook?\" -> POST /v1/configs/{configId}/environments/{environmentId}/webhooks\n- \"Create a delete-report?\" -> POST /v1/code-references/delete-reports\n- \"Create a deselect?\" -> POST /v1/proxy-profiles/{proxyProfileId}/sdk-keys/deselect\n- \"Create a secret?\" -> POST /v1/proxy-profiles/{proxyProfileId}/secret\n- \"Create a invite?\" -> POST /v1/products/{productId}/members/invite\n- \"Create a code-reference?\" -> POST /v1/code-references\n- \"Create a select?\" -> POST /v1/proxy-profiles/{proxyProfileId}/sdk-keys/select\n- \"Delete a member?\" -> DELETE /v1/organizations/{organizationId}/members/{userId}\n- \"Delete a invitation?\" -> DELETE /v1/invitations/{invitationId}\n- \"Delete a member?\" -> DELETE /v1/products/{productId}/members/{userId}\n- \"How to authenticate?\" -> See Auth section\n\n## Response Tips\n- Check response schemas in references/api-spec.lap for field details\n- Create/update endpoints typically return the created/updated object\n\n## CLI\n\n```bash\n# Update this spec to the latest version\nnpx @lap-platform/lapsh get configcat-public-management-api -o references/api-spec.lap\n\n# Search for related APIs\nnpx @lap-platform/lapsh search configcat-public-management-api\n```\n\n## References\n- Full spec: See references/api-spec.lap for complete endpoint details, parameter tables, and response schemas\n\n> Generated from the official API spec by [LAP](https://lap.sh)\n","references/api-spec.lap":"@lap v0.3\n# Machine-readable API spec. Each @endpoint block is one API call.\n@api ConfigCat Public Management API\n@base https://api.configcat.com\n@version v1\n@auth Bearer basic\n@endpoints 105\n@hint download_for_search\n@toc proxy-profiles(8), organizations(11), products(25), configs(12), settings(13), environments(11), permissions(3), integrations(3), integrationLink(1), me(1), segments(3), tags(4), webhooks(5), jira(2), code-references(2), invitations(1)\n\n@group proxy-profiles\n@endpoint GET /v1/proxy-profiles/{proxyProfileId}\n@desc Get Proxy Profile\n@required {proxyProfileId: str(uuid) # The identifier of the Proxy Profile.}\n@returns(200) {proxyProfileId: str(uuid), name: str, description: str?, lastAccessedAt: str(date-time)?, connectionPreferences: map{sdkPollInterval: int(int32), webhookNotification: any?}, sdkKeySelectionRules: [map]} # When everything is ok, the Proxy Profile is returned.\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endpoint PUT /v1/proxy-profiles/{proxyProfileId}\n@desc Replace Proxy Profile\n@required {proxyProfileId: str(uuid) # The identifier of the Proxy Profile., name: str # The name of the proxy profile.}\n@optional {description: str # The description of the proxy profile., connectionPreferences: any, sdkKeySelectionRules: [map{kind: str, productIdFilter: str(uuid), configIdFilter: str(uuid), environmentIdFilter: str(uuid), productNameMatchFilter: str, configNameMatchFilter: str, environmentNameMatchFilter: str}] # A collection of selection rules that determine the SDK keys applicable for a proxy profile.}\n@returns(200) {proxyProfileId: str(uuid), name: str, description: str?, lastAccessedAt: str(date-time)?, connectionPreferences: map{sdkPollInterval: int(int32), webhookNotification: any?}, sdkKeySelectionRules: [map]} # When the replace was successful.\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endpoint PATCH /v1/proxy-profiles/{proxyProfileId}\n@desc Update Proxy Profile\n@required {proxyProfileId: str(uuid) # The identifier of the Proxy Profile.}\n@returns(200) {proxyProfileId: str(uuid), name: str, description: str?, lastAccessedAt: str(date-time)?, connectionPreferences: map{sdkPollInterval: int(int32), webhookNotification: any?}, sdkKeySelectionRules: [map]} # When the update was successful.\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n@example_request [{\"op\":\"add\",\"path\":\"/sdkKeySelectionRules/-\",\"value\":{\"environmentNameMatchFilter\":\"*Prod*\"}}]\n\n@endpoint DELETE /v1/proxy-profiles/{proxyProfileId}\n@desc Delete Proxy Profile\n@required {proxyProfileId: str(uuid) # The identifier of the Proxy Profile.}\n@returns(204) When the delete was successful.\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endgroup\n\n@group organizations\n@endpoint GET /v1/organizations\n@desc List Organizations\n@returns(200)\n@errors {429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endgroup\n\n@group products\n@endpoint GET /v1/products\n@desc List Products\n@returns(200)\n@errors {429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endgroup\n\n@group organizations\n@endpoint GET /v1/organizations/{organizationId}/proxy-profiles\n@desc List Proxy Profiles\n@required {organizationId: str(uuid) # The identifier of the Organization.}\n@returns(200) {profiles: [map]}\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endpoint POST /v1/organizations/{organizationId}/proxy-profiles\n@desc Create Proxy Profile\n@required {organizationId: str(uuid) # The identifier of the Organization., name: str # The name of the proxy profile.}\n@optional {description: str # The description of the proxy profile., connectionPreferences: any, sdkKeySelectionRules: [map{kind: str, productIdFilter: str(uuid), configIdFilter: str(uuid), environmentIdFilter: str(uuid), productNameMatchFilter: str, configNameMatchFilter: str, environmentNameMatchFilter: str}] # A collection of selection rules that determine the SDK keys applicable for a proxy profile.}\n@returns(201) {proxyProfileId: str(uuid), name: str, description: str?, lastAccessedAt: str(date-time)?, connectionPreferences: map{sdkPollInterval: int(int32), webhookNotification: any?}, sdkKeySelectionRules: [map]} # When the creation was successful.\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endgroup\n\n@group products\n@endpoint GET /v1/products/{productId}/tags\n@desc List Tags\n@required {productId: str(uuid) # The identifier of the Product.}\n@returns(200)\n@errors {429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endpoint POST /v1/products/{productId}/tags\n@desc Create Tag\n@required {productId: str(uuid) # The identifier of the Organization., name: str # Name of the Tag.}\n@optional {color: str # Color of the Tag. Possible values: `panther`, `whale`, `salmon`, `lizard`, `canary`, `koala`, or any HTML color code.}\n@returns(201) {product: map{organization: map{organizationId: str(uuid), name: str}, productId: str(uuid), name: str, description: str?, order: int(int32), reasonRequired: bool}, tagId: int(int64), name: str, color: str?} # When the creation was successful.\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endpoint GET /v1/products/{productId}/webhooks\n@desc List Webhooks\n@required {productId: str(uuid) # The identifier of the Product.}\n@returns(200)\n@errors {429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endpoint GET /v1/products/{productId}/configs\n@desc List Configs\n@required {productId: str(uuid) # The identifier of the Product.}\n@returns(200)\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endpoint POST /v1/products/{productId}/configs\n@desc Create Config\n@required {productId: str(uuid) # The identifier of the Product., name: str # The name of the Config.}\n@optional {description: str # The description of the Config., order: int(int32) # The order of the Config represented on the ConfigCat Dashboard. Determined from an ascending sequence of integers., evaluationVersion: str(v1/v2) # Determines the evaluation version of a Config. Using `v2` enables the new features of Config V2 (https://configcat.com/docs/advanced/config-v2).}\n@returns(201) {product: map{organization: map{organizationId: str(uuid), name: str}, productId: str(uuid), name: str, description: str?, order: int(int32), reasonRequired: bool}, configId: str(uuid), name: str, description: str?, order: int(int32), migratedConfigId: str(uuid)?, evaluationVersion: str} # When the creation was successful.\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endpoint GET /v1/products/{productId}/environments\n@desc List Environments\n@required {productId: str(uuid) # The identifier of the Product.}\n@returns(200)\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endpoint POST /v1/products/{productId}/environments\n@desc Create Environment\n@required {productId: str(uuid) # The identifier of the Product., name: str # The name of the Environment.}\n@optional {color: str # The color of the Environment. RGB or HTML color codes are allowed., description: str # The description of the Environment., order: int(int32) # The order of the Environment represented on the ConfigCat Dashboard. Determined from an ascending sequence of integers.}\n@returns(201) {product: map{organization: map{organizationId: str(uuid), name: str}, productId: str(uuid), name: str, description: str?, order: int(int32), reasonRequired: bool}, environmentId: str(uuid), name: str, color: str?, description: str?, order: int(int32), reasonRequired: bool} # When the creation was successful.\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endpoint GET /v1/products/{productId}/permissions\n@desc List Permission Groups\n@required {productId: str(uuid) # The identifier of the Product.}\n@returns(200)\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endpoint POST /v1/products/{productId}/permissions\n@desc Create Permission Group\n@required {productId: str(uuid) # The identifier of the Product., name: str # Name of the Permission Group.}\n@optional {canManageMembers: bool # Group members can manage team members., canCreateOrUpdateConfig: bool # Group members can create/update Configs., canDeleteConfig: bool # Group members can delete Configs., canCreateOrUpdateEnvironment: bool # Group members can create/update Environments., canDeleteEnvironment: bool # Group members can delete Environments., canCreateOrUpdateSetting: bool # Group members can create/update Feature Flags and Settings., canTagSetting: bool # Group members can attach/detach Tags to Feature Flags and Settings., canDeleteSetting: bool # Group members can delete Feature Flags and Settings., canCreateOrUpdateTag: bool # Group members can create/update Tags., canDeleteTag: bool # Group members can delete Tags., canManageWebhook: bool # Group members can create/update/delete Webhooks., canUseExportImport: bool # Group members can use the export/import feature., canManageProductPreferences: bool # Group members can update Product preferences., canManageIntegrations: bool # Group members can add and configure integrations., canViewSdkKey: bool # Group members has access to SDK keys., canRotateSdkKey: bool # Group members can rotate SDK keys., canCreateOrUpdateSegments: bool # Group members can create/update Segments., canDeleteSegments: bool # Group members can delete Segments., canViewProductAuditLog: bool # Group members has access to audit logs., canViewProductStatistics: bool # Group members has access to product statistics., accessType: str(readOnly/full/custom) # Represent the Feature Management permission., newEnvironmentAccessType: str(full/readOnly/none) # Represent the environment specific Feature Management permission., environmentAccesses: [map{environmentId: str(uuid), environmentAccessType: str}] # List of environment specific permissions., canDisable2FA: bool # Group members can disable two-factor authentication for other members.}\n@returns(201) {permissionGroupId: int(int64), name: str, canManageMembers: bool, canCreateOrUpdateConfig: bool, canDeleteConfig: bool, canCreateOrUpdateEnvironment: bool, canDeleteEnvironment: bool, canCreateOrUpdateSetting: bool, canTagSetting: bool, canDeleteSetting: bool, canCreateOrUpdateTag: bool, canDeleteTag: bool, canManageWebhook: bool, canUseExportImport: bool, canManageProductPreferences: bool, canManageIntegrations: bool, canViewSdkKey: bool, canRotateSdkKey: bool, canCreateOrUpdateSegments: bool, canDeleteSegments: bool, canViewProductAuditLog: bool, canViewProductStatistics: bool, canDisable2FA: bool, accessType: str, newEnvironmentAccessType: str, environmentAccesses: [map], product: map{organization: map{organizationId: str(uuid), name: str}, productId: str(uuid), name: str, description: str?, order: int(int32), reasonRequired: bool}} # When the creation was successful.\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endpoint GET /v1/products/{productId}/integrations\n@desc List Integrations\n@required {productId: str(uuid) # The identifier of the Product.}\n@returns(200) {integrations: [map]}\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endpoint POST /v1/products/{productId}/integrations\n@desc Create Integration\n@required {productId: str(uuid) # The identifier of the Product., integrationType: str(dataDog/slack/amplitude/mixPanel/segment/pubNub), name: str # Name of the Integration., parameters: map # Parameters of the Integration., environmentIds: [str(uuid)] # List of Environment IDs that are connected with this Integration. If the list is empty, all the Environments are connected., configIds: [str(uuid)] # List of Config IDs that are connected with this Integration. If the list is empty, all the Configs are connected.}\n@returns(201) {product: map{organization: map{organizationId: str(uuid), name: str}, productId: str(uuid), name: str, description: str?, order: int(int32), reasonRequired: bool}, integrationId: str(uuid), name: str, integrationType: str, parameters: map?, environmentIds: [str(uuid)], configIds: [str(uuid)]} # When the creation was successful.\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endpoint GET /v1/products/{productId}/segments\n@desc List Segments\n@required {productId: str(uuid) # The identifier of the Product.}\n@returns(200)\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endpoint POST /v1/products/{productId}/segments\n@desc Create Segment\n@required {productId: str(uuid) # The identifier of the Product., name: str # Name of the Segment., comparisonAttribute: str # The user's attribute the evaluation process must take into account., comparator: str(isOneOf/isNotOneOf/contains/doesNotContain/semVerIsOneOf/semVerIsNotOneOf/semVerLess/semVerLessOrEquals/semVerGreater/semVerGreaterOrEquals/numberEquals/numberDoesNotEqual/numberLess/numberLessOrEquals/numberGreater/numberGreaterOrEquals/sensitiveIsOneOf/sensitiveIsNotOneOf) # The comparison operator the evaluation process must use when it compares the given user attribute's value with the comparison value., comparisonValue: str # The value to compare with the given user attribute's value.}\n@optional {description: str # Description of the Segment.}\n@returns(201) {product: map{organization: map{organizationId: str(uuid), name: str}, productId: str(uuid), name: str, description: str?, order: int(int32), reasonRequired: bool}, segmentId: str(uuid), name: str, description: str?, creatorEmail: str?, creatorFullName: str?, createdAt: str(date-time), lastUpdaterEmail: str?, lastUpdaterFullName: str?, updatedAt: str(date-time), comparisonAttribute: str, comparator: str, comparisonValue: str} # When the creation was successful.\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endgroup\n\n@group configs\n@endpoint GET /v1/configs/{configId}/settings\n@desc List Flags\n@required {configId: str(uuid) # The identifier of the Config.}\n@returns(200)\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endpoint POST /v1/configs/{configId}/settings\n@desc Create Flag\n@required {configId: str(uuid) # The identifier of the Config., name: str # The name of the Feature Flag or Setting., key: str # The key of the Feature Flag or Setting., settingType: str(boolean/string/int/double) # The type of the Feature Flag or Setting.}\n@optional {hint: str # A short description for the setting, shown on the Dashboard UI., tags: [int(int64)] # The IDs of the tags which are attached to the setting., order: int(int32) # The order of the Setting represented on the ConfigCat Dashboard. Determined from an ascending sequence of integers., predefinedVariations: [map{value!: map, name: str, hint: str}] # The Feature Flag or Setting's Variations., initialValues: [map{environmentId: str(uuid), value!: any}] # Optional, initial value of the Feature Flag or Setting in the given Environments. Only one of the SettingIdToInitFrom or the InitialValues properties can be set., settingIdToInitFrom: int(int32) # Optional, the SettingId to initialize the values and tags of the Feature Flag or Setting from. Only can be set if you have at least ReadOnly access in all the Environments. Only one of the SettingIdToInitFrom or the InitialValues properties can be set.}\n@returns(201) {settingId: int(int32), key: str, name: str, hint: str?, order: int(int32), settingType: str, configId: str(uuid), configName: str, createdAt: str(date-time)?, tags: [map], predefinedVariations: [map]} # When the creation was successful.\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endgroup\n\n@group products\n@endpoint GET /v1/products/{productId}/auditlogs\n@desc List Audit log items for Product\n@required {productId: str(uuid) # The identifier of the Product.}\n@optional {configId: str(uuid) # The identifier of the Config., environmentId: str(uuid) # The identifier of the Environment., auditLogType: any # Filter Audit logs by Audit log type., fromUtcDateTime: str(date-time) # Filter Audit logs by starting UTC date., toUtcDateTime: str(date-time) # Filter Audit logs by ending UTC date.}\n@returns(200)\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endpoint GET /v1/products/{productId}/staleflags\n@desc List Zombie (stale) flags for Product\n@required {productId: str(uuid) # The identifier of the Product.}\n@optional {scope: str # The scope of the report., staleFlagAgeDays: int(int32) # The inactivity in days after a feature flag should be considered stale., staleFlagStaleInEnvironmentsType: str # Consider a feature flag as stale if the feature flag is stale in all/any of the environments., ignoredEnvironmentIds: [str(uuid)] # Ignore environment identifiers from the report., ignoredTagIds: [int(int64)] # Ignore feature flags from the report based on their tag identifiers.}\n@returns(200) {productId: str(uuid), name: str, configs: [map], environments: [map]}\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endgroup\n\n@group settings\n@endpoint GET /v1/settings/{settingId}/code-references\n@desc Get References for Feature Flag or Setting\n@required {settingId: int(int32) # The identifier of the Feature Flag or Setting.}\n@returns(200)\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endgroup\n\n@group configs\n@endpoint GET /v1/configs/{configId}\n@desc Get Config\n@required {configId: str(uuid) # The identifier of the Config.}\n@returns(200) {product: map{organization: map{organizationId: str(uuid), name: str}, productId: str(uuid), name: str, description: str?, order: int(int32), reasonRequired: bool}, configId: str(uuid), name: str, description: str?, order: int(int32), migratedConfigId: str(uuid)?, evaluationVersion: str} # When everything is ok, the config data returned.\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endpoint PUT /v1/configs/{configId}\n@desc Update Config\n@required {configId: str(uuid) # The identifier of the Config.}\n@optional {name: str # The name of the Config., description: str # The description of the Config., order: int(int32) # The order of the Config represented on the ConfigCat Dashboard. Determined from an ascending sequence of integers.}\n@returns(200) {product: map{organization: map{organizationId: str(uuid), name: str}, productId: str(uuid), name: str, description: str?, order: int(int32), reasonRequired: bool}, configId: str(uuid), name: str, description: str?, order: int(int32), migratedConfigId: str(uuid)?, evaluationVersion: str}\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endpoint DELETE /v1/configs/{configId}\n@desc Delete Config\n@required {configId: str(uuid) # The identifier of the Config.}\n@returns(204) When the delete was successful.\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endpoint GET /v1/configs/{configId}/deleted-settings\n@desc List Deleted Settings\n@required {configId: str(uuid) # The identifier of the Config.}\n@returns(200)\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endgroup\n\n@group environments\n@endpoint GET /v1/environments/{environmentId}\n@desc Get Environment\n@required {environmentId: str(uuid) # The identifier of the Environment.}\n@returns(200) {product: map{organization: map{organizationId: str(uuid), name: str}, productId: str(uuid), name: str, description: str?, order: int(int32), reasonRequired: bool}, environmentId: str(uuid), name: str, color: str?, description: str?, order: int(int32), reasonRequired: bool} # When everything is ok, the environment data returned.\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endpoint PUT /v1/environments/{environmentId}\n@desc Update Environment\n@required {environmentId: str(uuid) # The identifier of the Environment.}\n@optional {name: str # The name of the Environment., color: str # The color of the Environment. RGB or HTML color codes are allowed., description: str # The description of the Environment., order: int(int32) # The order of the Environment represented on the ConfigCat Dashboard. Determined from an ascending sequence of integers.}\n@returns(200) {product: map{organization: map{organizationId: str(uuid), name: str}, productId: str(uuid), name: str, description: str?, order: int(int32), reasonRequired: bool}, environmentId: str(uuid), name: str, color: str?, description: str?, order: int(int32), reasonRequired: bool}\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endpoint DELETE /v1/environments/{environmentId}\n@desc Delete Environment\n@required {environmentId: str(uuid) # The identifier of the Environment.}\n@optional {cleanupAuditLogs: bool # An optional flag which indicates whether the audit log records related to the environment should be deleted or not.}\n@returns(204) When the delete was successful.\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endgroup\n\n@group permissions\n@endpoint GET /v1/permissions/{permissionGroupId}\n@desc Get Permission Group\n@required {permissionGroupId: int(int64) # The identifier of the Permission Group.}\n@returns(200) {permissionGroupId: int(int64), name: str, canManageMembers: bool, canCreateOrUpdateConfig: bool, canDeleteConfig: bool, canCreateOrUpdateEnvironment: bool, canDeleteEnvironment: bool, canCreateOrUpdateSetting: bool, canTagSetting: bool, canDeleteSetting: bool, canCreateOrUpdateTag: bool, canDeleteTag: bool, canManageWebhook: bool, canUseExportImport: bool, canManageProductPreferences: bool, canManageIntegrations: bool, canViewSdkKey: bool, canRotateSdkKey: bool, canCreateOrUpdateSegments: bool, canDeleteSegments: bool, canViewProductAuditLog: bool, canViewProductStatistics: bool, canDisable2FA: bool, accessType: str, newEnvironmentAccessType: str, environmentAccesses: [map], product: map{organization: map{organizationId: str(uuid), name: str}, productId: str(uuid), name: str, description: str?, order: int(int32), reasonRequired: bool}} # When everything is ok, the permission group data returned.\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endpoint PUT /v1/permissions/{permissionGroupId}\n@desc Update Permission Group\n@required {permissionGroupId: int(int64) # The identifier of the Permission Group.}\n@optional {name: str # Name of the Permission Group., canManageMembers: bool # Group members can manage team members., canCreateOrUpdateConfig: bool # Group members can create/update Configs., canDeleteConfig: bool # Group members can delete Configs., canCreateOrUpdateEnvironment: bool # Group members can create/update Environments., canDeleteEnvironment: bool # Group members can delete Environments., canCreateOrUpdateSetting: bool # Group members can create/update Feature Flags and Settings., canTagSetting: bool # Group members can attach/detach Tags to Feature Flags and Settings., canDeleteSetting: bool # Group members can delete Feature Flags and Settings., canCreateOrUpdateTag: bool # Group members can create/update Tags., canDeleteTag: bool # Group members can delete Tags., canManageWebhook: bool # Group members can create/update/delete Webhooks., canUseExportImport: bool # Group members can use the export/import feature., canManageProductPreferences: bool # Group members can update Product preferences., canManageIntegrations: bool # Group members can add and configure integrations., canViewSdkKey: bool # Group members has access to SDK keys., canRotateSdkKey: bool # Group members can rotate SDK keys., canCreateOrUpdateSegments: bool # Group members can create/update Segments., canDeleteSegments: bool # Group members can delete Segments., canViewProductAuditLog: bool # Group members has access to audit logs., canViewProductStatistics: bool # Group members has access to product statistics., canDisable2FA: bool # Group members can disable two-factor authentication for other members., accessType: any, newEnvironmentAccessType: any, environmentAccesses: [map{environmentId: str(uuid), environmentAccessType: str}] # List of environment specific permissions.}\n@returns(200) {permissionGroupId: int(int64), name: str, canManageMembers: bool, canCreateOrUpdateConfig: bool, canDeleteConfig: bool, canCreateOrUpdateEnvironment: bool, canDeleteEnvironment: bool, canCreateOrUpdateSetting: bool, canTagSetting: bool, canDeleteSetting: bool, canCreateOrUpdateTag: bool, canDeleteTag: bool, canManageWebhook: bool, canUseExportImport: bool, canManageProductPreferences: bool, canManageIntegrations: bool, canViewSdkKey: bool, canRotateSdkKey: bool, canCreateOrUpdateSegments: bool, canDeleteSegments: bool, canViewProductAuditLog: bool, canViewProductStatistics: bool, canDisable2FA: bool, accessType: str, newEnvironmentAccessType: str, environmentAccesses: [map], product: map{organization: map{organizationId: str(uuid), name: str}, productId: str(uuid), name: str, description: str?, order: int(int32), reasonRequired: bool}}\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endpoint DELETE /v1/permissions/{permissionGroupId}\n@desc Delete Permission Group\n@required {permissionGroupId: int(int64) # The identifier of the Permission Group.}\n@returns(204) When the delete was successful.\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endgroup\n\n@group integrations\n@endpoint GET /v1/integrations/{integrationId}\n@desc Get Integration\n@required {integrationId: str(uuid) # The identifier of the Integration.}\n@returns(200) {product: map{organization: map{organizationId: str(uuid), name: str}, productId: str(uuid), name: str, description: str?, order: int(int32), reasonRequired: bool}, integrationId: str(uuid), name: str, integrationType: str, parameters: map?, environmentIds: [str(uuid)], configIds: [str(uuid)]} # When everything is ok, the integration data returned.\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endpoint PUT /v1/integrations/{integrationId}\n@desc Update Integration\n@required {integrationId: str(uuid) # The identifier of the Integration., name: str # Name of the Integration., parameters: map # Parameters of the Integration., environmentIds: [str(uuid)] # List of Environment IDs that are connected with this Integration. If the list is empty, all the Environments are connected., configIds: [str(uuid)] # List of Config IDs that are connected with this Integration. If the list is empty, all the Configs are connected.}\n@returns(200) {product: map{organization: map{organizationId: str(uuid), name: str}, productId: str(uuid), name: str, description: str?, order: int(int32), reasonRequired: bool}, integrationId: str(uuid), name: str, integrationType: str, parameters: map?, environmentIds: [str(uuid)], configIds: [str(uuid)]}\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endpoint DELETE /v1/integrations/{integrationId}\n@desc Delete Integration\n@required {integrationId: str(uuid) # The identifier of the Integration.}\n@returns(204) When the delete was successful.\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endgroup\n\n@group integrationLink\n@endpoint GET /v1/integrationLink/{integrationLinkType}/{key}/details\n@desc Get Integration link\n@required {integrationLinkType: str # The integration link's type., key: str # The key of the integration link.}\n@returns(200) {details: [map]?, allIntegrationLinkCount: int(int32)} # When everything is ok, the details for the integration link returned.\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endgroup\n\n@group configs\n@endpoint GET /v1/configs/{configId}/environments/{environmentId}\n@desc Get SDK Key\n@required {configId: str(uuid) # The identifier of the Config., environmentId: str(uuid) # The identifier of the Environment.}\n@returns(200) {primary: str, secondary: str?}\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endgroup\n\n@group me\n@endpoint GET /v1/me\n@desc Get authenticated user details\n@returns(200) {email: str, fullName: str}\n@errors {429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endgroup\n\n@group organizations\n@endpoint GET /v1/organizations/{organizationId}/auditlogs\n@desc List Audit log items for Organization\n@required {organizationId: str(uuid) # The identifier of the Organization.}\n@optional {productId: str(uuid) # The identifier of the Product., configId: str(uuid) # The identifier of the Config., environmentId: str(uuid) # The identifier of the Environment., auditLogType: any # Filter Audit logs by Audit log type., fromUtcDateTime: str(date-time) # Filter Audit logs by starting UTC date., toUtcDateTime: str(date-time) # Filter Audit logs by ending UTC date.}\n@returns(200)\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endpoint GET /v1/organizations/{organizationId}/organization-limitations\n@desc Get Organization limitations\n@required {organizationId: str(uuid) # The identifier of the Organization.}\n@returns(200) {maxPercentageOptionCount: int(int32), maxTargetingRuleCount: int(int32), maxComparisonValueLength: int(int32), maxComparisonValueListLength: int(int32), maxComparisonValueListItemLength: int(int32), maxStringFlagValueLength: int(int32), maxConditionPerTargetingRuleCount: int(int32), maxPredefinedVariations: int(int32)}\n@errors {429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endpoint GET /v1/organizations/{organizationId}/members\n@desc List Organization Members\n@required {organizationId: str(uuid) # The identifier of the Organization.}\n@returns(200)\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endpoint GET /v2/organizations/{organizationId}/members\n@desc List Organization Members\n@required {organizationId: str(uuid) # The identifier of the Organization.}\n@returns(200) {admins: [map], billingManagers: [map], members: [map]}\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endpoint GET /v1/organizations/{organizationId}/invitations\n@desc List Pending Invitations in Organization\n@required {organizationId: str(uuid) # The identifier of the Organization.}\n@returns(200)\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endgroup\n\n@group products\n@endpoint GET /v1/products/{productId}/invitations\n@desc List Pending Invitations in Product\n@required {productId: str(uuid) # The identifier of the Product.}\n@returns(200)\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endgroup\n\n@group settings\n@endpoint GET /v1/settings/{settingId}/predefined-variations\n@desc Get predefined variations\n@required {settingId: int(int32) # The identifier of the Setting.}\n@returns(200) {settingKey: str, settingType: str, predefinedVariations: [map], environments: [map], maxPredefinedVariations: int(int32)} # When the update was successful.\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endpoint PUT /v1/settings/{settingId}/predefined-variations\n@desc Update predefined variations\n@required {settingId: int(int32) # The identifier of the Setting., predefinedVariations: [map{value!: map, name: str, hint: str, predefinedVariationId: str(uuid)}] # A collection of Predefined Variations.}\n@returns(200) {predefinedVariations: [map], maxPredefinedVariations: int(int32)} # When the update was successful.\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endgroup\n\n@group products\n@endpoint GET /v1/products/{productId}\n@desc Get Product\n@required {productId: str(uuid) # The identifier of the Product.}\n@returns(200) {organization: map{organizationId: str(uuid), name: str}, productId: str(uuid), name: str, description: str?, order: int(int32), reasonRequired: bool} # When everything is ok, the product data is returned.\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endpoint PUT /v1/products/{productId}\n@desc Update Product\n@required {productId: str(uuid) # The identifier of the Product.}\n@optional {name: str # The name of the Product., description: str # The description of the Product., order: int(int32) # The order of the Product represented on the ConfigCat Dashboard. Determined from an ascending sequence of integers.}\n@returns(200) {organization: map{organizationId: str(uuid), name: str}, productId: str(uuid), name: str, description: str?, order: int(int32), reasonRequired: bool}\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endpoint DELETE /v1/products/{productId}\n@desc Delete Product\n@required {productId: str(uuid) # The identifier of the Product.}\n@returns(204) When the delete was successful.\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endpoint GET /v1/products/{productId}/members\n@desc List Product Members\n@required {productId: str(uuid) # The identifier of the Product.}\n@returns(200)\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endpoint GET /v1/products/{productId}/preferences\n@desc Get Product Preferences\n@required {productId: str(uuid) # The identifier of the Product.}\n@returns(200) {reasonRequired: bool, keyGenerationMode: str, showVariationId: bool, reasonRequiredEnvironments: [map]?, mandatorySettingHint: bool} # When everything is ok, the product preferences data is returned.\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endpoint POST /v1/products/{productId}/preferences\n@desc Update Product Preferences\n@required {productId: str(uuid) # The identifier of the Product.}\n@optional {reasonRequired: bool # Indicates that a mandatory note is required for saving and publishing., keyGenerationMode: any, showVariationId: bool # Indicates whether a variation ID's must be shown on the ConfigCat Dashboard., mandatorySettingHint: bool # Indicates whether Feature flags and Settings must have a hint., reasonRequiredEnvironments: [map{environmentId: str(uuid), reasonRequired: bool}] # List of Environments where mandatory note must be set before saving and publishing.}\n@returns(200) {reasonRequired: bool, keyGenerationMode: str, showVariationId: bool, reasonRequiredEnvironments: [map]?, mandatorySettingHint: bool} # When the update was successful.\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endgroup\n\n@group segments\n@endpoint GET /v1/segments/{segmentId}\n@desc Get Segment\n@required {segmentId: str(uuid) # The identifier of the Segment.}\n@returns(200) {product: map{organization: map{organizationId: str(uuid), name: str}, productId: str(uuid), name: str, description: str?, order: int(int32), reasonRequired: bool}, segmentId: str(uuid), name: str, description: str?, creatorEmail: str?, creatorFullName: str?, createdAt: str(date-time), lastUpdaterEmail: str?, lastUpdaterFullName: str?, updatedAt: str(date-time), comparisonAttribute: str, comparator: str, comparisonValue: str} # When everything is ok, the config data returned.\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endpoint PUT /v1/segments/{segmentId}\n@desc Update Segment\n@required {segmentId: str(uuid) # The identifier of the Segment.}\n@optional {name: str, description: str, comparisonAttribute: str, comparator: any, comparisonValue: str}\n@returns(200) {product: map{organization: map{organizationId: str(uuid), name: str}, productId: str(uuid), name: str, description: str?, order: int(int32), reasonRequired: bool}, segmentId: str(uuid), name: str, description: str?, creatorEmail: str?, creatorFullName: str?, createdAt: str(date-time), lastUpdaterEmail: str?, lastUpdaterFullName: str?, updatedAt: str(date-time), comparisonAttribute: str, comparator: str, comparisonValue: str}\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endpoint DELETE /v1/segments/{segmentId}\n@desc Delete Segment\n@required {segmentId: str(uuid) # The identifier of the Segment.}\n@returns(204) When the delete was successful.\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endgroup\n\n@group settings\n@endpoint GET /v1/settings/{settingId}\n@desc Get Flag\n@required {settingId: int(int32) # The identifier of the Setting.}\n@returns(200) {settingId: int(int32), key: str, name: str, hint: str?, order: int(int32), settingType: str, configId: str(uuid), configName: str, createdAt: str(date-time)?, tags: [map], predefinedVariations: [map]} # When everything is ok, the setting data returned.\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endpoint PUT /v1/settings/{settingId}\n@desc Replace Flag\n@required {settingId: int(int32) # The identifier of the Setting., name: str # The name of the Feature Flag or Setting.}\n@optional {hint: str # A short description for the setting, shown on the Dashboard UI., tags: [int(int64)] # The IDs of the tags which are attached to the setting., order: int(int32) # The order of the Setting represented on the ConfigCat Dashboard. Determined from an ascending sequence of integers.}\n@returns(200) {settingId: int(int32), key: str, name: str, hint: str?, order: int(int32), settingType: str, configId: str(uuid), configName: str, createdAt: str(date-time)?, tags: [map], predefinedVariations: [map]} # When the replace was successful.\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endpoint PATCH /v1/settings/{settingId}\n@desc Update Flag\n@required {settingId: int(int32) # The identifier of the Setting.}\n@returns(200) {settingId: int(int32), key: str, name: str, hint: str?, order: int(int32), settingType: str, configId: str(uuid), configName: str, createdAt: str(date-time)?, tags: [map], predefinedVariations: [map]} # When the update was successful.\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endpoint DELETE /v1/settings/{settingId}\n@desc Delete Flag\n@required {settingId: int(int32) # The identifier of the Setting.}\n@returns(204) When the delete was successful.\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endgroup\n\n@group tags\n@endpoint GET /v1/tags/{tagId}/settings\n@desc List Settings by Tag\n@required {tagId: int(int64) # The identifier of the Tag.}\n@returns(200) When everything is ok, the settings data returned.\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endgroup\n\n@group settings\n@endpoint GET /v1/settings/{settingKeyOrId}/value\n@desc Get value\n@required {settingKeyOrId: str # The key or id of the Setting.}\n@optional {X-CONFIGCAT-SDKKEY: str # The ConfigCat SDK Key. (https://app.configcat.com/sdkkey)}\n@returns(200) {setting: map{settingId: int(int32), key: str, name: str, hint: str?, settingType: str, order: int(int32), createdAt: str(date-time)?, creatorEmail: str?, creatorFullName: str?, isWatching: bool}, updatedAt: str(date-time)?, lastUpdaterUserEmail: str?, lastUpdaterUserFullName: str?, integrationLinks: [map], settingTags: [map], rolloutRules: [map], rolloutPercentageItems: [map], value: any, config: map{product: map{organization: map{organizationId: str(uuid), name: str}, productId: str(uuid), name: str, description: str?, order: int(int32), reasonRequired: bool}, configId: str(uuid), name: str, description: str?, order: int(int32), migratedConfigId: str(uuid)?, evaluationVersion: str}, environment: map{product: map{organization: map{organizationId: str(uuid), name: str}, productId: str(uuid), name: str, description: str?, order: int(int32), reasonRequired: bool}, environmentId: str(uuid), name: str, color: str?, description: str?, order: int(int32), reasonRequired: bool}, featureFlagLimitations: map{maxPercentageOptionCount: int(int32), maxTargetingRuleCount: int(int32), maxComparisonValueLength: int(int32), maxComparisonValueListLength: int(int32), maxComparisonValueListItemLength: int(int32), maxStringFlagValueLength: int(int32), maxConditionPerTargetingRuleCount: int(int32)}, readOnly: bool}\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endpoint PUT /v1/settings/{settingKeyOrId}/value\n@desc Replace value\n@required {settingKeyOrId: str # The key or id of the Setting., value: any # The value to serve. It must respect the setting type. In some generated clients for strictly typed languages you may use double/float properties to handle integer values.}\n@optional {reason: str # The reason note for the Audit Log if the Product's \"Config changes require a reason\" preference is turned on., X-CONFIGCAT-SDKKEY: str # The ConfigCat SDK Key. (https://app.configcat.com/sdkkey), rolloutRules: [map{comparisonAttribute: str, comparator: any, comparisonValue: str, value!: any, segmentComparator: any, segmentId: str(uuid)}] # The targeting rule collection., rolloutPercentageItems: [map{percentage!: int(int64), value!: any}] # The percentage rule collection.}\n@returns(200) {setting: map{settingId: int(int32), key: str, name: str, hint: str?, settingType: str, order: int(int32), createdAt: str(date-time)?, creatorEmail: str?, creatorFullName: str?, isWatching: bool}, updatedAt: str(date-time)?, lastUpdaterUserEmail: str?, lastUpdaterUserFullName: str?, integrationLinks: [map], settingTags: [map], rolloutRules: [map], rolloutPercentageItems: [map], value: any, config: map{product: map{organization: map{organizationId: str(uuid), name: str}, productId: str(uuid), name: str, description: str?, order: int(int32), reasonRequired: bool}, configId: str(uuid), name: str, description: str?, order: int(int32), migratedConfigId: str(uuid)?, evaluationVersion: str}, environment: map{product: map{organization: map{organizationId: str(uuid), name: str}, productId: str(uuid), name: str, description: str?, order: int(int32), reasonRequired: bool}, environmentId: str(uuid), name: str, color: str?, description: str?, order: int(int32), reasonRequired: bool}, featureFlagLimitations: map{maxPercentageOptionCount: int(int32), maxTargetingRuleCount: int(int32), maxComparisonValueLength: int(int32), maxComparisonValueListLength: int(int32), maxComparisonValueListItemLength: int(int32), maxStringFlagValueLength: int(int32), maxConditionPerTargetingRuleCount: int(int32)}, readOnly: bool}\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n@example_request {\"value\":true}\n\n@endpoint PATCH /v1/settings/{settingKeyOrId}/value\n@desc Update value\n@required {settingKeyOrId: str # The key or id of the Setting.}\n@optional {reason: str # The reason note for the Audit Log if the Product's \"Config changes require a reason\" preference is turned on., X-CONFIGCAT-SDKKEY: str # The ConfigCat SDK Key. (https://app.configcat.com/sdkkey)}\n@returns(200) {setting: map{settingId: int(int32), key: str, name: str, hint: str?, settingType: str, order: int(int32), createdAt: str(date-time)?, creatorEmail: str?, creatorFullName: str?, isWatching: bool}, updatedAt: str(date-time)?, lastUpdaterUserEmail: str?, lastUpdaterUserFullName: str?, integrationLinks: [map], settingTags: [map], rolloutRules: [map], rolloutPercentageItems: [map], value: any, config: map{product: map{organization: map{organizationId: str(uuid), name: str}, productId: str(uuid), name: str, description: str?, order: int(int32), reasonRequired: bool}, configId: str(uuid), name: str, description: str?, order: int(int32), migratedConfigId: str(uuid)?, evaluationVersion: str}, environment: map{product: map{organization: map{organizationId: str(uuid), name: str}, productId: str(uuid), name: str, description: str?, order: int(int32), reasonRequired: bool}, environmentId: str(uuid), name: str, color: str?, description: str?, order: int(int32), reasonRequired: bool}, featureFlagLimitations: map{maxPercentageOptionCount: int(int32), maxTargetingRuleCount: int(int32), maxComparisonValueLength: int(int32), maxComparisonValueListLength: int(int32), maxComparisonValueListItemLength: int(int32), maxStringFlagValueLength: int(int32), maxConditionPerTargetingRuleCount: int(int32)}, readOnly: bool}\n@returns(204) When no change applied on the resource.\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n@example_request [{\"op\":\"replace\",\"path\":\"/value\",\"value\":true}]\n\n@endgroup\n\n@group environments\n@endpoint GET /v1/environments/{environmentId}/settings/{settingId}/value\n@desc Get value\n@required {environmentId: str(uuid) # The identifier of the Environment., settingId: int(int32) # The id of the Setting.}\n@returns(200) {setting: map{settingId: int(int32), key: str, name: str, hint: str?, settingType: str, order: int(int32), createdAt: str(date-time)?, creatorEmail: str?, creatorFullName: str?, isWatching: bool}, updatedAt: str(date-time)?, lastUpdaterUserEmail: str?, lastUpdaterUserFullName: str?, integrationLinks: [map], settingTags: [map], rolloutRules: [map], rolloutPercentageItems: [map], value: any, config: map{product: map{organization: map{organizationId: str(uuid), name: str}, productId: str(uuid), name: str, description: str?, order: int(int32), reasonRequired: bool}, configId: str(uuid), name: str, description: str?, order: int(int32), migratedConfigId: str(uuid)?, evaluationVersion: str}, environment: map{product: map{organization: map{organizationId: str(uuid), name: str}, productId: str(uuid), name: str, description: str?, order: int(int32), reasonRequired: bool}, environmentId: str(uuid), name: str, color: str?, description: str?, order: int(int32), reasonRequired: bool}, featureFlagLimitations: map{maxPercentageOptionCount: int(int32), maxTargetingRuleCount: int(int32), maxComparisonValueLength: int(int32), maxComparisonValueListLength: int(int32), maxComparisonValueListItemLength: int(int32), maxStringFlagValueLength: int(int32), maxConditionPerTargetingRuleCount: int(int32)}, readOnly: bool} # When everything is ok, the setting value data returned.\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endpoint PUT /v1/environments/{environmentId}/settings/{settingId}/value\n@desc Replace value\n@required {environmentId: str(uuid) # The identifier of the Environment., settingId: int(int32) # The id of the Setting., value: any # The value to serve. It must respect the setting type. In some generated clients for strictly typed languages you may use double/float properties to handle integer values.}\n@optional {reason: str # The reason note for the Audit Log if the Product's \"Config changes require a reason\" preference is turned on., rolloutRules: [map{comparisonAttribute: str, comparator: any, comparisonValue: str, value!: any, segmentComparator: any, segmentId: str(uuid)}] # The targeting rule collection., rolloutPercentageItems: [map{percentage!: int(int64), value!: any}] # The percentage rule collection.}\n@returns(200) {setting: map{settingId: int(int32), key: str, name: str, hint: str?, settingType: str, order: int(int32), createdAt: str(date-time)?, creatorEmail: str?, creatorFullName: str?, isWatching: bool}, updatedAt: str(date-time)?, lastUpdaterUserEmail: str?, lastUpdaterUserFullName: str?, integrationLinks: [map], settingTags: [map], rolloutRules: [map], rolloutPercentageItems: [map], value: any, config: map{product: map{organization: map{organizationId: str(uuid), name: str}, productId: str(uuid), name: str, description: str?, order: int(int32), reasonRequired: bool}, configId: str(uuid), name: str, description: str?, order: int(int32), migratedConfigId: str(uuid)?, evaluationVersion: str}, environment: map{product: map{organization: map{organizationId: str(uuid), name: str}, productId: str(uuid), name: str, description: str?, order: int(int32), reasonRequired: bool}, environmentId: str(uuid), name: str, color: str?, description: str?, order: int(int32), reasonRequired: bool}, featureFlagLimitations: map{maxPercentageOptionCount: int(int32), maxTargetingRuleCount: int(int32), maxComparisonValueLength: int(int32), maxComparisonValueListLength: int(int32), maxComparisonValueListItemLength: int(int32), maxStringFlagValueLength: int(int32), maxConditionPerTargetingRuleCount: int(int32)}, readOnly: bool}\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n@example_request {\"value\":true}\n\n@endpoint PATCH /v1/environments/{environmentId}/settings/{settingId}/value\n@desc Update value\n@required {environmentId: str(uuid) # The identifier of the Environment., settingId: int(int32) # The id of the Setting.}\n@optional {reason: str # The reason note for the Audit Log if the Product's \"Config changes require a reason\" preference is turned on.}\n@returns(200) {setting: map{settingId: int(int32), key: str, name: str, hint: str?, settingType: str, order: int(int32), createdAt: str(date-time)?, creatorEmail: str?, creatorFullName: str?, isWatching: bool}, updatedAt: str(date-time)?, lastUpdaterUserEmail: str?, lastUpdaterUserFullName: str?, integrationLinks: [map], settingTags: [map], rolloutRules: [map], rolloutPercentageItems: [map], value: any, config: map{product: map{organization: map{organizationId: str(uuid), name: str}, productId: str(uuid), name: str, description: str?, order: int(int32), reasonRequired: bool}, configId: str(uuid), name: str, description: str?, order: int(int32), migratedConfigId: str(uuid)?, evaluationVersion: str}, environment: map{product: map{organization: map{organizationId: str(uuid), name: str}, productId: str(uuid), name: str, description: str?, order: int(int32), reasonRequired: bool}, environmentId: str(uuid), name: str, color: str?, description: str?, order: int(int32), reasonRequired: bool}, featureFlagLimitations: map{maxPercentageOptionCount: int(int32), maxTargetingRuleCount: int(int32), maxComparisonValueLength: int(int32), maxComparisonValueListLength: int(int32), maxComparisonValueListItemLength: int(int32), maxStringFlagValueLength: int(int32), maxConditionPerTargetingRuleCount: int(int32)}, readOnly: bool} # When the patch was successful.\n@returns(204) When no change applied on the resource.\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n@example_request [{\"op\":\"replace\",\"path\":\"/value\",\"value\":true}]\n\n@endgroup\n\n@group settings\n@endpoint GET /v2/settings/{settingKeyOrId}/value\n@desc Get value\n@required {settingKeyOrId: str # The key or id of the Setting.}\n@optional {X-CONFIGCAT-SDKKEY: str # The ConfigCat SDK Key. (https://app.configcat.com/sdkkey)}\n@returns(200) {lastVersionId: str(uuid), defaultValue: map{boolValue: bool?, stringValue: str?, intValue: int(int32)?, doubleValue: num(double)?, predefinedVariationId: str(uuid)?}, targetingRules: [map], setting: map{settingId: int(int32), key: str, name: str, hint: str?, settingType: str, order: int(int32), createdAt: str(date-time)?, creatorEmail: str?, creatorFullName: str?, predefinedVariations: [map], isWatching: bool}, updatedAt: str(date-time)?, percentageEvaluationAttribute: str?, lastUpdaterUserEmail: str?, lastUpdaterUserFullName: str?, integrationLinks: [map], settingTags: [map], settingIdsWherePrerequisite: [int(int32)], config: map{product: map{organization: map{organizationId: str(uuid), name: str}, productId: str(uuid), name: str, description: str?, order: int(int32), reasonRequired: bool}, configId: str(uuid), name: str, description: str?, order: int(int32), migratedConfigId: str(uuid)?, evaluationVersion: str}, environment: map{product: map{organization: map{organizationId: str(uuid), name: str}, productId: str(uuid), name: str, description: str?, order: int(int32), reasonRequired: bool}, environmentId: str(uuid), name: str, color: str?, description: str?, order: int(int32), reasonRequired: bool}, readOnly: bool, featureFlagLimitations: map{maxPercentageOptionCount: int(int32), maxTargetingRuleCount: int(int32), maxComparisonValueLength: int(int32), maxComparisonValueListLength: int(int32), maxComparisonValueListItemLength: int(int32), maxStringFlagValueLength: int(int32), maxConditionPerTargetingRuleCount: int(int32)}}\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endpoint PUT /v2/settings/{settingKeyOrId}/value\n@desc Replace value\n@required {settingKeyOrId: str # The key or id of the Setting., defaultValue: map{boolValue: bool, stringValue: str, intValue: int(int32), doubleValue: num(double), predefinedVariationId: str(uuid)} # Represents the value of a Feature Flag or Setting.}\n@optional {reason: str # The reason note for the Audit Log if the Product's \"Config changes require a reason\" preference is turned on., X-CONFIGCAT-SDKKEY: str # The ConfigCat SDK Key. (https://app.configcat.com/sdkkey), targetingRules: [map{conditions: [map], percentageOptions: [map], value: any}] # The targeting rules of the Feature Flag or Setting., percentageEvaluationAttribute: str # The user attribute used for percentage evaluation. If not set, it defaults to the `Identifier` user object attribute.}\n@returns(200) {lastVersionId: str(uuid), defaultValue: map{boolValue: bool?, stringValue: str?, intValue: int(int32)?, doubleValue: num(double)?, predefinedVariationId: str(uuid)?}, targetingRules: [map], setting: map{settingId: int(int32), key: str, name: str, hint: str?, settingType: str, order: int(int32), createdAt: str(date-time)?, creatorEmail: str?, creatorFullName: str?, predefinedVariations: [map], isWatching: bool}, updatedAt: str(date-time)?, percentageEvaluationAttribute: str?, lastUpdaterUserEmail: str?, lastUpdaterUserFullName: str?, integrationLinks: [map], settingTags: [map], settingIdsWherePrerequisite: [int(int32)], config: map{product: map{organization: map{organizationId: str(uuid), name: str}, productId: str(uuid), name: str, description: str?, order: int(int32), reasonRequired: bool}, configId: str(uuid), name: str, description: str?, order: int(int32), migratedConfigId: str(uuid)?, evaluationVersion: str}, environment: map{product: map{organization: map{organizationId: str(uuid), name: str}, productId: str(uuid), name: str, description: str?, order: int(int32), reasonRequired: bool}, environmentId: str(uuid), name: str, color: str?, description: str?, order: int(int32), reasonRequired: bool}, readOnly: bool, featureFlagLimitations: map{maxPercentageOptionCount: int(int32), maxTargetingRuleCount: int(int32), maxComparisonValueLength: int(int32), maxComparisonValueListLength: int(int32), maxComparisonValueListItemLength: int(int32), maxStringFlagValueLength: int(int32), maxConditionPerTargetingRuleCount: int(int32)}}\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n@example_request {\"defaultValue\":{\"boolValue\":true}}\n\n@endpoint PATCH /v2/settings/{settingKeyOrId}/value\n@desc Update value\n@required {settingKeyOrId: str # The key or id of the Setting.}\n@optional {reason: str # The reason note for the Audit Log if the Product's \"Config changes require a reason\" preference is turned on., X-CONFIGCAT-SDKKEY: str # The ConfigCat SDK Key. (https://app.configcat.com/sdkkey)}\n@returns(200) {lastVersionId: str(uuid), defaultValue: map{boolValue: bool?, stringValue: str?, intValue: int(int32)?, doubleValue: num(double)?, predefinedVariationId: str(uuid)?}, targetingRules: [map], setting: map{settingId: int(int32), key: str, name: str, hint: str?, settingType: str, order: int(int32), createdAt: str(date-time)?, creatorEmail: str?, creatorFullName: str?, predefinedVariations: [map], isWatching: bool}, updatedAt: str(date-time)?, percentageEvaluationAttribute: str?, lastUpdaterUserEmail: str?, lastUpdaterUserFullName: str?, integrationLinks: [map], settingTags: [map], settingIdsWherePrerequisite: [int(int32)], config: map{product: map{organization: map{organizationId: str(uuid), name: str}, productId: str(uuid), name: str, description: str?, order: int(int32), reasonRequired: bool}, configId: str(uuid), name: str, description: str?, order: int(int32), migratedConfigId: str(uuid)?, evaluationVersion: str}, environment: map{product: map{organization: map{organizationId: str(uuid), name: str}, productId: str(uuid), name: str, description: str?, order: int(int32), reasonRequired: bool}, environmentId: str(uuid), name: str, color: str?, description: str?, order: int(int32), reasonRequired: bool}, readOnly: bool, featureFlagLimitations: map{maxPercentageOptionCount: int(int32), maxTargetingRuleCount: int(int32), maxComparisonValueLength: int(int32), maxComparisonValueListLength: int(int32), maxComparisonValueListItemLength: int(int32), maxStringFlagValueLength: int(int32), maxConditionPerTargetingRuleCount: int(int32)}}\n@returns(204) When no change applied on the resource.\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n@example_request [{\"op\":\"replace\",\"path\":\"/defaultValue/boolValue\",\"value\":true}]\n\n@endgroup\n\n@group environments\n@endpoint GET /v2/environments/{environmentId}/settings/{settingId}/value\n@desc Get value\n@required {environmentId: str(uuid) # The identifier of the Environment., settingId: int(int32) # The id of the Setting.}\n@returns(200) {lastVersionId: str(uuid), defaultValue: map{boolValue: bool?, stringValue: str?, intValue: int(int32)?, doubleValue: num(double)?, predefinedVariationId: str(uuid)?}, targetingRules: [map], setting: map{settingId: int(int32), key: str, name: str, hint: str?, settingType: str, order: int(int32), createdAt: str(date-time)?, creatorEmail: str?, creatorFullName: str?, predefinedVariations: [map], isWatching: bool}, updatedAt: str(date-time)?, percentageEvaluationAttribute: str?, lastUpdaterUserEmail: str?, lastUpdaterUserFullName: str?, integrationLinks: [map], settingTags: [map], settingIdsWherePrerequisite: [int(int32)], config: map{product: map{organization: map{organizationId: str(uuid), name: str}, productId: str(uuid), name: str, description: str?, order: int(int32), reasonRequired: bool}, configId: str(uuid), name: str, description: str?, order: int(int32), migratedConfigId: str(uuid)?, evaluationVersion: str}, environment: map{product: map{organization: map{organizationId: str(uuid), name: str}, productId: str(uuid), name: str, description: str?, order: int(int32), reasonRequired: bool}, environmentId: str(uuid), name: str, color: str?, description: str?, order: int(int32), reasonRequired: bool}, readOnly: bool, featureFlagLimitations: map{maxPercentageOptionCount: int(int32), maxTargetingRuleCount: int(int32), maxComparisonValueLength: int(int32), maxComparisonValueListLength: int(int32), maxComparisonValueListItemLength: int(int32), maxStringFlagValueLength: int(int32), maxConditionPerTargetingRuleCount: int(int32)}} # When everything is ok, the setting value data returned.\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endpoint PUT /v2/environments/{environmentId}/settings/{settingId}/value\n@desc Replace value\n@required {environmentId: str(uuid) # The identifier of the Environment., settingId: int(int32) # The id of the Setting., defaultValue: map{boolValue: bool, stringValue: str, intValue: int(int32), doubleValue: num(double), predefinedVariationId: str(uuid)} # Represents the value of a Feature Flag or Setting.}\n@optional {reason: str # The reason note for the Audit Log if the Product's \"Config changes require a reason\" preference is turned on., targetingRules: [map{conditions: [map], percentageOptions: [map], value: any}] # The targeting rules of the Feature Flag or Setting., percentageEvaluationAttribute: str # The user attribute used for percentage evaluation. If not set, it defaults to the `Identifier` user object attribute.}\n@returns(200) {lastVersionId: str(uuid), defaultValue: map{boolValue: bool?, stringValue: str?, intValue: int(int32)?, doubleValue: num(double)?, predefinedVariationId: str(uuid)?}, targetingRules: [map], setting: map{settingId: int(int32), key: str, name: str, hint: str?, settingType: str, order: int(int32), createdAt: str(date-time)?, creatorEmail: str?, creatorFullName: str?, predefinedVariations: [map], isWatching: bool}, updatedAt: str(date-time)?, percentageEvaluationAttribute: str?, lastUpdaterUserEmail: str?, lastUpdaterUserFullName: str?, integrationLinks: [map], settingTags: [map], settingIdsWherePrerequisite: [int(int32)], config: map{product: map{organization: map{organizationId: str(uuid), name: str}, productId: str(uuid), name: str, description: str?, order: int(int32), reasonRequired: bool}, configId: str(uuid), name: str, description: str?, order: int(int32), migratedConfigId: str(uuid)?, evaluationVersion: str}, environment: map{product: map{organization: map{organizationId: str(uuid), name: str}, productId: str(uuid), name: str, description: str?, order: int(int32), reasonRequired: bool}, environmentId: str(uuid), name: str, color: str?, description: str?, order: int(int32), reasonRequired: bool}, readOnly: bool, featureFlagLimitations: map{maxPercentageOptionCount: int(int32), maxTargetingRuleCount: int(int32), maxComparisonValueLength: int(int32), maxComparisonValueListLength: int(int32), maxComparisonValueListItemLength: int(int32), maxStringFlagValueLength: int(int32), maxConditionPerTargetingRuleCount: int(int32)}}\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n@example_request {\"defaultValue\":{\"boolValue\":true}}\n\n@endpoint PATCH /v2/environments/{environmentId}/settings/{settingId}/value\n@desc Update value\n@required {environmentId: str(uuid) # The identifier of the Environment., settingId: int(int32) # The id of the Setting.}\n@optional {reason: str # The reason note for the Audit Log if the Product's \"Config changes require a reason\" preference is turned on.}\n@returns(200) {lastVersionId: str(uuid), defaultValue: map{boolValue: bool?, stringValue: str?, intValue: int(int32)?, doubleValue: num(double)?, predefinedVariationId: str(uuid)?}, targetingRules: [map], setting: map{settingId: int(int32), key: str, name: str, hint: str?, settingType: str, order: int(int32), createdAt: str(date-time)?, creatorEmail: str?, creatorFullName: str?, predefinedVariations: [map], isWatching: bool}, updatedAt: str(date-time)?, percentageEvaluationAttribute: str?, lastUpdaterUserEmail: str?, lastUpdaterUserFullName: str?, integrationLinks: [map], settingTags: [map], settingIdsWherePrerequisite: [int(int32)], config: map{product: map{organization: map{organizationId: str(uuid), name: str}, productId: str(uuid), name: str, description: str?, order: int(int32), reasonRequired: bool}, configId: str(uuid), name: str, description: str?, order: int(int32), migratedConfigId: str(uuid)?, evaluationVersion: str}, environment: map{product: map{organization: map{organizationId: str(uuid), name: str}, productId: str(uuid), name: str, description: str?, order: int(int32), reasonRequired: bool}, environmentId: str(uuid), name: str, color: str?, description: str?, order: int(int32), reasonRequired: bool}, readOnly: bool, featureFlagLimitations: map{maxPercentageOptionCount: int(int32), maxTargetingRuleCount: int(int32), maxComparisonValueLength: int(int32), maxComparisonValueListLength: int(int32), maxComparisonValueListItemLength: int(int32), maxStringFlagValueLength: int(int32), maxConditionPerTargetingRuleCount: int(int32)}} # When the patch was successful.\n@returns(204) When no change applied on the resource.\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n@example_request [{\"op\":\"replace\",\"path\":\"/defaultValue/boolValue\",\"value\":true}]\n\n@endgroup\n\n@group configs\n@endpoint GET /v1/configs/{configId}/environments/{environmentId}/values\n@desc Get values\n@required {configId: str(uuid) # The identifier of the Config., environmentId: str(uuid) # The identifier of the Environment.}\n@returns(200) {config: map{product: map{organization: map{organizationId: str(uuid), name: str}, productId: str(uuid), name: str, description: str?, order: int(int32), reasonRequired: bool}, configId: str(uuid), name: str, description: str?, order: int(int32), migratedConfigId: str(uuid)?, evaluationVersion: str}, environment: map{product: map{organization: map{organizationId: str(uuid), name: str}, productId: str(uuid), name: str, description: str?, order: int(int32), reasonRequired: bool}, environmentId: str(uuid), name: str, color: str?, description: str?, order: int(int32), reasonRequired: bool}, readOnly: bool, settingValues: [map], featureFlagLimitations: map{maxPercentageOptionCount: int(int32), maxTargetingRuleCount: int(int32), maxComparisonValueLength: int(int32), maxComparisonValueListLength: int(int32), maxComparisonValueListItemLength: int(int32), maxStringFlagValueLength: int(int32), maxConditionPerTargetingRuleCount: int(int32)}} # When everything is ok, the setting values returned.\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endpoint POST /v1/configs/{configId}/environments/{environmentId}/values\n@desc Post values\n@required {configId: str(uuid) # The identifier of the Config., environmentId: str(uuid) # The identifier of the Environment.}\n@optional {reason: str # The reason note for the Audit Log if the Product's \"Config changes require a reason\" preference is turned on., settingValues: [map{rolloutRules: [map], rolloutPercentageItems: [map], value!: any, settingId: int(int32)}] # The values to update.}\n@returns(200) {config: map{product: map{organization: map{organizationId: str(uuid), name: str}, productId: str(uuid), name: str, description: str?, order: int(int32), reasonRequired: bool}, configId: str(uuid), name: str, description: str?, order: int(int32), migratedConfigId: str(uuid)?, evaluationVersion: str}, environment: map{product: map{organization: map{organizationId: str(uuid), name: str}, productId: str(uuid), name: str, description: str?, order: int(int32), reasonRequired: bool}, environmentId: str(uuid), name: str, color: str?, description: str?, order: int(int32), reasonRequired: bool}, readOnly: bool, settingValues: [map], featureFlagLimitations: map{maxPercentageOptionCount: int(int32), maxTargetingRuleCount: int(int32), maxComparisonValueLength: int(int32), maxComparisonValueListLength: int(int32), maxComparisonValueListItemLength: int(int32), maxStringFlagValueLength: int(int32), maxConditionPerTargetingRuleCount: int(int32)}} # When everything is ok, the updated setting values returned.\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endpoint GET /v2/configs/{configId}/environments/{environmentId}/values\n@desc Get values\n@required {configId: str(uuid) # The identifier of the Config., environmentId: str(uuid) # The identifier of the Environment.}\n@returns(200) {config: map{product: map{organization: map{organizationId: str(uuid), name: str}, productId: str(uuid), name: str, description: str?, order: int(int32), reasonRequired: bool}, configId: str(uuid), name: str, description: str?, order: int(int32), migratedConfigId: str(uuid)?, evaluationVersion: str}, environment: map{product: map{organization: map{organizationId: str(uuid), name: str}, productId: str(uuid), name: str, description: str?, order: int(int32), reasonRequired: bool}, environmentId: str(uuid), name: str, color: str?, description: str?, order: int(int32), reasonRequired: bool}, readOnly: bool, settingFormulas: [map], featureFlagLimitations: map{maxPercentageOptionCount: int(int32), maxTargetingRuleCount: int(int32), maxComparisonValueLength: int(int32), maxComparisonValueListLength: int(int32), maxComparisonValueListItemLength: int(int32), maxStringFlagValueLength: int(int32), maxConditionPerTargetingRuleCount: int(int32)}} # When everything is ok, the setting values returned.\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endpoint POST /v2/configs/{configId}/environments/{environmentId}/values\n@desc Post values\n@required {configId: str(uuid) # The identifier of the Config., environmentId: str(uuid) # The identifier of the Environment.}\n@optional {reason: str # The reason note for the Audit Log if the Product's \"Config changes require a reason\" preference is turned on., updateFormulas: [map{defaultValue!: map, targetingRules: [map], percentageEvaluationAttribute: str, settingId: int(int32)}] # Evaluation descriptors of each updated Feature Flag and Setting.}\n@returns(200) {config: map{product: map{organization: map{organizationId: str(uuid), name: str}, productId: str(uuid), name: str, description: str?, order: int(int32), reasonRequired: bool}, configId: str(uuid), name: str, description: str?, order: int(int32), migratedConfigId: str(uuid)?, evaluationVersion: str}, environment: map{product: map{organization: map{organizationId: str(uuid), name: str}, productId: str(uuid), name: str, description: str?, order: int(int32), reasonRequired: bool}, environmentId: str(uuid), name: str, color: str?, description: str?, order: int(int32), reasonRequired: bool}, readOnly: bool, settingFormulas: [map], featureFlagLimitations: map{maxPercentageOptionCount: int(int32), maxTargetingRuleCount: int(int32), maxComparisonValueLength: int(int32), maxComparisonValueListLength: int(int32), maxComparisonValueListItemLength: int(int32), maxStringFlagValueLength: int(int32), maxConditionPerTargetingRuleCount: int(int32)}} # When everything is ok, the updated setting values returned.\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endgroup\n\n@group tags\n@endpoint GET /v1/tags/{tagId}\n@desc Get Tag\n@required {tagId: int(int64) # The identifier of the Tag.}\n@returns(200) {product: map{organization: map{organizationId: str(uuid), name: str}, productId: str(uuid), name: str, description: str?, order: int(int32), reasonRequired: bool}, tagId: int(int64), name: str, color: str?} # When everything is ok, the tag data returned.\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endpoint PUT /v1/tags/{tagId}\n@desc Update Tag\n@required {tagId: int(int64) # The identifier of the Tag.}\n@optional {name: str # Name of the Tag., color: str # Color of the Tag. Possible values: `panther`, `whale`, `salmon`, `lizard`, `canary`, `koala`, or any HTML color code.}\n@returns(200) {product: map{organization: map{organizationId: str(uuid), name: str}, productId: str(uuid), name: str, description: str?, order: int(int32), reasonRequired: bool}, tagId: int(int64), name: str, color: str?}\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endpoint DELETE /v1/tags/{tagId}\n@desc Delete Tag\n@required {tagId: int(int64) # The identifier of the Tag.}\n@returns(204) When the delete was successful.\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endgroup\n\n@group webhooks\n@endpoint GET /v1/webhooks/{webhookId}\n@desc Get Webhook\n@required {webhookId: int(int32) # The identifier of the Webhook.}\n@returns(200) {webhookId: int(int32), url: str, httpMethod: str, content: str?, webHookHeaders: [map], config: map{name: str, configId: str(uuid)}, environment: map{name: str, environmentId: str(uuid)}} # When everything is ok, the webhook data is returned.\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endpoint PUT /v1/webhooks/{webhookId}\n@desc Replace Webhook\n@required {webhookId: int(int32) # The identifier of the Webhook., url: str # The URL of the Webhook.}\n@optional {content: str # The HTTP body content., httpMethod: any, webHookHeaders: [map{key!: str, value!: str, isSecure: bool}] # List of HTTP headers.}\n@returns(200) {webhookId: int(int32), url: str, httpMethod: str, content: str?, webHookHeaders: [map], config: map{name: str, configId: str(uuid)}, environment: map{name: str, environmentId: str(uuid)}} # When the replace was successful.\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endpoint PATCH /v1/webhooks/{webhookId}\n@desc Update Webhook\n@required {webhookId: int(int32) # The identifier of the Webhook.}\n@returns(200) {webhookId: int(int32), url: str, httpMethod: str, content: str?, webHookHeaders: [map], config: map{name: str, configId: str(uuid)}, environment: map{name: str, environmentId: str(uuid)}} # When the update was successful.\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endpoint DELETE /v1/webhooks/{webhookId}\n@desc Delete Webhook\n@required {webhookId: int(int32) # The identifier of the Webhook.}\n@returns(204) When the delete was successful.\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endpoint GET /v1/webhooks/{webhookId}/keys\n@desc Get Webhook Signing Keys\n@required {webhookId: int(int32) # The identifier of the Webhook.}\n@returns(200) {key1: str?, key2: str?} # When everything is ok, the webhook signing keys are returned.\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endgroup\n\n@group proxy-profiles\n@endpoint GET /v1/proxy-profiles/{proxyProfileId}/sdk-keys\n@desc Get selected SDK keys\n@required {proxyProfileId: str(uuid) # The identifier of the Proxy Profile.}\n@returns(200) {items: [map]} # When everything is ok, the SDK keys selected for the Proxy Profile are returned.\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endgroup\n\n@group environments\n@endpoint POST /v1/environments/{environmentId}/settings/{settingId}/integrationLinks/{integrationLinkType}/{key}\n@desc Add or update Integration link\n@required {environmentId: str(uuid) # The identifier of the Environment., settingId: int(int32) # The id of the Setting., integrationLinkType: str # The integration link's type., key: str # The key of the integration link.}\n@optional {description: str, url: str}\n@returns(200) {key: str?, description: str?, integrationLinkType: str, url: str?} # When everything is ok, the integration link data returned.\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endpoint DELETE /v1/environments/{environmentId}/settings/{settingId}/integrationLinks/{integrationLinkType}/{key}\n@desc Delete Integration link\n@required {environmentId: str(uuid) # The identifier of the Environment., settingId: int(int32) # The id of the Setting., integrationLinkType: str # The integration's type., key: str # The key of the integration link.}\n@returns(200) {hasRemainingIntegrationLink: bool} # When everything is ok.\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endgroup\n\n@group jira\n@endpoint POST /v1/jira/environments/{environmentId}/settings/{settingId}/integrationLinks/{key}\n@required {environmentId: str(uuid) # The identifier of the Environment., settingId: int(int32) # The id of the Setting., key: str # The key of the integration link., jiraJwtToken: str, clientKey: str}\n@optional {description: str, url: str}\n@returns(200) {key: str?, description: str?, integrationLinkType: str, url: str?} # When everything is ok, the integration link data returned.\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endpoint POST /v1/jira/connect\n@required {clientKey: str, jiraJwtToken: str}\n@returns(200) OK\n@errors {429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endgroup\n\n@group organizations\n@endpoint POST /v1/organizations/{organizationId}/products\n@desc Create Product\n@required {organizationId: str(uuid) # The identifier of the Organization., name: str # The name of the Product.}\n@optional {description: str # The description of the Product., order: int(int32) # The order of the Product represented on the ConfigCat Dashboard. Determined from an ascending sequence of integers.}\n@returns(201) {organization: map{organizationId: str(uuid), name: str}, productId: str(uuid), name: str, description: str?, order: int(int32), reasonRequired: bool} # When the creation was successful.\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endgroup\n\n@group configs\n@endpoint POST /v1/configs/{configId}/environments/{environmentId}/webhooks\n@desc Create Webhook\n@required {configId: str(uuid) # The identifier of the Config., environmentId: str(uuid) # The identifier of the Environment., url: str # The URL of the Webhook.}\n@optional {content: str # The HTTP body content., httpMethod: any, webHookHeaders: [map{key!: str, value!: str, isSecure: bool}] # List of HTTP headers.}\n@returns(201) {webhookId: int(int32), url: str, httpMethod: str, content: str?, webHookHeaders: [map], config: map{name: str, configId: str(uuid)}, environment: map{name: str, environmentId: str(uuid)}} # When the creation was successful.\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endgroup\n\n@group code-references\n@endpoint POST /v1/code-references/delete-reports\n@desc Delete Reference reports\n@required {configId: str(uuid) # The Config's identifier from where the reports should be deleted., repository: str # The source control repository which's reports should be deleted.}\n@optional {branch: str # If it's set, only this branch's reports belonging to the given repository will be deleted., settingId: int(int32) # If it's set, only this setting's reports belonging to the given repository will be deleted.}\n@returns(200) OK\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endgroup\n\n@group proxy-profiles\n@endpoint POST /v1/proxy-profiles/{proxyProfileId}/sdk-keys/deselect\n@desc Deselect SDK keys\n@required {proxyProfileId: str(uuid) # The identifier of the Proxy Profile., items: [map{configId: str(uuid), environmentId: str(uuid)}] # The list of Config / Environment pairs. By only setting a `configId` means all Environments of that Config will be included. Similarly, by only setting an `environmentId` means all Configs with that Environment will be included.}\n@returns(200) {items: [map]} # When the deselection was successful.\n@errors {400: Bad request., 403: Forbidden. When selection rules are applied to the Proxy Profile., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endpoint POST /v1/proxy-profiles/{proxyProfileId}/secret\n@desc Generate Secret\n@required {proxyProfileId: str(uuid) # The identifier of the Proxy Profile.}\n@returns(200) {secretToken: str} # When the generation was successful.\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endgroup\n\n@group products\n@endpoint POST /v1/products/{productId}/members/invite\n@desc Invite Member\n@required {productId: str(uuid) # The identifier of the Product., emails: [str] # List of email addresses to invite., permissionGroupId: int(int64) # Identifier of the Permission Group to where the invited users should be added.}\n@returns(200) When the invite was successful.\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endgroup\n\n@group code-references\n@endpoint POST /v1/code-references\n@desc Upload References\n@required {configId: str(uuid) # The Config's identifier the scanning was performed against., repository: str # The source control repository that contains the scanned code. (Source of the repository selector on the ConfigCat Dashboard), branch: str # The source control branch on where the scan was performed. (Source of the branch selector on the ConfigCat Dashboard)}\n@optional {commitUrl: str # The related commit's URL. (Appears on the ConfigCat Dashboard), commitHash: str # The related commit's hash. (Appears on the ConfigCat Dashboard), uploader: str # The scanning tool's name. (Appears on the ConfigCat Dashboard), activeBranches: [str] # The currently active branches of the repository. Each previously uploaded report that belongs to a non-reported active branch is being deleted., flagReferences: [map{settingId!: int(int32), references!: [map]}] # The actual code reference collection.}\n@returns(200) OK\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endgroup\n\n@group proxy-profiles\n@endpoint POST /v1/proxy-profiles/{proxyProfileId}/sdk-keys/select\n@desc Select SDK keys\n@required {proxyProfileId: str(uuid) # The identifier of the Proxy Profile., items: [map{configId: str(uuid), environmentId: str(uuid)}] # The list of Config / Environment pairs. By only setting a `configId` means all Environments of that Config will be included. Similarly, by only setting an `environmentId` means all Configs with that Environment will be included.}\n@returns(200) {items: [map]} # When the selection was successful.\n@errors {400: Bad request., 403: Forbidden. When selection rules are applied to the Proxy Profile., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endgroup\n\n@group organizations\n@endpoint POST /v1/organizations/{organizationId}/members/{userId}\n@desc Update Member Permissions\n@required {organizationId: str(uuid) # The identifier of the Organization., userId: str # The identifier of the Member.}\n@optional {permissionGroupIds: [int(int64)] # List of Permission Group identifiers to where the Member should be added., isAdmin: bool # Indicates that the member must be Organization Admin., isBillingManager: bool # Indicates that the member must be Billing Manager., removeFromPermissionGroupsWhereIdNotSet: bool # When `true`, the member will be removed from those Permission Groups that are not listed in the `permissionGroupIds` field.}\n@returns(200) When the update was successful.\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endpoint DELETE /v1/organizations/{organizationId}/members/{userId}\n@desc Delete Member from Organization\n@required {organizationId: str(uuid) # The identifier of the Organization., userId: str # The identifier of the Member.}\n@returns(204) When the delete was successful.\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endgroup\n\n@group invitations\n@endpoint DELETE /v1/invitations/{invitationId}\n@desc Delete Invitation\n@required {invitationId: str(uuid) # The identifier of the Invitation.}\n@returns(204) When the delete was successful.\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endgroup\n\n@group products\n@endpoint DELETE /v1/products/{productId}/members/{userId}\n@desc Delete Member from Product\n@required {productId: str(uuid) # The identifier of the Product., userId: str # The identifier of the Member.}\n@returns(204) When the delete was successful.\n@errors {400: Bad request., 404: Not found., 429: Too many requests. In case of the request rate exceeds the rate limits.}\n\n@endgroup\n\n@end\n"}}