Creavily Brands API

The Brands API from Creavily — 2 operation(s) for brands.

Operations 2

GET /v1/public/principal Describe the authenticated bearer (API key or OAuth access token): workspace… #
GET /v1/public/brands List brands and optional product IDs scoped to the bearer principal organization #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/creavily:creavily-brands-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

creavily-brands-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Creavily Public Brands API
  version: 0.1.0
  description: Public API surface for tenant-scoped brand discovery, asset reads, channel account discovery, analytics, publishing automation, OAuth token exchange, and automation source/run management.
servers:
- url: https://creavily-api.ecomwith.com
  description: Creavily Public API
tags:
- name: Brands
paths:
  /v1/public/principal:
    get:
      tags:
      - Brands
      operationId: getPublicPrincipal
      summary: 'Describe the authenticated bearer (API key or OAuth access token): workspace…'
      security:
      - publicBearer: []
      x-required-scopes: []
      responses:
        '200':
          description: Authenticated principal summary.
          content:
            application/json:
              schema:
                type: object
                properties:
                  principal:
                    oneOf:
                    - type: object
                      properties:
                        kind:
                          type: string
                          const: api_key
                        organizationId:
                          type: string
                        subjectId:
                          type: string
                        scopes:
                          type: array
                          items:
                            type: string
                      required:
                      - kind
                      - organizationId
                      - subjectId
                      - scopes
                      additionalProperties: false
                    - type: object
                      properties:
                        kind:
                          type: string
                          const: oauth_access_token
                        organizationId:
                          type: string
                        subjectId:
                          type: string
                        authorizationId:
                          type: string
                        oauthAppId:
                          type: string
                        userId:
                          type: string
                        clientId:
                          type: string
                        scopes:
                          type: array
                          items:
                            type: string
                      required:
                      - kind
                      - organizationId
                      - subjectId
                      - authorizationId
                      - oauthAppId
                      - userId
                      - clientId
                      - scopes
                      additionalProperties: false
                required:
                - principal
                additionalProperties: false
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /v1/public/brands:
    get:
      tags:
      - Brands
      operationId: listPublicBrands
      summary: List brands and optional product IDs scoped to the bearer principal organization
      security:
      - publicBearer: []
      x-required-scopes:
      - brands:read
      parameters:
      - name: brandSlug
        in: query
        required: false
        schema:
          type: string
          minLength: 1
      - name: includeProducts
        in: query
        required: false
        schema:
          default: false
          type: boolean
      - name: limit
        in: query
        required: false
        schema:
          default: 100
          type: integer
          minimum: 1
          maximum: 500
      - name: offset
        in: query
        required: false
        schema:
          default: 0
          type: integer
          minimum: 0
          maximum: 9007199254740991
      responses:
        '200':
          description: Brands.
          content:
            application/json:
              schema:
                type: object
                properties:
                  principal:
                    oneOf:
                    - type: object
                      properties:
                        kind:
                          type: string
                          const: api_key
                        organizationId:
                          type: string
                        subjectId:
                          type: string
                        scopes:
                          type: array
                          items:
                            type: string
                      required:
                      - kind
                      - organizationId
                      - subjectId
                      - scopes
                      additionalProperties: false
                    - type: object
                      properties:
                        kind:
                          type: string
                          const: oauth_access_token
                        organizationId:
                          type: string
                        subjectId:
                          type: string
                        authorizationId:
                          type: string
                        oauthAppId:
                          type: string
                        userId:
                          type: string
                        clientId:
                          type: string
                        scopes:
                          type: array
                          items:
                            type: string
                      required:
                      - kind
                      - organizationId
                      - subjectId
                      - authorizationId
                      - oauthAppId
                      - userId
                      - clientId
                      - scopes
                      additionalProperties: false
                  brands:
                    type: array
                    items:
                      type: object
                      properties:
                        brandId:
                          type: string
                        organizationId:
                          type: string
                        name:
                          type: string
                        slug:
                          type: string
                        timezone:
                          type: string
                        productCount:
                          type: integer
                          minimum: 0
                          maximum: 9007199254740991
                        createdAt:
                          type: string
                        updatedAt:
                          type: string
                        products:
                          type: array
                          items:
                            type: object
                            properties:
                              productId:
                                type: string
                              brandId:
                                type: string
                              name:
                                type: string
                              slug:
                                type: string
                              productUrl:
                                type:
                                - string
                                - 'null'
                              shopifyProductId:
                                type:
                                - string
                                - 'null'
                              createdAt:
                                type: string
                              updatedAt:
                                type: string
                            required:
                            - productId
                            - brandId
                            - name
                            - slug
                            - productUrl
                            - shopifyProductId
                            - createdAt
                            - updatedAt
                            additionalProperties: false
                      required:
                      - brandId
                      - organizationId
                      - name
                      - slug
                      - timezone
                      - productCount
                      - createdAt
                      - updatedAt
                      additionalProperties: false
                required:
                - principal
                - brands
                additionalProperties: false
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
components:
  responses:
    BadRequest:
      description: Invalid request or missing runtime configuration.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Unauthorized:
      description: Missing or invalid bearer credentials.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    TooManyRequests:
      description: Public API rate limit exceeded.
      headers:
        RateLimit-Limit:
          description: Configured request limit for the current window.
          schema:
            type: integer
        RateLimit-Remaining:
          description: Requests remaining in the current window.
          schema:
            type: integer
        RateLimit-Reset:
          description: Seconds until the current window resets.
          schema:
            type: integer
        Retry-After:
          description: Seconds to wait before retrying.
          schema:
            type: integer
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Forbidden:
      description: Feature gate disabled or token missing required scope.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  schemas:
    ErrorResponse:
      type: object
      properties:
        error:
          type: string
          minLength: 1
        message:
          type: string
          minLength: 1
        fields:
          type: array
          items:
            type: object
            properties:
              path:
                type: array
                items:
                  type: string
              source:
                type: string
                enum:
                - body
                - query
                - params
            required:
            - path
            additionalProperties: false
        requestId:
          type: string
          minLength: 1
      required:
      - error
      - message
      additionalProperties: {}
  securitySchemes:
    publicBearer:
      type: http
      scheme: bearer
      description: Use a Creavily API key or OAuth access token. Public endpoints are scoped to the authenticated principal organization.
    dashboardSession:
      type: http
      scheme: bearer
      description: Temporary legacy Dashboard session Bearer compatibility. New first-party browser clients use the HttpOnly dashboardSessionCookie and must never send a Dashboard bearer through a URL.
    dashboardSessionCookie:
      type: apiKey
      in: cookie
      name: creavily_dashboard_session
      description: Host-only HttpOnly Dashboard session cookie issued after the one-time browser-session exchange. Browser clients rely on credentialed requests and an approved Origin; JavaScript does not read this value.
    internalServiceToken:
      type: apiKey
      in: header
      name: x-creavily-internal-token
      description: Internal service credential for non-public operational routes. It is never exposed to browser or third-party clients.
    servicePrincipalToken:
      type: apiKey
      in: header
      name: x-creavily-service-principal-token
      description: Server-side service-principal credential accepted by policy-gated admin routes. It is never exposed to browser or third-party clients.
    browserSessionExchangeCookie:
      type: apiKey
      in: cookie
      name: creavily_browser_session_exchange
      description: Short-lived HttpOnly temporary cookie used only with POST /v1/auth/browser-session/exchange. It is cleared after a successful exchange or logout.
