API Keys

API keys authenticate programmatic access to Chainlink Platform products, such as the CRE CLI, the ACE APIs, and the CRE Connect API. This page describes how API key permissions work, which permissions are available for each product, and how to create and manage API keys.

How API keys work

An API key is an organization-level credential. When you create an API key, you select the permissions the key has, and the key can act only within those permissions.

  • A single API key can include permissions for multiple products. For example, one key can deploy CRE workflows and read ACE reports.
  • API key permissions are a subset of all permissions. Some permissions, such as managing members or billing, are available only to organization members through their roles.
  • An API key's access is determined by the permissions you select for it, not by your own role.

To create and manage API keys, you need a role that includes API key permissions, such as Platform User, Platform Admin, or Owner. See RBAC for the full list of roles.

Available permissions

The following tables list the permissions you can assign to an API key for each product. Each row matches a permission group in the API Scope section of the creation form: the Setting column is what to select for that group, and the Permission IDs column lists the permission IDs that the setting grants. A check mark indicates that the role includes the permissions the setting grants. The Owner role includes every permission for every product.

PermissionSettingPermission IDsAdminUser
OrganizationReadplatform:organization:read✓✓
Owner addressReadplatform:owner_address:read✓✓

CRE

PermissionSettingPermission IDsAdminDeveloperViewer
WorkflowReadcre:workflow:read✓✓✓
WorkflowAllcre:workflow:read, cre:workflow:write/private_registry✓✓
Workflow artifactReadcre:workflow:artifact:read✓✓✓
Workflow artifactAllcre:workflow:artifact:read, cre:workflow:artifact:write✓✓
Owner address linkingAllplatform:owner_address:linking:write/cre✓

ACE

Administration

PermissionSettingPermission IDsAdminOperatorViewer
Member roleAllplatform:member_role:write/ace✓

Policy Manager

PermissionSettingPermission IDsAdminOperatorViewer
Policy manager policy engineReadace:policy_manager:policy_engine:read✓✓✓
Policy manager policy engineAllace:policy_manager:policy_engine:read, ace:policy_manager:policy_engine:write✓✓
Policy manager policy engine archive (affects everything deployed under it)Allace:policy_manager:policy_engine:archive:write✓
Policy manager policyReadace:policy_manager:policy:read✓✓✓
Policy manager policyAllace:policy_manager:policy:read, ace:policy_manager:policy:write✓✓
Policy manager policy archiveAllace:policy_manager:policy:archive:write✓✓
Policy manager targetReadace:policy_manager:target:read✓✓✓
Policy manager targetAllace:policy_manager:target:read, ace:policy_manager:target:write✓✓
Policy manager target archiveAllace:policy_manager:target:archive:write✓✓
Policy manager target accessReadace:policy_manager:target_access:read✓
Policy manager target accessAllace:policy_manager:target_access:read, ace:policy_manager:target_access:write✓
Policy manager implementationReadace:policy_manager:implementation:read✓✓✓
Policy manager implementationAllace:policy_manager:implementation:read, ace:policy_manager:implementation:write✓✓
Policy manager implementation archive (affects every instance built on it)Allace:policy_manager:implementation:archive:write✓

Identity Manager

PermissionSettingPermission IDsAdminOperatorViewer
Identity manager registryReadace:identity_manager:registry:read✓✓✓
Identity manager registryAllace:identity_manager:registry:read, ace:identity_manager:registry:write✓✓
Identity manager registry archive (affects everything deployed under it)Allace:identity_manager:registry:archive:write✓
Identity manager registry accessReadace:identity_manager:registry_access:read✓
Identity manager registry accessAllace:identity_manager:registry_access:read, ace:identity_manager:registry_access:write✓
Identity manager identityReadace:identity_manager:identity:read✓✓✓
Identity manager identityAllace:identity_manager:identity:read, ace:identity_manager:identity:write✓✓
Identity manager identity archiveAllace:identity_manager:identity:archive:write✓✓

Reporting

PermissionSettingPermission IDsAdminOperatorViewer
Reporting policyReadace:reporting:policy:read✓✓✓
Reporting identityReadace:reporting:identity:read✓✓✓
Reporting targetReadace:reporting:target:read✓✓✓
Reporting transactionReadace:reporting:transaction:read✓✓✓
Reporting permitReadace:reporting:permit:read✓✓✓
Reporting registryReadace:reporting:registry:read✓✓✓

Evaluation

PermissionSettingPermission IDsAdminOperatorViewer
Evaluation permitReadace:evaluation:permit:read✓✓✓
Evaluation permitAllace:evaluation:permit:read, ace:evaluation:permit:write✓✓

Core

PermissionSettingPermission IDsAdminOperatorViewer
Core org configReadace:core:org_config:read✓✓✓
Core networkReadace:core:network:read✓✓✓
Core walletReadace:core:wallet:read✓✓✓
Core walletAllace:core:wallet:read, ace:core:wallet:write✓

