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

# Get protein metadata, sequence, and top SAE features

> Look up a protein by its MD5 hash and return its metadata, amino acid sequence, and top-activating SAE features.



## OpenAPI

````yaml openapi/metagenomic-atlas-openapi.json GET /esm/protein/api/v1alpha1/proteins/{protein_hash}
openapi: 3.1.0
info:
  title: ESM Atlas API Reference
  description: Interfaces may change without notice.
  version: 0.1.0
servers:
  - url: https://biohub.ai
security: []
paths:
  /esm/protein/api/v1alpha1/proteins/{protein_hash}:
    get:
      tags:
        - Proteins
      summary: Get protein metadata, sequence, and top SAE features
      description: >-
        Look up a protein by its MD5 hash and return its metadata, amino acid
        sequence, and top-activating SAE features.
      operationId: get_protein_v2_esm_protein_api_v1alpha1_proteins__protein_hash__get
      parameters:
        - name: protein_hash
          in: path
          required: true
          schema:
            type: string
            pattern: ^[0-9a-f]{32}$
            title: Protein Hash
        - name: topk_features
          in: query
          required: false
          schema:
            type: integer
            maximum: 100
            minimum: 1
            default: 10
            title: Topk Features
        - name: fold_on_miss
          in: query
          required: false
          schema:
            type: boolean
            default: true
            title: Fold On Miss
        - name: normalize_features
          in: query
          required: false
          schema:
            type: boolean
            description: >-
              When true (default), feature activation values are scaled
              per-feature so they are comparable across proteins (matches the
              ranking shown in the UI). When false, returns raw SAE activations
              — useful for callers doing their own normalization.
            default: true
            title: Normalize Features
          description: >-
            When true (default), feature activation values are scaled
            per-feature so they are comparable across proteins (matches the
            ranking shown in the UI). When false, returns raw SAE activations —
            useful for callers doing their own normalization.
        - name: feature_indices
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: integer
                maxItems: 100
              - type: 'null'
            description: >-
              When provided, return values for exactly these feature indices (in
              the given order) instead of the top-K ranking. Features with no
              recorded activation are returned with value 0.0; indices not in
              the catalog are skipped. Capped at 100 entries.
            title: Feature Indices
          description: >-
            When provided, return values for exactly these feature indices (in
            the given order) instead of the top-K ranking. Features with no
            recorded activation are returned with value 0.0; indices not in the
            catalog are skipped. Capped at 100 entries.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProteinV2Response'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    ProteinV2Response:
      properties:
        protein_hash:
          type: string
          title: Protein Hash
        header:
          anyOf:
            - type: string
            - type: 'null'
          title: Header
        source:
          anyOf:
            - type: string
            - type: 'null'
          title: Source
        accession:
          anyOf:
            - type: string
            - type: 'null'
          title: Accession
        sequence:
          anyOf:
            - type: string
            - type: 'null'
          title: Sequence
        sequence_length:
          anyOf:
            - type: integer
            - type: 'null'
          title: Sequence Length
        ptm:
          anyOf:
            - type: number
            - type: 'null'
          title: Ptm
        mean_plddt:
          anyOf:
            - type: number
            - type: 'null'
          title: Mean Plddt
        residues_plddt:
          anyOf:
            - items:
                type: number
              type: array
            - type: 'null'
          title: Residues Plddt
        sae_features:
          items:
            $ref: '#/components/schemas/SAEFeatureResponse'
          type: array
          title: Sae Features
          default: []
        protein_activations:
          anyOf:
            - $ref: '#/components/schemas/SparseActivations'
            - type: 'null'
        per_residue_activations:
          anyOf:
            - $ref: '#/components/schemas/SparseActivations'
            - type: 'null'
        pdb:
          anyOf:
            - type: string
            - type: 'null'
          title: Pdb
        cluster_rep_protein_hash:
          anyOf:
            - type: string
            - type: 'null'
          title: Cluster Rep Protein Hash
        folded_on_demand:
          type: boolean
          title: Folded On Demand
          default: false
      type: object
      required:
        - protein_hash
      title: ProteinV2Response
      description: 'Protein details: metadata, sequence, structure, and SAE features.'
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    SAEFeatureResponse:
      properties:
        feature_index:
          type: integer
          title: Feature Index
        label:
          type: string
          title: Label
        description:
          type: string
          title: Description
        value:
          type: number
          title: Value
        residue_regions:
          items:
            $ref: '#/components/schemas/ResidueRegion'
          type: array
          title: Residue Regions
          default: []
      type: object
      required:
        - feature_index
        - label
        - description
        - value
      title: SAEFeatureResponse
      description: An SAE feature that is activated for a protein.
    SparseActivations:
      properties:
        indices:
          items:
            items:
              type: integer
            type: array
          type: array
          title: Indices
          description: COO indices [[residue_indices], [feature_indices]]
        values:
          items:
            type: number
          type: array
          title: Values
          description: Activation values corresponding to indices
        shape:
          items:
            type: integer
          type: array
          title: Shape
          description: Tensor shape [seq_len, num_features]
      type: object
      required:
        - indices
        - values
        - shape
      title: SparseActivations
      description: >-
        Sparse tensor representation of per-residue SAE activations in COO
        format.
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
    ResidueRegion:
      properties:
        start:
          type: integer
          title: Start
        end:
          type: integer
          title: End
        peak_residue:
          type: integer
          title: Peak Residue
        mean_activation:
          type: number
          title: Mean Activation
      type: object
      required:
        - start
        - end
        - peak_residue
        - mean_activation
      title: ResidueRegion
      description: A contiguous stretch of residues where an SAE feature is active.

````