# Alpha features

Some parts of the Archive API ship behind an **alpha** flag while we refine them. Alpha surfaces are hidden by default and opt-in per request. This page describes how the alpha program works; it doesn’t document the alpha surfaces themselves.

> **No stability contract**
>
> Alpha surfaces can change shape or disappear at any time, without notice and without a deprecation window. Don’t build production dependencies on them.

## Opting in

You opt into alpha surfaces per request with the `X-Archive-Alpha-Features` header. Its value is a comma-separated list of feature keys:

```http
X-Archive-Alpha-Features: feature_one, feature_two
```

The header is parsed leniently: whitespace around each key is trimmed, keys are matched case-insensitively, and duplicates are collapsed. Unrecognized keys are ignored and never cause an error.

## Hidden by default

If you haven’t opted into a given alpha feature, its surfaces don’t exist for your request. They are hidden from both introspection and execution: introspecting the schema won’t reveal them, and referencing one in a query returns the ordinary GraphQL error `Field 'X' doesn't exist on type 'Y'`, exactly as if the field had never been defined. There is no partial visibility. A surface is either fully available to an opted-in request or entirely absent.

## Getting access

Alpha access is granted per feature. To try a feature in alpha, contact your Archive account team. They’ll give you the feature key to send and documentation for the surface. Because alpha surfaces carry no stability contract, they are intentionally left out of this reference.
