# Share Links

## Create a share link

`share_links.create(ShareLinkCreateParams**kwargs)  -> ShareLinkCreateResponse`

**post** `/compute/v1/share-links`

Create an unauthenticated, read-only share link covering one or more predictions and/or pipelines that all live in the same workspace. The returned `id` is the bearer credential — treat it as a secret.

### Parameters

- `expires_at: str`

- `access_parameters: Optional[AccessParameters]`

  Access-control parameters for the share link. Discriminated by `access_mode`: `public` requires no other fields; `email` requires a non-empty `allowed_emails` list.

  - `class AccessParametersPublicShareLinkAccessParameters: …`

    Public access: anyone holding the share link ID can read.

    - `access_mode: Literal["public"]`

      - `"public"`

  - `class AccessParametersEmailShareLinkAccessParameters: …`

    Email-restricted access: only the addresses in `allowed_emails` can read the link.

    - `access_mode: Literal["email"]`

      - `"email"`

    - `allowed_emails: Sequence[str]`

      Email addresses allowed to read the link. Must contain at least one address; up to 100 entries.

- `pipeline_ids: Optional[Sequence[str]]`

  Pipelines to expose through the share link. Must belong to the resolved workspace. Up to 100 entries.

- `prediction_ids: Optional[Sequence[str]]`

  Predictions to expose through the share link. Must belong to the resolved workspace. Up to 100 entries.

- `workspace_id: Optional[str]`

  Workspace ID. Only used with admin API keys. Ignored (or validated) for workspace-scoped keys.

### Returns

- `class ShareLinkCreateResponse: …`

  - `id: str`

    Share link ID. This value is the bearer credential used to access the linked resources — treat it as a secret.

  - `access_parameters: AccessParameters`

    Access-control parameters for the share link. Discriminated by `access_mode`: `public` requires no other fields; `email` requires a non-empty `allowed_emails` list.

    - `class AccessParametersPublicShareLinkAccessParameters: …`

      Public access: anyone holding the share link ID can read.

      - `access_mode: Literal["public"]`

        - `"public"`

    - `class AccessParametersEmailShareLinkAccessParameters: …`

      Email-restricted access: only the addresses in `allowed_emails` can read the link.

      - `access_mode: Literal["email"]`

        - `"email"`

      - `allowed_emails: List[str]`

        Email addresses allowed to read the link. Must contain at least one address; up to 100 entries.

  - `archived_at: Optional[datetime]`

    When the share link was archived, or null if it has never been archived.

  - `created_at: datetime`

    When the share link was created.

  - `expires_at: datetime`

    When the share link stops granting access.

  - `pipeline_ids: List[str]`

    Pipelines exposed by this share link.

  - `prediction_ids: List[str]`

    Predictions exposed by this share link.

  - `workspace_id: str`

    Workspace that owns the share link and the referenced resources.

  - `url: Optional[str]`

    Visitable share link URL for the deployment's public app. Present when the deployment has a configured app host; otherwise construct as `<your-app-host>/share/{id}`. Treat as a secret — the `{id}` segment is the bearer credential.

### Example

```python
import os
from boltz_api import Boltz

client = Boltz(
    api_key=os.environ.get("BOLTZ_API_KEY"),  # This is the default and can be omitted
)
share_link = client.share_links.create(
    expires_at="expires_at",
)
print(share_link.id)
```

#### Response

```json
{
  "id": "shr_qoEFr2BlPTBLuM5BinaC8x7iVPP_AwppEOmlxQjJ-eo",
  "access_parameters": {
    "access_mode": "public"
  },
  "archived_at": "2019-12-27T18:11:19.117Z",
  "created_at": "2019-12-27T18:11:19.117Z",
  "expires_at": "2019-12-27T18:11:19.117Z",
  "pipeline_ids": [
    "string"
  ],
  "prediction_ids": [
    "string"
  ],
  "workspace_id": "workspace_id",
  "url": "https://lab.boltz.bio/share/shr_qoEFr2BlPTBLuM5BinaC8x7iVPP_AwppEOmlxQjJ-eo"
}
```

