> ## 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](/docs/external-api/user-orgs) — 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
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
                      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
                        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
                        required:
                          - letterOfAuthorization
                          - powerOfAttorney
                        description: >-
                          Org-level Letter of Authorization and Power of
                          Attorney attachments
                      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
                            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
                            - 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.

````