Erxes · OAuth Scopes

Erxes OAuth Scopes

OAuth 2.0 searched

Erxes publishes 34 OAuth 2.0 scopes via the deviceCode flow. Scopes are the fine-grained permissions an application requests at authorization time to act against the Erxes API on a user’s behalf.

This index is generated from the provider’s OpenAPI security definitions (and, where available, its documented scope reference) and refreshes on every APIs.io network build. Browse every provider’s scopes at scopes.apis.io.

GraphQLCRMCustomer ExperienceOpen-SourceMarketing AutomationSales PipelineHelp DeskTicketingTeam InboxSelf-HostedApollo FederationProject ManagementKnowledge BaseWebhookAgent Skills
Scopes: 34 Flows: deviceCode Method: searched

Scopes (34)

ScopeDescriptionFlows
contacts:read List and view customers (customers, customerDetail).
contacts:create Create a customer (customersAdd).
contacts:update Edit customer information (customersEdit).
contacts:remove Delete customers (customersRemove).
contacts:merge Merge duplicate customer records (customersMerge).
products:read List products (products).
products:create Create products and product categories (productsAdd, productCategoriesAdd).
products:update Edit products (productsEdit).
products:remove Delete products (productsRemove).
products:merge Merge duplicate products (productsMerge).
products:manage Manage product supporting records such as units of measure (uomsAdd).
tags:read List tags (tags).
tags:create Create a tag (tagsAdd).
tags:update Edit a tag (tagsEdit).
tags:remove Delete a tag (tagsRemove).
tags:tag Attach or detach a tag on another object (tagsTag).
documents:read List documents (documents).
documents:create Create documents (documentsSave). erxes documents this paired with documents:update.
documents:update Edit documents (documentsSave). erxes documents this paired with documents:create.
documents:remove Delete documents (documentsRemove).
brands:read List brands (brands).
brands:create Create a brand (brandsAdd).
brands:update Edit a brand (brandsEdit).
brands:remove Delete a brand (brandsRemove).
organization:read Read the organization structure — departments, branches, units (structures).
organization:manage Create organization structure records (departmentsAdd, branchesAdd).
teamMembers:read List team members (users).
teamMembers:create Invite a new team member (usersInvite).
teamMembers:update Edit a team member (usersEdit).
teamMembers:remove Deactivate a team member (usersSetActiveStatus).
automations:read List automations (automations).
automations:create Create an automation (automationsAdd).
automations:update Edit an automation (automationsEdit).
automations:delete Delete an automation (automationsRemove).

Source

OAuth Scopes

erxes-scopes.yml Raw ↑
generated: '2026-08-13'
method: searched
source: >-
  https://github.com/erxes/erxes-skills/blob/main/agent-plugin/erxes-next/erxes-graphql-api.md
docs:
  - https://github.com/erxes/erxes-skills/blob/main/agent-plugin/erxes-next/erxes-graphql-api.md
  - https://github.com/erxes/erxes-skills/blob/main/agent-plugin/erxes-next/operation-api.md
  - https://github.com/erxes/erxes-cli#authenticate
note: >-
  0-working/derive-oauth-scopes.py could not run a baseline — erxes publishes no
  OpenAPI, so there is no securitySchemes block to aggregate. These scopes are
  SEARCHED from the provider's own published agent-plugin reference, where each
  core GraphQL operation is filed under the exact scope string that authorizes
  it, and from the erxes CLI README, which names the versioned "public
  operation" identifiers an OAuth client must enable. OAuth clients are created
  per tenant in erxes Settings > OAuth Clients. Nothing here is inferred: every
  scope string below appears verbatim in a provider-published document.
schemes:
  - name: OAuth2 Device Authorization Grant
    flows:
      - flow: deviceCode
        grant_type: 'urn:ietf:params:oauth:grant-type:device_code'
        registration: erxes Settings > OAuth Clients
    source: authentication/erxes-authentication.yml