## Retrieve a share link

`share_links.retrieve(strid)  -> ShareLinkRetrieveResponse`

**get** `/compute/v1/share-links/{id}`

Retrieve metadata for a share link owned by the authenticated organization. Archived and expired links remain retrievable.

### Parameters

- `id: str`

### Returns

- `class ShareLinkRetrieveResponse: …`

  - `id: str`

    Share link ID. This value is the bearer credential used to access the linked resources — treat it as a secret.

  - `access_parameters: AccessParameters`

    Access-control parameters for the share link. Discriminated by `access_mode`: `public` requires no other fields; `email` requires a non-empty `allowed_emails` list.

    - `class AccessParametersPublicShareLinkAccessParameters: …`

      Public access: anyone holding the share link ID can read.

      - `access_mode: Literal["public"]`

        - `"public"`

    - `class AccessParametersEmailShareLinkAccessParameters: …`

      Email-restricted access: only the addresses in `allowed_emails` can read the link.

      - `access_mode: Literal["email"]`

        - `"email"`

      - `allowed_emails: List[str]`

        Email addresses allowed to read the link. Must contain at least one address; up to 100 entries.

  - `archived_at: Optional[datetime]`

    When the share link was archived, or null if it has never been archived.

  - `created_at: datetime`

    When the share link was created.

  - `expires_at: datetime`

    When the share link stops granting access.

  - `pipeline_ids: List[str]`

    Pipelines exposed by this share link.

  - `prediction_ids: List[str]`

    Predictions exposed by this share link.

  - `workspace_id: str`

    Workspace that owns the share link and the referenced resources.

  - `url: Optional[str]`

    Visitable share link URL for the deployment's public app. Present when the deployment has a configured app host; otherwise construct as `<your-app-host>/share/{id}`. Treat as a secret — the `{id}` segment is the bearer credential.

### Example

```python
import os
from boltz_api import Boltz

client = Boltz(
    api_key=os.environ.get("BOLTZ_API_KEY"),  # This is the default and can be omitted
)
share_link = client.share_links.retrieve(
    "shr_qoEFr2BlPTBLuM5BinaC8x7iVPP_AwppEOmlxQjJ-eo",
)
print(share_link.id)
```

#### Response

```json
{
  "id": "shr_qoEFr2BlPTBLuM5BinaC8x7iVPP_AwppEOmlxQjJ-eo",
  "access_parameters": {
    "access_mode": "public"
  },
  "archived_at": "2019-12-27T18:11:19.117Z",
  "created_at": "2019-12-27T18:11:19.117Z",
  "expires_at": "2019-12-27T18:11:19.117Z",
  "pipeline_ids": [
    "string"
  ],
  "prediction_ids": [
    "string"
  ],
  "workspace_id": "workspace_id",
  "url": "https://lab.boltz.bio/share/shr_qoEFr2BlPTBLuM5BinaC8x7iVPP_AwppEOmlxQjJ-eo"
}
```

## Archive a share link

`share_links.archive(strid)  -> ShareLinkArchiveResponse`

**post** `/compute/v1/share-links/{id}/archive`

Archive a share link so it no longer grants public access. Metadata remains retrievable and repeated calls preserve the first archive timestamp.

### Parameters

- `id: str`

### Returns

- `class ShareLinkArchiveResponse: …`

  - `id: str`

  - `archived: Literal[true]`

    - `true`

  - `archived_at: datetime`

    When the share link was first archived.

### Example

```python
import os
from boltz_api import Boltz

client = Boltz(
    api_key=os.environ.get("BOLTZ_API_KEY"),  # This is the default and can be omitted
)
response = client.share_links.archive(
    "shr_qoEFr2BlPTBLuM5BinaC8x7iVPP_AwppEOmlxQjJ-eo",
)
print(response.id)
```

