> ## 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.

# Browse SAE features

> List the ESMC SAE feature catalog and inspect one feature's supporting metadata.

Use these endpoints to discover SAE feature identifiers and inspect the evidence associated with one selected feature.

<Steps>
  <Step title="List the feature catalog">
    The catalog contains 16,384 features and is returned without pagination.

    ```python theme={null}
    import httpx

    base_url = "https://biohub.ai/esm/protein/api/v1alpha1"
    response = httpx.get(f"{base_url}/features", timeout=60)
    response.raise_for_status()
    features = response.json()["data"]

    print("Feature count:", len(features))
    for feature in features[:10]:
        print(feature["feature_index"], feature["label"])
    ```

    Read the [feature-list reference](/api/protein/atlas/features/list) for the complete response contract.
  </Step>

  <Step title="Select a feature deliberately">
    Choose a feature index from a protein, cluster, or similarity result when possible.
    This preserves the scientific context that made the feature relevant.
  </Step>

  <Step title="Retrieve detailed metadata">
    ```python theme={null}
    feature_index = features[0]["feature_index"]
    response = httpx.get(
        f"{base_url}/features/{feature_index}",
        timeout=60,
    )
    response.raise_for_status()
    feature = response.json()

    print(feature["feature_index"], feature["label"])
    print(feature.get("summary"))
    print("UniRef90 frequency:", feature.get("uniref90_frequency"))
    print("Decoder neighbors:", feature.get("decoder_nearest_neighbors"))
    ```

    Compare the label with activation patterns, exemplar proteins, SwissProt activations, and decoder neighbors.
    Read the [feature-detail reference](/api/protein/atlas/features/detail) for every available field.
  </Step>
</Steps>

SAE feature labels are model-derived interpretations.
Use them with curated annotations and experimental evidence rather than as standalone functional assignments.