x-creavily-error-catalog:
  version: '2026-07-26'
  errors:
  - code: public_api_disabled
    status: 403
    category: feature_gate
    summary: Public API access is disabled by environment configuration.
  - code: request_origin_not_allowed
    status: 421
    category: authorization
    summary: The effective request origin is not permitted by the configured public API origin.
  - code: public_api_token_required
    status: 401
    category: authentication
    summary: A bearer token is required for the protected public route.
  - code: public_api_token_forbidden
    status: 401
    category: authentication
    summary: The supplied bearer credential is not authorized for the protected route.
  - code: public_api_rate_limited
    status: 429
    category: rate_limit
    summary: The public API or public OAuth token exchange rate limit was exceeded.
  - code: invalid_public_api_rate_limit_store
    status: 400
    category: configuration
    summary: The configured public API rate-limit store is unsupported.
  - code: database_url_required
    status: 400
    category: configuration
    summary: The route needs DATABASE_URL but it is not configured.
  - code: redis_url_required
    status: 400
    category: configuration
    summary: The route needs REDIS_URL but it is not configured.
  - code: invalid_request
    status: 400
    category: validation
    summary: A request did not satisfy the route validation contract.
  - code: internal_server_error
    status: 500
    category: server
    summary: The server could not process the request.
  - code: invalid_oauth_token_request
    status: 400
    category: validation
    summary: The OAuth token exchange request body is invalid.
  - code: invalid_public_oauth_authorize_request
    status: 400
    category: validation
    summary: The OAuth authorization request is invalid.
  - code: public_oauth_disabled
    status: 403
    category: feature_gate
    summary: Public OAuth authorize/token exchange is disabled.
  - code: invalid_client
    status: 401
    category: authentication
    summary: OAuth client credentials are invalid.
  - code: oauth_client_secret_unavailable
    status: 400
    category: configuration
    summary: The configured OAuth client secret reference cannot be resolved.
  - code: oauth_app_not_found
    status: 404
    category: not_found
    summary: The OAuth app was not found for the requested client or organization.
  - code: oauth_redirect_uri_not_registered
    status: 400
    category: validation
    summary: The OAuth redirect URI is not registered for the app.
  - code: oauth_authorization_write_failed
    status: 500
    category: server
    summary: The server could not persist an OAuth authorization grant.
  - code: oauth_authorization_code_write_failed
    status: 500
    category: server
    summary: The server could not persist an OAuth authorization code.
  - code: oauth_authorization_code_invalid
    status: 400
    category: validation
    summary: The OAuth authorization code is invalid, expired, consumed, or not valid for the client.
  - code: oauth_authorization_code_consumed
    status: 400
    category: conflict
    summary: The OAuth authorization code was already consumed.
  - code: oauth_refresh_token_invalid
    status: 400
    category: validation
    summary: The OAuth refresh token is invalid, expired, consumed, or not valid for the client.
  - code: oauth_refresh_token_consumed
    status: 400
    category: conflict
    summary: The OAuth refresh token was already consumed.
  - code: oauth_access_token_write_failed
    status: 500
    category: server
    summary: The server could not persist a newly issued OAuth access token.
  - code: oauth_refresh_token_write_failed
    status: 500
    category: server
    summary: The server could not persist a newly issued OAuth refresh token.
  - code: invalid_public_publish_plan_request
    status: 400
    category: validation
    summary: The public publish-plan preview request body is invalid.
  - code: invalid_public_publish_job_request
    status: 400
    category: validation
    summary: The public publish-job creation request body is invalid.
  - code: invalid_public_publish_job_query
    status: 400
    category: validation
    summary: The public publish-job query parameters are invalid.
  - code: public_publish_job_not_found
    status: 404
    category: not_found
    summary: The publish job was not found in the principal organization.
  - code: publish_plan_validation_failed
    status: 422
    category: validation
    summary: The publish plan has blocking platform validation issues.
  - code: publish_job_write_disabled
    status: 403
    category: feature_gate
    summary: Publish job persistence is disabled.
  - code: invalid_public_publish_enqueue_request
    status: 400
    category: validation
    summary: The public publish enqueue request is invalid.
  - code: invalid_public_analytics_snapshot_query
    status: 400
    category: validation
    summary: The public analytics snapshot query parameters are invalid.
  - code: invalid_public_brand_query
    status: 400
    category: validation
    summary: The public brand query parameters are invalid.
  - code: invalid_public_channel_account_query
    status: 400
    category: validation
    summary: The public channel account query parameters are invalid.
  - code: invalid_public_channel_connect_url_request
    status: 400
    category: validation
    summary: The public channel OAuth connect URL request is invalid.
  - code: channel_oauth_config_missing
    status: 400
    category: configuration
    summary: The server-side OAuth configuration for the platform is missing.
  - code: channel_oauth_redirect_uri_forbidden
    status: 400
    category: validation
    summary: The requested redirect URI does not match server configuration.
  - code: channel_oauth_config_invalid
    status: 400
    category: configuration
    summary: The server-side OAuth URL configuration is invalid.
  - code: invalid_public_media_upload_request
    status: 400
    category: validation
    summary: The public media upload request body or multipart fields are invalid.
  - code: invalid_multipart_media_upload
    status: 400
    category: validation
    summary: The media upload request is not multipart/form-data.
  - code: multipart_media_file_required
    status: 400
    category: validation
    summary: The multipart media upload did not include a non-empty file.
  - code: media_file_too_large
    status: 400
    category: validation
    summary: The uploaded media exceeds the configured maximum size.
  - code: media_upload_write_disabled
    status: 403
    category: feature_gate
    summary: Media upload persistence is disabled.
  - code: publish_enqueue_disabled
    status: 403
    category: feature_gate
    summary: Publish queue enqueueing is disabled.
  - code: invalid_public_publish_slot_query
    status: 400
    category: validation
    summary: The public publish slot query parameters are invalid.
  - code: invalid_public_publish_schedule_request
    status: 400
    category: validation
    summary: The public publish schedule request is invalid.
  - code: publish_schedule_write_disabled
    status: 403
    category: feature_gate
    summary: Publish schedule writes are disabled.
  - code: invalid_public_publish_cancel_request
    status: 400
    category: validation
    summary: The public publish cancel request is invalid.
  - code: publish_cancel_write_disabled
    status: 403
    category: feature_gate
    summary: Publish cancellation is disabled.
  - code: invalid_public_publish_url_reconciliation_request
    status: 400
    category: validation
    summary: The public publish URL reconciliation request is invalid.
  - code: invalid_public_comment_reply_draft_request
    status: 400
    category: validation
    summary: The public social comment reply draft request is invalid.
  - code: invalid_public_social_comment_reply_request
    status: 400
    category: validation
    summary: The public social comment reply request is invalid.
  - code: invalid_public_social_comment_reply_query
    status: 400
    category: validation
    summary: The public social comment reply query parameters are invalid.
  - code: provider_comment_reply_disabled
    status: 403
    category: feature_gate
    summary: Live provider comment replies are disabled.
  - code: social_comment_write_disabled
    status: 403
    category: feature_gate
    summary: Social comment persistence or external writes are disabled.
  - code: social_comment_not_found
    status: 404
    category: not_found
    summary: The social comment was not found in the principal organization.
  - code: provider_comment_reply_unsupported
    status: 422
    category: validation
    summary: The provider does not support replying to this social comment.
  - code: publish_url_reconciliation_disabled
    status: 403
    category: feature_gate
    summary: Live publish URL reconciliation writes are disabled.
  - code: invalid_public_webhook_endpoint_query
    status: 400
    category: validation
    summary: The public webhook endpoint query parameters are invalid.
  - code: invalid_public_webhook_endpoint_create_request
    status: 400
    category: validation
    summary: The public webhook endpoint creation request body is invalid.
  - code: invalid_public_webhook_endpoint_update_request
    status: 400
    category: validation
    summary: The public webhook endpoint update request body is invalid.
  - code: invalid_public_webhook_endpoint_delete_request
    status: 400
    category: validation
    summary: The public webhook endpoint delete request is invalid.
  - code: webhook_url_invalid
    status: 400
    category: validation
    summary: The webhook endpoint URL is not safe for outbound delivery.
  - code: webhook_write_disabled
    status: 403
    category: feature_gate
    summary: Webhook endpoint persistence is disabled.
  - code: webhook_endpoint_not_found
    status: 404
    category: not_found
    summary: The webhook endpoint was not found in the principal organization.
  - code: webhook_endpoint_create_failed
    status: 500
    category: server
    summary: The server could not persist a created webhook endpoint.
  - code: invalid_public_automation_source_query
    status: 400
    category: validation
    summary: The public automation source query parameters are invalid.
  - code: invalid_public_automation_source_create_request
    status: 400
    category: validation
    summary: The public automation source creation request body is invalid.
  - code: invalid_public_automation_source_update_request
    status: 400
    category: validation
    summary: The public automation source update request is invalid.
  - code: invalid_public_automation_source_delete_request
    status: 400
    category: validation
    summary: The public automation source delete request is invalid.
  - code: automation_write_disabled
    status: 403
    category: feature_gate
    summary: Automation write operations are disabled.
  - code: automation_source_create_failed
    status: 500
    category: server
    summary: The server could not persist a created automation source.
  - code: automation_source_not_found
    status: 404
    category: not_found
    summary: The automation source was not found in the principal organization.
  - code: invalid_public_automation_run_query
    status: 400
    category: validation
    summary: The public automation run query parameters are invalid.
  - code: invalid_public_automation_run_create_request
    status: 400
    category: validation
    summary: The public automation run creation request is invalid.
  - code: invalid_public_automation_run_record_request
    status: 400
    category: validation
    summary: The public automation run status update request is invalid.
  - code: automation_source_not_runnable
    status: 404
    category: not_found
    summary: The automation source was not found, disabled, or deleted in the principal organization.
  - code: automation_run_not_found
    status: 404
    category: not_found
    summary: The automation run was not found in the principal organization.
  - code: automation_run_invalid_transition
    status: 409
    category: conflict
    summary: The automation run cannot move from its current state to the requested state.
