# Summarize Brendan’s public movie and TV recommendations

Returns complete-corpus counts, type, genre, release-decade, and director distributions with coverage plus deterministic illustrative examples. Examples are not a statistical sample. A public miss or absence does not establish private viewing or save history.

Operation: summarizeTasteCollection
GET /api/taste/summary.json

Access: anonymous. Automatic retries: none. Redirects: manual. Request body limit: 0 bytes.
Default timeout: 30 seconds. Response limit: 16 MiB. Pagination is opt-in and bounded; an exhausted bound reports incomplete execution.

[HTML reference](/developers/api/summarizeTasteCollection) · [Authoritative schemas](/api/openapi.json)

## Wire contract

```json
{
  "operationId": "summarizeTasteCollection",
  "summary": "Summarize Brendan’s public movie and TV recommendations",
  "description": "Returns complete-corpus counts, type, genre, release-decade, and director distributions with coverage plus deterministic illustrative examples. Examples are not a statistical sample. A public miss or absence does not establish private viewing or save history.",
  "tags": [
    "taste-summary"
  ],
  "parameters": [
    {
      "name": "API-Version",
      "in": "header",
      "required": false,
      "description": "Header-based API version selection. Omit it, send an empty value, or send 1.0.0; surrounding whitespace is ignored.",
      "schema": {
        "type": "string",
        "pattern": "^[ \\t]*(1\\.0\\.0)?[ \\t]*$",
        "default": "1.0.0"
      }
    },
    {
      "name": "Idempotency-Key",
      "in": "header",
      "required": false,
      "description": "Accepted for clients that attach a key uniformly. GET, HEAD, and OPTIONS are already safe and intrinsically idempotent, so read responses are not stored in an idempotency replay cache.",
      "schema": {
        "type": "string"
      }
    },
    {
      "name": "collection",
      "in": "query",
      "required": true,
      "description": "Approved public collection to summarize. Version 1 supports movies only.",
      "schema": {
        "type": "string",
        "enum": [
          "movies"
        ]
      },
      "example": "movies"
    },
    {
      "name": "exampleLimit",
      "in": "query",
      "required": false,
      "description": "Number of deterministic illustrative examples.",
      "schema": {
        "type": "integer",
        "minimum": 3,
        "maximum": 8,
        "default": 6
      }
    }
  ],
  "x-idempotency": "intrinsic-safe-method",
  "responses": {
    "200": {
      "description": "Complete public movie recommendation summary",
      "headers": {
        "Content-Usage": {
          "description": "IETF AIPREF usage preferences for this public content",
          "schema": {
            "type": "string",
            "examples": [
              "train-ai=y, search=y"
            ]
          }
        },
        "Content-Signal": {
          "description": "Compatibility AI usage preferences for deployed crawlers",
          "schema": {
            "type": "string",
            "examples": [
              "ai-train=yes, search=yes, ai-input=yes"
            ]
          }
        },
        "API-Version": {
          "description": "Selected public REST contract version",
          "schema": {
            "type": "string",
            "enum": [
              "1.0.0"
            ]
          }
        },
        "RateLimit-Policy": {
          "description": "Public REST quota policy: 1000 Worker requests per 60 seconds for each source and Cloudflare location",
          "schema": {
            "type": "string"
          }
        },
        "RateLimit-Limit": {
          "description": "Compatibility form of the current public REST request limit",
          "schema": {
            "type": "integer",
            "enum": [
              1000
            ]
          }
        },
        "ETag": {
          "description": "Entity tag for conditional requests",
          "schema": {
            "type": "string"
          }
        },
        "Last-Modified": {
          "description": "Last modification date (HTTP IMF-fixdate)",
          "schema": {
            "type": "string",
            "pattern": "^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$",
            "examples": [
              "Sun, 06 Sep 2026 17:40:13 GMT"
            ]
          }
        },
        "Cache-Control": {
          "description": "Caching directives",
          "schema": {
            "type": "string"
          }
        },
        "X-Total-Count": {
          "description": "Total number of items",
          "schema": {
            "type": "integer"
          }
        },
        "Link": {
          "description": "RFC 8288 Web Linking header with pagination links",
          "schema": {
            "type": "string"
          }
        },
        "Link-Template": {
          "description": "RFC 9652 Link-Template header with query parameter templates",
          "schema": {
            "type": "string"
          }
        },
        "Deprecation": {
          "description": "RFC 9745 lifecycle deprecation signal",
          "schema": {
            "type": "string"
          }
        },
        "Sunset": {
          "description": "RFC 8594 lifecycle sunset date (HTTP IMF-fixdate)",
          "schema": {
            "type": "string",
            "pattern": "^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$",
            "examples": [
              "Sun, 06 Sep 2026 17:40:13 GMT"
            ]
          }
        }
      },
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/TasteCollectionSummaryV1"
          },
          "example": {
            "schemaVersion": 1,
            "outcome": "ok",
            "summary": "Summarized 320 public movie and TV recommendations and returned 1 illustrative example. Overall claims should use the distributions; the examples are not a statistical sample.",
            "scope": {
              "visibility": "public",
              "corpusId": "public-movie-recommendations",
              "label": "Brendan’s public movie and TV recommendations",
              "definition": "Public, non-deleted movie records explicitly marked recommended.",
              "inclusionRules": [
                "The canonical collection is movies.",
                "The publication state is public.",
                "The preference state is recommended.",
                "The record has not been deleted."
              ],
              "exclusionMeaning": "Absence does not establish whether Brendan has seen, saved, or privately recorded an item elsewhere.",
              "canonicalUrl": "https://irvinebroque.com/movies"
            },
            "counts": {
              "returnedCount": 1,
              "collectionCount": 320
            },
            "coverage": {
              "dataAsOf": "2026-08-30T00:00:00.000Z",
              "dimensions": [
                {
                  "dimension": "type",
                  "eligibleCount": 320,
                  "populatedCount": 320,
                  "missingCount": 0
                },
                {
                  "dimension": "genre",
                  "eligibleCount": 320,
                  "populatedCount": 318,
                  "missingCount": 2
                },
                {
                  "dimension": "releaseDecade",
                  "eligibleCount": 320,
                  "populatedCount": 319,
                  "missingCount": 1
                },
                {
                  "dimension": "director",
                  "eligibleCount": 320,
                  "populatedCount": 310,
                  "missingCount": 10
                }
              ]
            },
            "distributions": [
              {
                "dimension": "genre",
                "label": "Most represented genres",
                "multiValue": true,
                "denominator": "eligible_records",
                "denominatorCount": 320,
                "values": [
                  {
                    "value": "drama",
                    "label": "Drama",
                    "count": 201,
                    "shareOfEligible": 0.628125
                  }
                ]
              }
            ],
            "examples": [
              {
                "canonicalId": "itm_0123456789abcdef01234567",
                "collection": "movies",
                "title": "Example title",
                "canonicalUrl": "https://irvinebroque.com/movies/example-title",
                "description": "Movie · 2024 · Drama",
                "evidence": [
                  "Illustrates the drama genre distribution."
                ],
                "evidenceDetails": [
                  {
                    "code": "summary.genre-example",
                    "text": "Illustrates the drama genre distribution.",
                    "fields": [
                      "genres"
                    ]
                  }
                ],
                "data": {
                  "canonicalId": "itm_0123456789abcdef01234567",
                  "title": "Example title",
                  "type": "movie"
                }
              }
            ],
            "selection": {
              "task": "summarize",
              "method": "deterministic-illustrative-v1",
              "role": "illustrative",
              "supportsPopulationClaims": false,
              "explanation": "Examples are selected deterministically to illustrate leading dimensions. Population claims must use the complete-corpus distributions."
            },
            "generatedAt": "2026-08-30T12:00:00.000Z",
            "renderInput": {
              "canonicalIds": [
                "itm_0123456789abcdef01234567"
              ]
            }
          }
        }
      }
    },
    "304": {
      "description": "Not Modified"
    },
    "400": {
      "description": "Unsupported collection or invalid example limit",
      "content": {
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/ProblemDetails"
          }
        }
      }
    },
    "429": {
      "description": "Public REST request limit exceeded",
      "headers": {
        "Retry-After": {
          "description": "Seconds before the request should be retried",
          "schema": {
            "type": "integer",
            "enum": [
              60
            ]
          }
        },
        "RateLimit": {
          "description": "Current quota state for the exhausted public-rest policy",
          "schema": {
            "type": "string"
          }
        },
        "Content-Usage": {
          "description": "IETF AIPREF usage preferences for this public content",
          "schema": {
            "type": "string",
            "examples": [
              "train-ai=y, search=y"
            ]
          }
        },
        "Content-Signal": {
          "description": "Compatibility AI usage preferences for deployed crawlers",
          "schema": {
            "type": "string",
            "examples": [
              "ai-train=yes, search=yes, ai-input=yes"
            ]
          }
        },
        "API-Version": {
          "description": "Selected public REST contract version",
          "schema": {
            "type": "string",
            "enum": [
              "1.0.0"
            ]
          }
        },
        "RateLimit-Policy": {
          "description": "Public REST quota policy: 1000 Worker requests per 60 seconds for each source and Cloudflare location",
          "schema": {
            "type": "string"
          }
        },
        "RateLimit-Limit": {
          "description": "Compatibility form of the current public REST request limit",
          "schema": {
            "type": "integer",
            "enum": [
              1000
            ]
          }
        }
      },
      "content": {
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/ProblemDetails"
          }
        }
      }
    },
    "503": {
      "description": "Summary service unavailable",
      "content": {
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/ProblemDetails"
          }
        }
      }
    }
  }
}
```

## Synthetic examples

### curl

```bash
curl --fail-with-body --max-time 30 --max-filesize 16777216 --request GET 'https://irvinebroque.com/api/taste/summary.json?collection=movies' --header 'Accept: application/json'
```

### TypeScript

```typescript
import { PublicApi } from '@irvinebroque/public-api';
const api = new PublicApi();
const result = await api.taste.summary({
  "collection": "movies"
});
console.log(result.status, result.headers.get('content-type')); // Keep transient capabilities in memory.
```

### CLI

```bash
irvinebroque taste summary --collection 'movies'
```