#### Response

```json
{
  "id": "shr_qoEFr2BlPTBLuM5BinaC8x7iVPP_AwppEOmlxQjJ-eo",
  "archived": true,
  "archived_at": "2019-12-27T18:11:19.117Z"
}
```

## List pipeline results from a share link

`share_links.list_pipeline_results(strpipeline_id, ShareLinkListPipelineResultsParams**kwargs)  -> SyncCursorPage[ShareLinkListPipelineResultsResponse]`

**get** `/compute/v1/share/{id}/pipelines/{pipelineId}/results`

Paginated results for one pipeline exposed by a share link. The response shape matches the authed pipeline-results endpoints exactly. Access is gated by the share-link ID and — for email-mode links — a signed compute-API JWT. Pipeline IDs not covered by the link return 404 indistinguishably from unknown links.

### Parameters

- `id: str`

- `pipeline_id: str`

- `after_id: Optional[str]`

  Return results after this ID

- `before_id: Optional[str]`

  Return results before this ID

- `ids: Optional[str]`

  Comma-separated list of result IDs to filter by (max 200). Only results whose ID matches one of these is returned; missing IDs are silently skipped. Composes with `limit`, `after_id`, and `before_id` — the filter is applied before pagination.

- `limit: Optional[int]`

  Max results to return. Defaults to 100.

### Returns

- `class ShareLinkListPipelineResultsResponse: …`

  A single generated protein design

  - `id: str`

    Unique result ID.

  - `artifacts: Artifacts`

    - `archive: ArtifactsArchive`

      - `url: str`

        URL to download the file

      - `url_expires_at: datetime`

        When the presigned URL expires

    - `structure: Optional[ArtifactsStructure]`

      - `url: str`

        URL to download the file

      - `url_expires_at: datetime`

        When the presigned URL expires

  - `created_at: datetime`

  - `entities: List[Entity]`

    Entities in the designed complex, including designed and fixed input entities.

    - `class EntityProteinEntity: …`

      - `chain_ids: List[str]`

        Chain IDs for this entity

      - `type: Literal["protein"]`

        - `"protein"`

      - `value: str`

        Amino acid sequence (one-letter codes)

      - `cyclic: Optional[bool]`

        Whether the sequence is cyclic

      - `modifications: Optional[List[EntityProteinEntityModification]]`

        CCD post-translational modifications. Optional; defaults to an empty list when omitted. SMILES modifications are not supported.

        - `residue_index: int`

          0-based index of the residue to modify

        - `type: Literal["ccd"]`

          Modification format. Only CCD polymer modifications are supported.

          - `"ccd"`

        - `value: str`

          CCD code from RCSB PDB (e.g. 'MSE' for selenomethionine, 'SEP' for phosphoserine)

    - `class EntityRnaEntity: …`

      - `chain_ids: List[str]`

        Chain IDs for this entity

      - `type: Literal["rna"]`

        - `"rna"`

      - `value: str`

        RNA nucleotide sequence (A, C, G, U, N)

      - `cyclic: Optional[bool]`

        Whether the sequence is cyclic

      - `modifications: Optional[List[EntityRnaEntityModification]]`

        CCD chemical modifications. Optional; defaults to an empty list when omitted. SMILES modifications are not supported.

        - `residue_index: int`

          0-based index of the residue to modify

        - `type: Literal["ccd"]`

          Modification format. Only CCD polymer modifications are supported.

          - `"ccd"`

        - `value: str`

          CCD code from RCSB PDB (e.g. 'MSE' for selenomethionine, 'SEP' for phosphoserine)

    - `class EntityDnaEntity: …`

      - `chain_ids: List[str]`

        Chain IDs for this entity

      - `type: Literal["dna"]`

        - `"dna"`

      - `value: str`

        DNA nucleotide sequence (A, C, G, T, N)

      - `cyclic: Optional[bool]`

        Whether the sequence is cyclic

      - `modifications: Optional[List[EntityDnaEntityModification]]`

        CCD chemical modifications. Optional; defaults to an empty list when omitted. SMILES modifications are not supported.

        - `residue_index: int`

          0-based index of the residue to modify

        - `type: Literal["ccd"]`

          Modification format. Only CCD polymer modifications are supported.

          - `"ccd"`

        - `value: str`

          CCD code from RCSB PDB (e.g. 'MSE' for selenomethionine, 'SEP' for phosphoserine)

    - `class EntityLigandCcdEntity: …`

      - `chain_ids: List[str]`

        Chain IDs for this ligand

      - `type: Literal["ligand_ccd"]`

        - `"ligand_ccd"`

      - `value: str`

        CCD code (e.g., ATP, ADP)

    - `class EntityLigandSmilesEntity: …`

      - `chain_ids: List[str]`

        Chain IDs for this ligand

      - `type: Literal["ligand_smiles"]`

        - `"ligand_smiles"`

      - `value: str`

        SMILES string representing the ligand

  - `metrics: Metrics`

    Structural and binding quality metrics for a designed protein binder

    - `binding_confidence: float`

      Confidence that the designed binder binds the target (0-1). Primary metric for hit discovery.

    - `helix_fraction: float`

      Fraction of the designed sequence forming alpha helices (0-1).

    - `iptm: float`

      Interface predicted TM score (0-1). Confidence in the protein-protein interface.

    - `loop_fraction: float`

      Fraction of the designed sequence in coil/loop regions (0-1).

    - `min_interaction_pae: float`

      Minimum predicted aligned error at the interface (Angstroms). Lower values indicate higher confidence.

    - `sheet_fraction: float`

      Fraction of the designed sequence forming beta sheets (0-1).

    - `structure_confidence: float`

      Confidence in the predicted 3D structure (0-1).

  - `warnings: Optional[List[Warning]]`

    Warnings about potential quality issues with this result.

    - `code: str`

      Machine-readable warning code (e.g. "low_confidence", "unusual_geometry")

    - `message: str`

      Human-readable description of the warning