x-creavily-dashboard-permission-policies:
- id: workspace.brands.initialize
  label: Initialize the first workspace brand
  description: Create the first brand in an authorized workspace without changing existing brands or enabling provider actions.
  minimumRole: admin
  servicePrincipalAllowed: false
- id: workspace.brands.create
  label: Create workspace brands
  description: Create additional brand context in a workspace without changing existing brands or enabling provider actions.
  minimumRole: admin
  servicePrincipalAllowed: false
- id: publishing.drafts.manage
  label: Manage private Create drafts
  description: Read, save, and delete the signed-in member's private brand-scoped Create draft.
  minimumRole: member
  servicePrincipalAllowed: false
- id: billing.subscription.read
  label: Read workspace billing
  description: Read the workspace plan, subscription status, plan limits, and current usage.
  minimumRole: member
  servicePrincipalAllowed: false
- id: billing.subscription.manage
  label: Manage workspace billing
  description: Start Stripe Checkout for a plan, open the Stripe Customer Portal and redeem a plan code for the workspace.
  minimumRole: admin
  servicePrincipalAllowed: false
- id: developer.api_keys.manage
  label: Manage developer API keys
  description: Create, list, and revoke organization-scoped public API keys.
  minimumRole: admin
  servicePrincipalAllowed: false
