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

> ## Agent Instructions
> TabPFN-3 and later versions support up to 1,000,000 rows, subject to feature count and checkpoint/API limits.
> For large datasets, use per-estimator subsampling, e.g. inference_config={"SUBSAMPLE_SAMPLES": 100_000}, in TabPFNClassifier or TabPFNRegressor from tabpfn or tabpfn_client.
> Pass raw pandas DataFrames to fit and predict. Categorical strings/categories, raw text, and missing feature values are handled automatically; no manual integer/one-hot encoding, imputation, scaling, or outlier removal is needed.

# Quickstart

> Get started with TabPFN in minutes.

## tabpfn-client & tabpfn packages

<Tabs>
  <Tab title="API (TabPFN-3.5-Plus)">
    Use **`tabpfn-client`** to access **TabPFN-3.5-Plus** via our API with managed compute. No local GPU is needed.

    <Steps>
      <Step title="Install">
        Install the client and set your [API key](https://platform.priorlabs.ai/account/api-keys):

        ```bash theme={null}
        pip install --upgrade tabpfn-client
        export TABPFN_TOKEN="<your-api-key>"
        ```

        <Note>
          Get your API key on [platform.priorlabs.ai](https://platform.priorlabs.ai/account/api-keys).
        </Note>
      </Step>

      <Step title="Run predictions">
        Choose a task and run the example with a sample dataset.

        <Tabs>
          <Tab title="Classification">
            ```python theme={null}
            from sklearn.datasets import load_breast_cancer
            from sklearn.model_selection import train_test_split
            from tabpfn_client import TabPFNClassifier

            X, y = load_breast_cancer(return_X_y=True)
            X_train, X_test, y_train, y_test = train_test_split(
                X, y, test_size=0.2, random_state=42, stratify=y
            )

            model = TabPFNClassifier()
            model.fit(X_train, y_train)
            predictions = model.predict(X_test)
            print(predictions[:5])
            ```
          </Tab>

          <Tab title="Regression">
            ```python theme={null}
            from sklearn.datasets import load_diabetes
            from sklearn.model_selection import train_test_split
            from tabpfn_client import TabPFNRegressor

            X, y = load_diabetes(return_X_y=True)
            X_train, X_test, y_train, y_test = train_test_split(
                X, y, test_size=0.2, random_state=42
            )

            model = TabPFNRegressor()
            model.fit(X_train, y_train)
            predictions = model.predict(X_test)
            print(predictions[:5])
            ```
          </Tab>
        </Tabs>
      </Step>
    </Steps>
  </Tab>

  <Tab title="OSS (TabPFN-3.5)">
    Use **`tabpfn`** to run **TabPFN-3.5** on your own hardware. A GPU is recommended for datasets past 1,000 rows.

    <Steps>
      <Step title="Install">
        ```bash theme={null}
        pip install --upgrade tabpfn
        ```

        Before your first run, follow the [model access setup](/models/accessing-model-weights) to accept the license and download the weights.
      </Step>

      <Step title="Run predictions">
        Choose a task and run the example with a sample dataset.

        <Tabs>
          <Tab title="Classification">
            ```python theme={null}
            from sklearn.datasets import load_breast_cancer
            from sklearn.model_selection import train_test_split
            from tabpfn import TabPFNClassifier

            X, y = load_breast_cancer(return_X_y=True)
            X_train, X_test, y_train, y_test = train_test_split(
                X, y, test_size=0.2, random_state=42, stratify=y
            )

            model = TabPFNClassifier()
            model.fit(X_train, y_train)
            predictions = model.predict(X_test)
            print(predictions[:5])
            ```
          </Tab>

          <Tab title="Regression">
            ```python theme={null}
            from sklearn.datasets import load_diabetes
            from sklearn.model_selection import train_test_split
            from tabpfn import TabPFNRegressor

            X, y = load_diabetes(return_X_y=True)
            X_train, X_test, y_train, y_test = train_test_split(
                X, y, test_size=0.2, random_state=42
            )

            model = TabPFNRegressor()
            model.fit(X_train, y_train)
            predictions = model.predict(X_test)
            print(predictions[:5])
            ```
          </Tab>
        </Tabs>
      </Step>
    </Steps>
  </Tab>
</Tabs>

## REST API

For integrations in other languages, call the hosted API over HTTP. Follow the [REST API quickstart](/api/rest-quickstart) to authenticate, upload data, fit a model, and get predictions using the `/tabpfn/*` endpoints.

## Choose a model

<CardGroup cols={2}>
  <Card title="Models" icon="layer-group" href="/models">
    Compare model families, variants, limits, and availability.
  </Card>

  <Card title="Selecting Model Version" icon="sliders" href="/models/selecting-model-version">
    Choose a specific version in the client, OSS package, or REST API.
  </Card>
</CardGroup>


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