### Example

```python
import os
from boltz_api import Boltz

client = Boltz(
    api_key=os.environ.get("BOLTZ_API_KEY"),  # This is the default and can be omitted
)
page = client.share_links.list_pipeline_results(
    pipeline_id="pipelineId",
    id="id",
)
page = page.data[0]
print(page.id)
```

#### Response

```json
{
  "data": [
    {
      "id": "id",
      "artifacts": {
        "archive": {
          "url": "https://example.com",
          "url_expires_at": "2019-12-27T18:11:19.117Z"
        },
        "structure": {
          "url": "https://example.com",
          "url_expires_at": "2019-12-27T18:11:19.117Z"
        }
      },
      "created_at": "2019-12-27T18:11:19.117Z",
      "entities": [
        {
          "chain_ids": [
            "string"
          ],
          "type": "protein",
          "value": "value",
          "cyclic": true,
          "modifications": [
            {
              "residue_index": 0,
              "type": "ccd",
              "value": "value"
            }
          ]
        }
      ],
      "metrics": {
        "binding_confidence": 0,
        "helix_fraction": 0,
        "iptm": 0,
        "loop_fraction": 0,
        "min_interaction_pae": 0,
        "sheet_fraction": 0,
        "structure_confidence": 0
      },
      "warnings": [
        {
          "code": "code",
          "message": "message"
        }
      ]
    }
  ],
  "first_id": "first_id",
  "has_more": true,
  "last_id": "last_id"
}
```

## Domain Types

### Share Link Create Response

