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

# List your iBlueprint blueprints with filters

> Retrieve a paginated list of iBlueprint blueprints owned by the authenticated user, with optional filtering by status or full-text search across title and description.

The `blueprint.list` procedure returns blueprints created by the authenticated user. Results include basic rating data and are ordered by creation date. Use the `status` and `search` filters to narrow results, and use `page` and `limit` to paginate through large libraries.

## Request

**Procedure type:** query (HTTP `GET`)

**Endpoint:**

```
GET https://api.iblueprint.ai/api/trpc/blueprint.list
```

### Parameters

<ParamField query="input" type="object" required>
  A URL-encoded JSON object with a `json` key containing the parameters below.
</ParamField>

<ParamField query="json.page" type="number">
  Page number to retrieve. Must be `1` or higher. Defaults to `1`.
</ParamField>

<ParamField query="json.limit" type="number">
  Number of blueprints per page. Must be between `1` and `100`. Defaults to `20`.
</ParamField>

<ParamField query="json.status" type="string">
  Filter by blueprint status. Accepted values: `draft`, `published`.
</ParamField>

<ParamField query="json.search" type="string">
  Case-insensitive substring search across `title` and `description`.
</ParamField>

## Response

<ResponseField name="data" type="array">
  Array of Blueprint objects owned by the authenticated user.

  <Expandable title="Blueprint object fields">
    <ResponseField name="id" type="string">UUID of the blueprint.</ResponseField>
    <ResponseField name="title" type="string">Display name of the blueprint.</ResponseField>
    <ResponseField name="description" type="string">Short description.</ResponseField>
    <ResponseField name="status" type="string">`draft` or `published`.</ResponseField>
    <ResponseField name="visibility" type="string">`private` or `public`.</ResponseField>
    <ResponseField name="version" type="string">Semantic version string, e.g. `1.0.0`.</ResponseField>
    <ResponseField name="tags" type="array">Array of tag strings.</ResponseField>
    <ResponseField name="created_by" type="string">UUID of the owning user.</ResponseField>
    <ResponseField name="organization_id" type="string">UUID of the owning organization.</ResponseField>
    <ResponseField name="created_at" type="string">ISO 8601 timestamp.</ResponseField>
    <ResponseField name="updated_at" type="string">ISO 8601 timestamp.</ResponseField>
    <ResponseField name="average_rating" type="number">Average star rating (0–5). `0` if no ratings yet.</ResponseField>
    <ResponseField name="rating_count" type="number">Total number of ratings.</ResponseField>
    <ResponseField name="user_rating" type="number">The authenticated user's own rating, if they have rated this blueprint.</ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="pagination" type="object">
  Pagination metadata.

  <Expandable title="Pagination fields">
    <ResponseField name="page" type="number">Current page number.</ResponseField>
    <ResponseField name="limit" type="number">Items per page.</ResponseField>
    <ResponseField name="total" type="number">Total number of matching blueprints.</ResponseField>
    <ResponseField name="totalPages" type="number">Total number of pages.</ResponseField>
  </Expandable>
</ResponseField>

## Examples

<CodeGroup>
  ```bash curl theme={null}
  curl -G "https://api.iblueprint.ai/api/trpc/blueprint.list" \
    --data-urlencode 'input={"json":{"page":1,"limit":20,"status":"published","search":"data pipeline"}}' \
    -H "Authorization: Bearer YOUR_API_KEY"
  ```

  ```javascript JavaScript theme={null}
  const params = new URLSearchParams({
    input: JSON.stringify({
      json: { page: 1, limit: 20, status: 'published', search: 'data pipeline' },
    }),
  });

  const response = await fetch(
    `https://api.iblueprint.ai/api/trpc/blueprint.list?${params}`,
    { headers: { Authorization: 'Bearer YOUR_API_KEY' } }
  );

  const { result } = await response.json();
  const { data, pagination } = result.data.json;
  ```
</CodeGroup>

### Sample response

```json theme={null}
{
  "result": {
    "data": {
      "json": {
        "data": [
          {
            "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "title": "Data Pipeline Automation",
            "description": "Pulls from S3, transforms rows, and writes to BigQuery.",
            "status": "published",
            "visibility": "private",
            "version": "1.2.0",
            "tags": ["data", "etl"],
            "created_by": "user-uuid",
            "organization_id": "org-uuid",
            "created_at": "2024-11-01T09:00:00Z",
            "updated_at": "2024-11-15T14:22:00Z",
            "average_rating": 4.5,
            "rating_count": 12,
            "user_rating": 5
          }
        ],
        "pagination": {
          "page": 1,
          "limit": 20,
          "total": 1,
          "totalPages": 1
        }
      }
    }
  }
}
```