Active Monitoring

PermissionSettingPermission IDsAdminOperatorViewer
Active monitoring action variableReadace:active_monitoring:action_variable:read✓✓✓
Active monitoring contract groupReadace:active_monitoring:contract_group:read✓✓✓
Active monitoring contract groupAllace:active_monitoring:contract_group:read, ace:active_monitoring:contract_group:write✓✓
Active monitoring rule groupReadace:active_monitoring:rule_group:read✓✓✓
Active monitoring rule groupAllace:active_monitoring:rule_group:read, ace:active_monitoring:rule_group:write✓✓
Active monitoring monitored addressReadace:active_monitoring:monitored_address:read✓✓✓
Active monitoring monitored addressAllace:active_monitoring:monitored_address:read, ace:active_monitoring:monitored_address:write✓✓
Active monitoring screening intervalReadace:active_monitoring:screening_interval:read✓✓✓
Active monitoring screening intervalAllace:active_monitoring:screening_interval:read, ace:active_monitoring:screening_interval:write✓✓
Active monitoring decision logReadace:active_monitoring:decision_log:read✓✓✓
Active monitoring decision logAllace:active_monitoring:decision_log:read, ace:active_monitoring:decision_log:write✓✓
Active monitoring provider api keyReadace:active_monitoring:provider_api_key:read✓✓✓
Active monitoring provider api keyAllace:active_monitoring:provider_api_key:read, ace:active_monitoring:provider_api_key:write✓

CRE Connect

Core

PermissionSettingPermission IDsAdminOperatorViewer
NetworkReadcrec:network:read✓✓✓
WalletReadcrec:wallet:read✓✓✓
WalletAllcrec:wallet:read, crec:wallet:write✓✓
Wallet archiveAllcrec:wallet:archive:write✓

Operations

PermissionSettingPermission IDsAdminOperatorViewer
OperationReadcrec:operation:read✓✓✓
OperationAllcrec:operation:read, crec:operation:write✓✓
Operation signatureAllcrec:operation:signature:write✓✓

Channels

PermissionSettingPermission IDsAdminOperatorViewer
ChannelReadcrec:channel:read✓✓✓
ChannelAllcrec:channel:read, crec:channel:write✓✓
Channel archiveAllcrec:channel:archive:write✓

Watchers

PermissionSettingPermission IDsAdminOperatorViewer
WatcherReadcrec:watcher:read✓✓✓
WatcherAllcrec:watcher:read, crec:watcher:write✓✓
Watcher archiveAllcrec:watcher:archive:write✓

Queries

PermissionSettingPermission IDsAdminOperatorViewer
QueryReadcrec:query:read✓✓✓
QueryAllcrec:query:read, crec:query:write✓✓

Events

PermissionSettingPermission IDsAdminOperatorViewer
EventReadcrec:event:read✓✓✓

Administration

PermissionSettingPermission IDsAdminOperatorViewer
Member roleAllplatform:member_role:write/crec✓

Data Streams and Agent Gateway

API keys cannot be scoped to Data Streams or Agent Gateway. Data Streams uses its own authentication with credentials managed in the Data Streams portal. See Data Streams API Authentication.

Creating an API key

To create an API key:

  1. Sign in to app.chain.link.
  2. Click on your account's icon in the top-right corner, then click on Org settings in the dropdown to open the Organization page.
  3. Click to open the API Keys tab and click Create API Key.
  4. Enter a name for the key.
  5. In the API Scope section, select the permissions for the key:
    • Each product (Platform, ACE, CRE, and CRE Connect) has its own accordion. Expand the products the key needs access to.
    • Each product has a preset: None, Read, All, or Custom. Read grants the product's read permissions, All grants every permission available for that product, and Custom is applied automatically when you change any individual permission. The Chainlink Platform accordion offers only None, Read, and Custom.
    • To grant individual permissions instead of a preset, set each permission group to None, Read, or All. Some groups offer only a subset of these options.
  6. Click Create API Key, then copy the key and click Done.

Managing API keys

The API Keys tab on the Organization page lists your organization's API keys with their name, key ID, author, product access, creation date, and status. Use the Status and Product access filters or the search field to find specific keys.

Click a key's name to open its edit panel. The Scopes tab shows the same permission selection as the creation form: change the presets or individual permissions, then click Save changes. The Actions tab lists the operations you can perform on the key:

  • Rename API Key: changes the key's name. The new name is visible to all organization members.
  • Rotate Key: generates a new value for the same key. Use this when a key's value may have been exposed.
  • Delete API: permanently deletes the API key and its value.

API key security

  • Never share your API keys. Each member should use keys with only the permissions they need.
  • If a key's value may have been exposed, rotate the key from its Actions tab.
  • Review your organization's API keys regularly and delete keys that are no longer needed.

What's next?

Get the latest Chainlink content straight to your inbox.