- `class ShareLinkCreateResponse: …`

  - `id: str`

    Share link ID. This value is the bearer credential used to access the linked resources — treat it as a secret.

  - `access_parameters: AccessParameters`

    Access-control parameters for the share link. Discriminated by `access_mode`: `public` requires no other fields; `email` requires a non-empty `allowed_emails` list.

    - `class AccessParametersPublicShareLinkAccessParameters: …`

      Public access: anyone holding the share link ID can read.

      - `access_mode: Literal["public"]`

        - `"public"`

    - `class AccessParametersEmailShareLinkAccessParameters: …`

      Email-restricted access: only the addresses in `allowed_emails` can read the link.

      - `access_mode: Literal["email"]`

        - `"email"`

      - `allowed_emails: List[str]`

        Email addresses allowed to read the link. Must contain at least one address; up to 100 entries.

  - `archived_at: Optional[datetime]`

    When the share link was archived, or null if it has never been archived.

  - `created_at: datetime`

    When the share link was created.

  - `expires_at: datetime`

    When the share link stops granting access.

  - `pipeline_ids: List[str]`

    Pipelines exposed by this share link.

  - `prediction_ids: List[str]`

    Predictions exposed by this share link.

  - `workspace_id: str`

    Workspace that owns the share link and the referenced resources.

  - `url: Optional[str]`

    Visitable share link URL for the deployment's public app. Present when the deployment has a configured app host; otherwise construct as `<your-app-host>/share/{id}`. Treat as a secret — the `{id}` segment is the bearer credential.

### Share Link Retrieve Response

- `class ShareLinkRetrieveResponse: …`

  - `id: str`

    Share link ID. This value is the bearer credential used to access the linked resources — treat it as a secret.

  - `access_parameters: AccessParameters`

    Access-control parameters for the share link. Discriminated by `access_mode`: `public` requires no other fields; `email` requires a non-empty `allowed_emails` list.

    - `class AccessParametersPublicShareLinkAccessParameters: …`

      Public access: anyone holding the share link ID can read.

      - `access_mode: Literal["public"]`

        - `"public"`

    - `class AccessParametersEmailShareLinkAccessParameters: …`

      Email-restricted access: only the addresses in `allowed_emails` can read the link.

      - `access_mode: Literal["email"]`

        - `"email"`

      - `allowed_emails: List[str]`

        Email addresses allowed to read the link. Must contain at least one address; up to 100 entries.

  - `archived_at: Optional[datetime]`

    When the share link was archived, or null if it has never been archived.

  - `created_at: datetime`

    When the share link was created.

  - `expires_at: datetime`

    When the share link stops granting access.

  - `pipeline_ids: List[str]`

    Pipelines exposed by this share link.

  - `prediction_ids: List[str]`

    Predictions exposed by this share link.

  - `workspace_id: str`

    Workspace that owns the share link and the referenced resources.

  - `url: Optional[str]`

    Visitable share link URL for the deployment's public app. Present when the deployment has a configured app host; otherwise construct as `<your-app-host>/share/{id}`. Treat as a secret — the `{id}` segment is the bearer credential.

### Share Link Archive Response

- `class ShareLinkArchiveResponse: …`

  - `id: str`

  - `archived: Literal[true]`

    - `true`

  - `archived_at: datetime`

    When the share link was first archived.

### Share Link List Pipeline Results Response