- id: developer.oauth_apps.manage
  label: Manage OAuth apps
  description: Create, list, update, and revoke organization-scoped OAuth developer apps.
  minimumRole: admin
  servicePrincipalAllowed: false
- id: developer.oauth_grants.manage
  label: Manage OAuth grants
  description: Create, list, exchange, and revoke organization-scoped OAuth authorization grants.
  minimumRole: admin
  servicePrincipalAllowed: false
- id: developer.oauth_tokens.exchange
  label: Exchange developer OAuth tokens
  description: Use the dashboard-only OAuth token exchange helper for development and support.
  minimumRole: admin
  servicePrincipalAllowed: false
- id: publishing.jobs.read
  label: Read publish jobs
  description: List organization-scoped publish jobs, queue status, and target status for the dashboard queue view.
  minimumRole: member
  servicePrincipalAllowed: false
- id: publishing.attention.manage
  label: Clear publishing attention
  description: Clear publish jobs from Needs attention with an optional reason, and restore them. Changes no publish state.
  minimumRole: member
  servicePrincipalAllowed: false
- id: publishing.batches.manage
  label: Manage publish batches
  description: Preview and apply product-diversified batch rebalance operations for dashboard scheduling.
  minimumRole: admin
  servicePrincipalAllowed: false
- id: publishing.queue.reconcile
  label: Reconcile publish queue
  description: Inspect and optionally remove non-active queued publish jobs for an organization.
  minimumRole: admin
  servicePrincipalAllowed: false