scopes:
  - {scope: 'contacts:read', description: 'List and view customers (customers, customerDetail).', resource: contacts}
  - {scope: 'contacts:create', description: 'Create a customer (customersAdd).', resource: contacts}
  - {scope: 'contacts:update', description: 'Edit customer information (customersEdit).', resource: contacts}
  - {scope: 'contacts:remove', description: 'Delete customers (customersRemove).', resource: contacts}
  - {scope: 'contacts:merge', description: 'Merge duplicate customer records (customersMerge).', resource: contacts}
  - {scope: 'products:read', description: 'List products (products).', resource: products}
  - {scope: 'products:create', description: 'Create products and product categories (productsAdd, productCategoriesAdd).', resource: products}
  - {scope: 'products:update', description: 'Edit products (productsEdit).', resource: products}
  - {scope: 'products:remove', description: 'Delete products (productsRemove).', resource: products}
  - {scope: 'products:merge', description: 'Merge duplicate products (productsMerge).', resource: products}
  - {scope: 'products:manage', description: 'Manage product supporting records such as units of measure (uomsAdd).', resource: products}
  - {scope: 'tags:read', description: 'List tags (tags).', resource: tags}
  - {scope: 'tags:create', description: 'Create a tag (tagsAdd).', resource: tags}
  - {scope: 'tags:update', description: 'Edit a tag (tagsEdit).', resource: tags}
  - {scope: 'tags:remove', description: 'Delete a tag (tagsRemove).', resource: tags}
  - {scope: 'tags:tag', description: 'Attach or detach a tag on another object (tagsTag).', resource: tags}
  - {scope: 'documents:read', description: 'List documents (documents).', resource: documents}
  - {scope: 'documents:create', description: 'Create documents (documentsSave). erxes documents this paired with documents:update.', resource: documents}
  - {scope: 'documents:update', description: 'Edit documents (documentsSave). erxes documents this paired with documents:create.', resource: documents}
  - {scope: 'documents:remove', description: 'Delete documents (documentsRemove).', resource: documents}
  - {scope: 'brands:read', description: 'List brands (brands).', resource: brands}
  - {scope: 'brands:create', description: 'Create a brand (brandsAdd).', resource: brands}
  - {scope: 'brands:update', description: 'Edit a brand (brandsEdit).', resource: brands}
  - {scope: 'brands:remove', description: 'Delete a brand (brandsRemove).', resource: brands}
  - {scope: 'organization:read', description: 'Read the organization structure — departments, branches, units (structures).', resource: organization}
  - {scope: 'organization:manage', description: 'Create organization structure records (departmentsAdd, branchesAdd).', resource: organization}
  - {scope: 'teamMembers:read', description: 'List team members (users).', resource: teamMembers}
  - {scope: 'teamMembers:create', description: 'Invite a new team member (usersInvite).', resource: teamMembers}
  - {scope: 'teamMembers:update', description: 'Edit a team member (usersEdit).', resource: teamMembers}
  - {scope: 'teamMembers:remove', description: 'Deactivate a team member (usersSetActiveStatus).', resource: teamMembers}
  - {scope: 'automations:read', description: 'List automations (automations).', resource: automations}
  - {scope: 'automations:create', description: 'Create an automation (automationsAdd).', resource: automations}
  - {scope: 'automations:update', description: 'Edit an automation (automationsEdit).', resource: automations}
  - {scope: 'automations:delete', description: 'Delete an automation (automationsRemove).', resource: automations}
scope_count: 34
public_operations:
  note: >-
    Separate from the scope strings above, the erxes CLI documents versioned
    "public operation" identifiers that must be enabled individually on an
    OAuth client before that client may call them. Only the three the CLI needs
    are published; the naming shape is <plugin>.<module>.<resource>.<verb>.<version>.
  source: https://github.com/erxes/erxes-cli#authenticate
  operations:
    - core.contacts.customers.list.v1
    - core.contacts.customers.detail.v1
    - core.contacts.customers.create.v1
backend_permissions:
  note: >-
    The operation plugin additionally publishes backend permission NAMES (not
    OAuth scopes). erxes states these are backend reference only and that an
    agent should proceed as owner and surface an access issue only when the API
    actually rejects a call. Recorded for completeness, not as a scope surface.
  source: https://github.com/erxes/erxes-skills/blob/main/agent-plugin/erxes-next/operation-api.md
  permissions:
    tasks: [taskRead, taskCreate, taskUpdate, taskRemove, taskAssign]
    triage: [triageRead, triageCreate, triageUpdate, triageConvert]
    projects: [projectRead, projectCreate, projectUpdate, projectRemove]
    milestones: [milestoneRead, milestoneCreate, milestoneUpdate, milestoneRemove]
    cycles: [cycleRead, cycleCreate, cycleUpdate, cycleRemove, cycleEnd]
    teams: [teamRead, teamCreate, teamUpdate, teamRemove, teamMemberManage]
    notes: [noteRead, noteCreate, noteUpdate, noteRemove]
    statuses: [statusRead, statusCreate, statusUpdate, statusRemove]
gaps:
  - >-
    erxes publishes no consolidated scopes reference page on erxes.io or
    docs.erxes.io. The only place the scope vocabulary is written down is the
    agent-plugin reference in the erxes-skills repository.
  - >-
    The block plugin ships no permission matrix at all; erxes says so itself
    under "Needs Verification" in block-api.md.