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

# Packages

> Query published component packages

## List Packages

Fetch a paginated list of published packages.

```graphql theme={null}
query GetPackages($cursor: String, $limit: Int) {
  packages(cursor: $cursor, limit: $limit) {
    data {
      id
      version
      createdAt
    }
    pagination {
      cursor
      hasMore
      limit
    }
  }
}
```

### Parameters

| Parameter | Type   | Default | Description           |
| --------- | ------ | ------- | --------------------- |
| `cursor`  | String | null    | Cursor for pagination |
| `limit`   | Int    | 20      | Items per page        |

### Example

```graphql theme={null}
query {
  packages(limit: 10) {
    data {
      id
      version
      createdAt
    }
    pagination {
      cursor
      hasMore
    }
  }
}
```

Response:

```json theme={null}
{
  "data": {
    "packages": {
      "data": [
        {
          "id": "pkg123",
          "version": "2.1.0",
          "createdAt": "2024-01-15T10:30:00Z"
        },
        {
          "id": "pkg122",
          "version": "2.0.0",
          "createdAt": "2024-01-10T14:20:00Z"
        }
      ],
      "pagination": {
        "cursor": "eyJsYXN0SWQiOiJwa2cxMjIiLCJsYXN0VXBkYXRlZEF0IjoiMjAyNC0wMS0xMFQxNDoyMDowMFoifQ==",
        "hasMore": true
      }
    }
  }
}
```

## Get Package by Version

Fetch a specific package by semantic version.

```graphql theme={null}
query GetPackage($version: String!) {
  package(version: $version) {
    id
    version
    components {
      id
      name
      compiled
    }
    assets {
      id
      name
      url
    }
    dependencies {
      projectId
      version
    }
    compiled
    resolved {
      package {
        version
        components
        assets
      }
      dependencies {
        version
        components
        assets
      }
    }
  }
}
```

### Parameters

| Parameter | Type    | Required | Description                      |
| --------- | ------- | -------- | -------------------------------- |
| `version` | String! | Yes      | Semantic version (e.g., "1.0.0") |

### Example

```graphql theme={null}
query {
  package(version: "1.0.0") {
    id
    version
    components {
      id
      name
    }
    resolved {
      package {
        version
        components
      }
    }
  }
}
```

Response:

```json theme={null}
{
  "data": {
    "package": {
      "id": "pkg100",
      "version": "1.0.0",
      "components": [
        {
          "id": "comp123",
          "name": "ProductCard"
        },
        {
          "id": "comp124",
          "name": "ArticleLayout"
        }
      ],
      "resolved": {
        "package": {
          "version": "1.0.0",
          "components": "{\"ProductCard\":\"const body = ...\",\"ArticleLayout\":\"const body = ...\"}"
        }
      }
    }
  }
}
```

## Package Fields

| Field          | Type                   | Description                        |
| -------------- | ---------------------- | ---------------------------------- |
| `id`           | ID!                    | Unique identifier                  |
| `projectId`    | ID!                    | Project ID                         |
| `version`      | String!                | Semantic version                   |
| `components`   | \[Component!]!         | Components in package              |
| `assets`       | \[Asset!]!             | Assets bundled with package        |
| `dependencies` | \[PackageDependency!]! | External package dependencies      |
| `compiled`     | String!                | Compiled package bundle            |
| `resolved`     | ResolvedPackage!       | Fully resolved package data        |
| `resolvedRef`  | ResolvedPackageRef!    | Package IDs for normalized caching |
| `createdAt`    | DateTime!              | Publication timestamp              |

## Resolved Package Data

Use `resolved` to get all package data in a single request, or use [resolvedPackageData](/graphql/queries/package-data) for normalized caching.

```graphql theme={null}
query {
  package(version: "1.0.0") {
    resolved {
      package {
        id
        version
        components
        assets
      }
      dependencies {
        id
        version
        components
        assets
      }
    }
  }
}
```