- id: publishing.urls.reconcile
  label: Reconcile publish URLs
  description: Write provider release URLs back into publish targets after external execution.
  minimumRole: admin
  servicePrincipalAllowed: false
- id: publishing.results.manage
  label: Manage publish results
  description: Record provider publish attempts and update aggregate publish execution state.
  minimumRole: admin
  servicePrincipalAllowed: false
- id: analytics.provider_sync.manage
  label: Sync provider analytics
  description: Fetch post status and analytics from connected provider accounts and persist analytics snapshots.
  minimumRole: admin
  servicePrincipalAllowed: false
- id: engagement.comments.manage
  label: Manage social comments
  description: Fetch provider comments, persist the comment inbox, and publish comment replies from connected provider accounts.
  minimumRole: admin
  servicePrincipalAllowed: false
- id: webhooks.endpoints.manage
  label: Manage webhook endpoints
  description: Create, list, update, and delete organization-scoped webhook endpoints.
  minimumRole: admin
  servicePrincipalAllowed: false
- id: webhooks.deliveries.manage
  label: Manage webhook deliveries
  description: Enqueue, inspect, dispatch, and record attempts for webhook deliveries.
  minimumRole: admin
  servicePrincipalAllowed: false
- id: automations.sources.manage
  label: Manage automation sources
  description: Create, update, delete, and manually run organization-scoped automation sources.
  minimumRole: admin
  servicePrincipalAllowed: false
