> ## Documentation Index
> Fetch the complete documentation index at: https://chainpatrol.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Get User Organization

> Fetch a single organization by slug. Returns the same per-organization shape as `/user/orgs` (id, name, slug, avatarUrl, subscriptionStatus, services flags, integration connection status, `obligatoryAdminApproval`, `legalDocuments`, and `trademarkRegistrations`). The `integrations` object shows which third-party integrations are connected: `slack`, `discord`, `vercel`, `intercom`, and `moderation` are booleans; `telegram` is `{ connected, groupCount }`. The `legalDocuments` object reports whether the org's Letter of Authorization and Power of Attorney are on file along with a direct `fileUrl` to view each when present. `trademarkRegistrations` returns every org-level trademark on file with its issuing office, registration number, and (when uploaded) a `certificateFileUrl` link to the certificate PDF — an empty array means no trademarks are recorded for the org. Access requires the caller to have permission for the org: org-scoped API keys must match the slug; user sessions and user-scoped API keys need an active OrganizationMembership unless the caller is staff. Soft-deleted organizations are excluded.

## Overview

Fetch a single organization by slug. The response uses the same per-organization shape
as [List User Organizations](https://chainpatrol.com/docs/external-api/user-orgs.md) — id, name, slug, avatar URL,
subscription status, services flags, integration connection status, obligatory admin
approval, legal documents, and trademark registrations.

## Access

The caller must have permission for the organization:

* Org-scoped API keys must match the requested slug.
* User sessions and user-scoped API keys need an active organization membership, unless
  the caller is ChainPatrol staff.

Soft-deleted organizations are excluded.


## OpenAPI

````yaml GET /user/orgs/{slug}
openapi: 3.0.3
info:
  title: ChainPatrol External API - OpenAPI 3.0
  description: ChainPatrol External API documentation
  version: 2.0.0
servers:
  - url: https://app.chainpatrol.io/api/v2
security: []
tags:
  - name: asset
  - name: report
  - name: dark-web
externalDocs:
  url: https://chainpatrol.com/docs
paths:
  /user/orgs/{slug}:
    get:
      tags:
        - user
      summary: Get an organization the caller can access
      description: >-
        Fetch a single organization by slug. Returns the same per-organization
        shape as `/user/orgs` (id, name, slug, avatarUrl, subscriptionStatus,
        services flags, integration connection status,
        `obligatoryAdminApproval`, `legalDocuments`, and
        `trademarkRegistrations`). The `integrations` object shows which
        third-party integrations are connected: `slack`, `discord`, `vercel`,
        `intercom`, and `moderation` are booleans; `telegram` is `{ connected,
        groupCount }`. The `legalDocuments` object reports whether the org's
        Letter of Authorization and Power of Attorney are on file along with a
        direct `fileUrl` to view each when present. `trademarkRegistrations`
        returns every org-level trademark on file with its issuing office,
        registration number, and (when uploaded) a `certificateFileUrl` link to
        the certificate PDF — an empty array means no trademarks are recorded
        for the org. Access requires the caller to have permission for the org:
        org-scoped API keys must match the slug; user sessions and user-scoped
        API keys need an active OrganizationMembership unless the caller is
        staff. Soft-deleted organizations are excluded.
      operationId: userOrgGet
      parameters:
        - in: path
          name: slug
          description: Organization slug to fetch (must be one the caller can access)
          schema:
            type: string
            minLength: 1
            description: Organization slug to fetch (must be one the caller can access)
          required: true
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  organization:
                    type: object
                    properties:
                      id:
                        type: number
                      name:
                        type: string
                      slug:
                        type: string
                      avatarUrl:
                        type: string
                        nullable: true
                      contactUrl:
                        type: string
                        nullable: true
                      subscriptionStatus:
                        type: string
                        enum:
                          - POC
                          - ACTIVE
                          - PROSPECT
                          - INTEGRATION
                          - INACTIVE
                          - PROTECTION
                      portalVisibility:
                        type: string
                        enum:
                          - PUBLIC
                          - PRIVATE
                          - DISABLED
                        description: >-
                          Visibility of the org's public security portal
                          (chainpatrol.io/<slug>). `PUBLIC` is discoverable;
                          `PRIVATE` renders only the report form (no metrics or
                          listings); `DISABLED` returns a 404.
                      reportVisibility:
                        type: string
                        enum:
                          - PUBLIC
                          - PRIVATE
                        description: >-
                          Whether the report listings on the public portal are
                          visible to visitors. `PUBLIC` shows the org's reports;
                          `PRIVATE` hides the report list even when the portal
                          is discoverable.
                      metricsVisibility:
                        type: string
                        enum:
                          - PUBLIC
                          - PRIVATE
                          - DISABLED
                        description: >-
                          Whether the metrics/threats-blocked stats render on
                          the public portal. `PUBLIC` shows the metrics tab;
                          `PRIVATE` hides it from anonymous visitors; `DISABLED`
                          doesn't compute metrics at all.
                      brandMetadata:
                        type: object
                        properties:
                          websiteUrl:
                            type: string
                            nullable: true
                            description: >-
                              Public website URL of the brand (linked from the
                              portal header)
                          twitterHandle:
                            type: string
                            nullable: true
                            description: >-
                              Public Twitter/X handle of the brand, stored with
                              the leading `@` (e.g. `@acme`)
                          securityContactEmail:
                            type: string
                            nullable: true
                            description: >-
                              Email address for security correspondence — used
                              by takedown providers and researchers, distinct
                              from the internal customer POC email
                          industry:
                            type: string
                            nullable: true
                            description: >-
                              Free-form industry label (e.g. "DeFi", "CEX",
                              "NFT", "Wallet")
                        required:
                          - websiteUrl
                          - twitterHandle
                          - securityContactEmail
                          - industry
                        description: >-
                          Public brand-facing metadata (website, twitter,
                          security contact, industry) shown on the portal and
                          used by staff for outbound
                      portalCustomization:
                        type: object
                        properties:
                          useCustomDetails:
                            type: boolean
                            description: >-
                              When true, the portal uses
                              `name`/`slug`/`avatarUrl` from this object instead
                              of the org's own name/slug/avatar
                          name:
                            type: string
                            nullable: true
                            description: >-
                              Custom display name shown on the portal (used only
                              when `useCustomDetails=true`)
                          slug:
                            type: string
                            nullable: true
                            description: >-
                              Custom URL slug (`chainpatrol.io/<slug>`) — takes
                              precedence over the org's own slug when set,
                              regardless of `useCustomDetails`
                          avatarUrl:
                            type: string
                            nullable: true
                            description: >-
                              Custom avatar URL shown on the portal (used only
                              when `useCustomDetails=true`)
                          bannerEnabled:
                            type: boolean
                            description: >-
                              When true, the portal renders `bannerContent` as a
                              highlighted banner at the top of the page
                          bannerContent:
                            type: string
                            nullable: true
                            description: >-
                              Markdown body of the portal banner. Null (or
                              empty) with `bannerEnabled=true` means the toggle
                              is on but no content has been written yet
                        required:
                          - useCustomDetails
                          - name
                          - slug
                          - avatarUrl
                          - bannerEnabled
                          - bannerContent
                        description: >-
                          Customer-configurable presentation of the public
                          security portal — custom name/slug/avatar and the
                          banner content
                      services:
                        type: object
                        properties:
                          reporting:
                            type: object
                            properties:
                              active:
                                type: boolean
                            required:
                              - active
                          reviewing:
                            type: object
                            properties:
                              active:
                                type: boolean
                            required:
                              - active
                          protection:
                            type: object
                            properties:
                              active:
                                type: boolean
                            required:
                              - active
                          takedowns:
                            type: object
                            properties:
                              active:
                                type: boolean
                              automated:
                                type: boolean
                            required:
                              - active
                              - automated
                          detection:
                            type: object
                            properties:
                              active:
                                type: boolean
                            required:
                              - active
                          darkWebMonitoring:
                            type: object
                            properties:
                              active:
                                type: boolean
                            required:
                              - active
                        required:
                          - reporting
                          - reviewing
                          - protection
                          - takedowns
                          - detection
                          - darkWebMonitoring
                      integrations:
                        type: object
                        properties:
                          slack:
                            type: boolean
                          discord:
                            type: boolean
                          telegram:
                            type: object
                            properties:
                              connected:
                                type: boolean
                              groupCount:
                                type: number
                            required:
                              - connected
                              - groupCount
                          vercel:
                            type: boolean
                          intercom:
                            type: boolean
                          moderation:
                            type: boolean
                        required:
                          - slack
                          - discord
                          - telegram
                          - vercel
                          - intercom
                          - moderation
                      obligatoryAdminApproval:
                        type: object
                        properties:
                          active:
                            type: boolean
                          assetTypes:
                            type: array
                            items:
                              type: string
                              enum:
                                - URL
                                - PAGE
                                - ADDRESS
                                - DISCORD
                                - LINKEDIN
                                - TWITTER
                                - FACEBOOK
                                - YOUTUBE
                                - REDDIT
                                - TELEGRAM
                                - GOOGLE_APP_STORE
                                - APPLE_APP_STORE
                                - AMAZON_APP_STORE
                                - MICROSOFT_APP_STORE
                                - TIKTOK
                                - INSTAGRAM
                                - THREADS
                                - MEDIUM
                                - CHROME_WEB_STORE
                                - MOZILLA_ADDONS
                                - OPERA_ADDONS
                                - EMAIL
                                - PATREON
                                - OPENSEA
                                - FARCASTER
                                - IPFS
                                - GOOGLE_FORM
                                - WHATSAPP
                                - DISCORD_USER
                                - QUORA
                                - GITHUB
                                - TEACHABLE
                                - SUBSTACK
                                - DEBANK
                                - TAWK_TO
                                - JOTFORM
                                - PRIMAL
                                - BLUESKY
                                - SNAPCHAT
                                - DESO
                                - PINTEREST
                                - FLICKR
                                - GALXE
                                - VELOG
                                - NPM
                                - PYPI
                                - HEX
                                - DOCKER_HUB
                                - VOCAL_MEDIA
                                - TECKFINE
                                - TENDERLY
                                - HACKMD
                                - ETSY
                                - ZAZZLE
                                - BASENAME
                                - BILIBILI_TV
                                - VIMEO
                                - DAILYMOTION
                                - PHONE_NUMBER
                                - SLACK
                                - CALENDLY
                                - NGROK
                                - RARIBLE
                                - RUST_PACKAGE
                                - FLATHUB
                                - VIDLII
                                - VEVIOZ
                                - ISSUU
                                - SOUNDCLOUD
                                - ZAPPER
                                - REDNOTE
                                - SAMSUNG_APP_STORE
                                - HUAWEI_APP_STORE
                                - XIAOMI_APP_STORE
                                - TENCENT_APP_STORE
                                - OPPO_APP_STORE
                                - VIVO_APP_STORE
                                - F_DROID
                                - GOOGLE_AD
                                - BING_AD
                                - TWITCH
                                - BEHANCE
                                - ZORA
                                - META_AD
                                - SIGNAL
                                - DEVIANTART
                                - BANDCAMP
                                - ARCHIVE_ORG
                                - FIVE_HUNDRED_PX
                                - LUMA
                                - SMARTMONEYMATCH
                                - APK_GOLD
                                - GLASSDOOR
                                - PUMP_FUN
                                - TUMBLR
                                - MASTODON
                        required:
                          - active
                          - assetTypes
                      pendingServiceApprovals:
                        type: array
                        items:
                          type: object
                          properties:
                            service:
                              type: string
                              enum:
                                - protection
                                - takedowns
                            automated:
                              type: boolean
                            serviceType:
                              type: string
                              enum:
                                - isDetectionActive
                                - isReportingActive
                                - isAutomatedReportingActive
                                - isReviewingActive
                                - isAutomatedReviewingActive
                                - isProtectionActive
                                - isAutomatedProtectionActive
                                - isTakedownsActive
                                - isAutomatedTakedownsActive
                                - requiresCustomerReview
                            serviceName:
                              type: string
                            requestedAt:
                              type: string
                          required:
                            - service
                            - automated
                            - serviceType
                            - serviceName
                            - requestedAt
                      legalDocuments:
                        type: object
                        properties:
                          letterOfAuthorization:
                            type: object
                            properties:
                              present:
                                type: boolean
                                description: >-
                                  Whether the organization has this document
                                  attached
                              fileName:
                                type: string
                                nullable: true
                                description: >-
                                  Original filename of the uploaded document
                                  (null when not present)
                              fileUrl:
                                type: string
                                nullable: true
                                description: >-
                                  Direct URL to view or download the document
                                  (null when not present)
                            required:
                              - present
                              - fileName
                              - fileUrl
                          powerOfAttorney:
                            type: object
                            properties:
                              present:
                                type: boolean
                                description: >-
                                  Whether the organization has this document
                                  attached
                              fileName:
                                type: string
                                nullable: true
                                description: >-
                                  Original filename of the uploaded document
                                  (null when not present)
                              fileUrl:
                                type: string
                                nullable: true
                                description: >-
                                  Direct URL to view or download the document
                                  (null when not present)
                            required:
                              - present
                              - fileName
                              - fileUrl
                          brands:
                            type: array
                            items:
                              type: object
                              properties:
                                brandId:
                                  type: number
                                  description: Brand ID
                                brandSlug:
                                  type: string
                                  description: Brand slug
                                brandName:
                                  type: string
                                  description: Brand name
                                letterOfAuthorization:
                                  type: object
                                  properties:
                                    present:
                                      type: boolean
                                      description: >-
                                        Whether the organization has this
                                        document attached
                                    fileName:
                                      type: string
                                      nullable: true
                                      description: >-
                                        Original filename of the uploaded
                                        document (null when not present)
                                    fileUrl:
                                      type: string
                                      nullable: true
                                      description: >-
                                        Direct URL to view or download the
                                        document (null when not present)
                                  required:
                                    - present
                                    - fileName
                                    - fileUrl
                                powerOfAttorney:
                                  type: object
                                  properties:
                                    present:
                                      type: boolean
                                      description: >-
                                        Whether the organization has this
                                        document attached
                                    fileName:
                                      type: string
                                      nullable: true
                                      description: >-
                                        Original filename of the uploaded
                                        document (null when not present)
                                    fileUrl:
                                      type: string
                                      nullable: true
                                      description: >-
                                        Direct URL to view or download the
                                        document (null when not present)
                                  required:
                                    - present
                                    - fileName
                                    - fileUrl
                              required:
                                - brandId
                                - brandSlug
                                - brandName
                                - letterOfAuthorization
                                - powerOfAttorney
                            description: >-
                              Live brands that use their own Letter of
                              Authorization and Power of Attorney instead of the
                              organization's, with those documents. Takedowns
                              for these brands file with the brand's documents.
                              Empty when every brand uses the organization's.
                        required:
                          - letterOfAuthorization
                          - powerOfAttorney
                          - brands
                        description: >-
                          Org-level Letter of Authorization and Power of
                          Attorney attachments, plus the documents of brands
                          that use their own
                      trademarkRegistrations:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: number
                              description: Trademark registration ID
                            brandName:
                              type: string
                              description: >-
                                Trademarked brand name as it appears on the
                                registration
                            trademarkOffice:
                              type: string
                              description: Issuing trademark office (e.g. `USPTO`, `EUIPO`)
                            registrationNumber:
                              type: string
                              description: Registration number assigned by the office
                            goodsAndServicesClass:
                              type: string
                              description: >-
                                Nice Classification class(es) the registration
                                covers
                            rightsOwnerName:
                              type: string
                              nullable: true
                              description: >-
                                Legal entity the trademark is registered to, if
                                recorded
                            registrationPageUrl:
                              type: string
                              nullable: true
                              description: >-
                                Public URL on the trademark office's site, if
                                recorded
                            status:
                              type: string
                              enum:
                                - ACTIVE
                                - PENDING
                                - EXPIRED
                                - ABANDONED
                                - CANCELLED
                              description: >-
                                Lifecycle state of the registration. Only
                                `ACTIVE` marks are used by ChainPatrol's
                                takedown and enforcement workflows; the others
                                are retained for record-keeping. Every
                                registration is returned regardless of status —
                                filter on this field if you only want marks
                                currently in force.
                            certificateFileName:
                              type: string
                              nullable: true
                              description: >-
                                Original filename of the uploaded certificate
                                PDF (null when no certificate is attached)
                            certificateFileUrl:
                              type: string
                              nullable: true
                              description: >-
                                Direct URL to view or download the certificate
                                PDF (null when no certificate is attached)
                          required:
                            - id
                            - brandName
                            - trademarkOffice
                            - registrationNumber
                            - goodsAndServicesClass
                            - rightsOwnerName
                            - registrationPageUrl
                            - status
                            - certificateFileName
                            - certificateFileUrl
                        description: >-
                          Org-level trademark registrations attached to the
                          organization. An empty array means no trademarks are
                          on file — use this to identify customers who still
                          need to add them.
                    required:
                      - id
                      - name
                      - slug
                      - avatarUrl
                      - contactUrl
                      - subscriptionStatus
                      - portalVisibility
                      - reportVisibility
                      - metricsVisibility
                      - brandMetadata
                      - portalCustomization
                      - services
                      - integrations
                      - obligatoryAdminApproval
                      - pendingServiceApprovals
                      - legalDocuments
                      - trademarkRegistrations
                required:
                  - organization
        '400':
          description: Invalid input data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error.BAD_REQUEST'
        '401':
          description: Authorization not provided
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error.UNAUTHORIZED'
        '403':
          description: Insufficient access
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error.FORBIDDEN'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error.NOT_FOUND'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR'
      security:
        - ApiKey: []
components:
  schemas:
    error.BAD_REQUEST:
      type: object
      properties:
        message:
          type: string
          description: The error message
          example: Invalid input data
        code:
          type: string
          description: The error code
          example: BAD_REQUEST
        issues:
          type: array
          items:
            type: object
            properties:
              message:
                type: string
            required:
              - message
          description: An array of issues that were responsible for the error
          example: []
      required:
        - message
        - code
      title: Invalid input data error (400)
      description: The error information
      example:
        code: BAD_REQUEST
        message: Invalid input data
        issues: []
    error.UNAUTHORIZED:
      type: object
      properties:
        message:
          type: string
          description: The error message
          example: Authorization not provided
        code:
          type: string
          description: The error code
          example: UNAUTHORIZED
        issues:
          type: array
          items:
            type: object
            properties:
              message:
                type: string
            required:
              - message
          description: An array of issues that were responsible for the error
          example: []
      required:
        - message
        - code
      title: Authorization not provided error (401)
      description: The error information
      example:
        code: UNAUTHORIZED
        message: Authorization not provided
        issues: []
    error.FORBIDDEN:
      type: object
      properties:
        message:
          type: string
          description: The error message
          example: Insufficient access
        code:
          type: string
          description: The error code
          example: FORBIDDEN
        issues:
          type: array
          items:
            type: object
            properties:
              message:
                type: string
            required:
              - message
          description: An array of issues that were responsible for the error
          example: []
      required:
        - message
        - code
      title: Insufficient access error (403)
      description: The error information
      example:
        code: FORBIDDEN
        message: Insufficient access
        issues: []
    error.NOT_FOUND:
      type: object
      properties:
        message:
          type: string
          description: The error message
          example: Not found
        code:
          type: string
          description: The error code
          example: NOT_FOUND
        issues:
          type: array
          items:
            type: object
            properties:
              message:
                type: string
            required:
              - message
          description: An array of issues that were responsible for the error
          example: []
      required:
        - message
        - code
      title: Not found error (404)
      description: The error information
      example:
        code: NOT_FOUND
        message: Not found
        issues: []
    error.INTERNAL_SERVER_ERROR:
      type: object
      properties:
        message:
          type: string
          description: The error message
          example: Internal server error
        code:
          type: string
          description: The error code
          example: INTERNAL_SERVER_ERROR
        issues:
          type: array
          items:
            type: object
            properties:
              message:
                type: string
            required:
              - message
          description: An array of issues that were responsible for the error
          example: []
      required:
        - message
        - code
      title: Internal server error error (500)
      description: The error information
      example:
        code: INTERNAL_SERVER_ERROR
        message: Internal server error
        issues: []
  securitySchemes:
    ApiKey:
      type: apiKey
      in: header
      name: X-API-KEY
      description: >-
        Your API key. This is required by most endpoints to access our API
        programatically. Reach out to us at
        [support@chainpatrol.io](mailto:support@chainpatrol.io?subject=Re:%20API%20Key%20for%20SDK&body=Company:%20%0AName:%20%0APurpose:%20)
        to get an API key for your use.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.