- `class ShareLinkListPipelineResultsResponse: …`

  A single generated protein design

  - `id: str`

    Unique result ID.

  - `artifacts: Artifacts`

    - `archive: ArtifactsArchive`

      - `url: str`

        URL to download the file

      - `url_expires_at: datetime`

        When the presigned URL expires

    - `structure: Optional[ArtifactsStructure]`

      - `url: str`

        URL to download the file

      - `url_expires_at: datetime`

        When the presigned URL expires

  - `created_at: datetime`

  - `entities: List[Entity]`

    Entities in the designed complex, including designed and fixed input entities.

    - `class EntityProteinEntity: …`

      - `chain_ids: List[str]`

        Chain IDs for this entity

      - `type: Literal["protein"]`

        - `"protein"`

      - `value: str`

        Amino acid sequence (one-letter codes)

      - `cyclic: Optional[bool]`

        Whether the sequence is cyclic

      - `modifications: Optional[List[EntityProteinEntityModification]]`

        CCD post-translational modifications. Optional; defaults to an empty list when omitted. SMILES modifications are not supported.

        - `residue_index: int`

          0-based index of the residue to modify

        - `type: Literal["ccd"]`

          Modification format. Only CCD polymer modifications are supported.

          - `"ccd"`

        - `value: str`

          CCD code from RCSB PDB (e.g. 'MSE' for selenomethionine, 'SEP' for phosphoserine)

    - `class EntityRnaEntity: …`

      - `chain_ids: List[str]`

        Chain IDs for this entity

      - `type: Literal["rna"]`

        - `"rna"`

      - `value: str`

        RNA nucleotide sequence (A, C, G, U, N)

      - `cyclic: Optional[bool]`

        Whether the sequence is cyclic

      - `modifications: Optional[List[EntityRnaEntityModification]]`

        CCD chemical modifications. Optional; defaults to an empty list when omitted. SMILES modifications are not supported.

        - `residue_index: int`

          0-based index of the residue to modify

        - `type: Literal["ccd"]`

          Modification format. Only CCD polymer modifications are supported.

          - `"ccd"`

        - `value: str`

          CCD code from RCSB PDB (e.g. 'MSE' for selenomethionine, 'SEP' for phosphoserine)

    - `class EntityDnaEntity: …`

      - `chain_ids: List[str]`

        Chain IDs for this entity

      - `type: Literal["dna"]`

        - `"dna"`

      - `value: str`

        DNA nucleotide sequence (A, C, G, T, N)

      - `cyclic: Optional[bool]`

        Whether the sequence is cyclic

      - `modifications: Optional[List[EntityDnaEntityModification]]`

        CCD chemical modifications. Optional; defaults to an empty list when omitted. SMILES modifications are not supported.

        - `residue_index: int`

          0-based index of the residue to modify

        - `type: Literal["ccd"]`

          Modification format. Only CCD polymer modifications are supported.

          - `"ccd"`

        - `value: str`

          CCD code from RCSB PDB (e.g. 'MSE' for selenomethionine, 'SEP' for phosphoserine)

    - `class EntityLigandCcdEntity: …`

      - `chain_ids: List[str]`

        Chain IDs for this ligand

      - `type: Literal["ligand_ccd"]`

        - `"ligand_ccd"`

      - `value: str`

        CCD code (e.g., ATP, ADP)

    - `class EntityLigandSmilesEntity: …`

      - `chain_ids: List[str]`

        Chain IDs for this ligand

      - `type: Literal["ligand_smiles"]`

        - `"ligand_smiles"`

      - `value: str`

        SMILES string representing the ligand

  - `metrics: Metrics`

    Structural and binding quality metrics for a designed protein binder

    - `binding_confidence: float`

      Confidence that the designed binder binds the target (0-1). Primary metric for hit discovery.

    - `helix_fraction: float`

      Fraction of the designed sequence forming alpha helices (0-1).

    - `iptm: float`

      Interface predicted TM score (0-1). Confidence in the protein-protein interface.

    - `loop_fraction: float`

      Fraction of the designed sequence in coil/loop regions (0-1).

    - `min_interaction_pae: float`

      Minimum predicted aligned error at the interface (Angstroms). Lower values indicate higher confidence.

    - `sheet_fraction: float`

      Fraction of the designed sequence forming beta sheets (0-1).

    - `structure_confidence: float`

      Confidence in the predicted 3D structure (0-1).

  - `warnings: Optional[List[Warning]]`

    Warnings about potential quality issues with this result.

    - `code: str`

      Machine-readable warning code (e.g. "low_confidence", "unusual_geometry")

    - `message: str`

      Human-readable description of the warning