- id: automations.scheduler.enqueue
  label: Enqueue automation scheduler
  description: Find due automation sources, create poll runs, and enqueue scheduler work.
  minimumRole: admin
  servicePrincipalAllowed: true
- id: platform.billing.read
  label: Read platform billing
  description: Read every workspace's plan, subscription, usage, promotion codes and redeem codes in the platform admin console.
  minimumRole: admin
  servicePrincipalAllowed: false
  internalOnly: true
- id: platform.billing.manage
  label: Manage platform billing
  description: Grant or end manual plans, generate or disable promotion codes, and manage redeem codes from the platform admin console.
  minimumRole: admin
  servicePrincipalAllowed: false
  internalOnly: true
- id: platform.blog.read
  label: Read the platform blog
  description: List posts of every status, open revisions and render previews in the platform admin console.
  minimumRole: admin
  servicePrincipalAllowed: false
  internalOnly: true
- id: platform.blog.manage
  label: Edit the platform blog
  description: Create and edit draft posts for creavily.com/blog from the platform admin console.
  minimumRole: admin
  servicePrincipalAllowed: false
  internalOnly: true
- id: platform.blog.publish
  label: Publish the platform blog
  description: Publish, schedule, unpublish and archive posts on creavily.com/blog from the platform admin console.
  minimumRole: admin
  servicePrincipalAllowed: false
  internalOnly: true
- id: platform.admins.read
  label: Read platform admins
  description: List the people who can open the platform admin console.
  minimumRole: admin
  servicePrincipalAllowed: false
  internalOnly: true
- id: platform.admins.manage
  label: Manage platform admins
  description: Grant platform admin to a verified user or remove it, from the platform admin console.
  minimumRole: admin
  servicePrincipalAllowed: false
  internalOnly: true
- id: platform.users.read
  label: Read platform users
  description: List every user with sign-in methods, workspaces, sessions and recent activity in the platform admin console.
  minimumRole: admin
  servicePrincipalAllowed: false
  internalOnly: true
- id: platform.switches.read
  label: Read operator switches
  description: See the operator switches, every gate's current value and the history of switch changes in the platform admin console.
  minimumRole: admin
  servicePrincipalAllowed: false
  internalOnly: true
- id: platform.users.manage
  label: Manage platform users
  description: Suspend or reactivate a user, sign them out everywhere, resend or override email verification, from the platform admin console.
  minimumRole: admin
  servicePrincipalAllowed: false
  internalOnly: true
- id: platform.activity.read
  label: Read platform activity
  description: Read the unified audit feed, sign-in log and activity metrics across the platform in the admin console.
  minimumRole: admin
  servicePrincipalAllowed: false
  internalOnly: true


# --- truncated at 32 KB (34 KB total) ---
# Full source: https://artifacts.apis.io/creavily/openapi/creavily-brands-api-openapi.yml