# com.emdashcms.experimental.aggregator.resolvePackage

> Published by [emdashcms.com](https://lexicon.garden/identity/did:plc:ilznslhspsvk6naatedr66pi)

✓ This is the authoritative definition for this NSID.

## Description

Resolve a (handle, slug) pair to its canonical (did, slug) identity and return the package view. EXPERIMENTAL.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:ilznslhspsvk6naatedr66pi/com.emdashcms.experimental.aggregator.resolvePackage)
- [Documentation](https://lexicon.garden/lexicon/did:plc:ilznslhspsvk6naatedr66pi/com.emdashcms.experimental.aggregator.resolvePackage/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:ilznslhspsvk6naatedr66pi/com.emdashcms.experimental.aggregator.resolvePackage/examples)

## Definitions

### `com.emdashcms.experimental.aggregator.resolvePackage`

**Type**: `query`

Convenience endpoint that combines bidirectionally verified handle-to-DID resolution with a package lookup. Useful when the user-facing identifier is `@example.dev/gallery-plugin` rather than a DID. The aggregator maintains a short-lived handle projection and refreshes stale identities in the background.

#### Parameters

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `handle` | `string` (handle) | Yes | Publisher's handle (e.g. 'example.dev'). |
| `slug` | `string` | Yes | Package slug. |

#### Output

**Encoding**: `application/json`

#### Errors

- **HandleNotFound**: The handle could not be resolved to a DID.
- **NotFound**: No package indexed under the resolved (did, slug).
- **ListingUnavailable**: The resolved package is indexed but has no profile revision available under the aggregator's listing policy. No publisher-controlled content is returned.

## Raw Schema

```json
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "Convenience endpoint that combines bidirectionally verified handle-to-DID resolution with a package lookup. Useful when the user-facing identifier is `@example.dev/gallery-plugin` rather than a DID. The aggregator maintains a short-lived handle projection and refreshes stale identities in the background.",
      "errors": [
        {
          "description": "The handle could not be resolved to a DID.",
          "name": "HandleNotFound"
        },
        {
          "description": "No package indexed under the resolved (did, slug).",
          "name": "NotFound"
        },
        {
          "description": "The resolved package is indexed but has no profile revision available under the aggregator's listing policy. No publisher-controlled content is returned.",
          "name": "ListingUnavailable"
        }
      ],
      "output": {
        "encoding": "application/json",
        "schema": {
          "ref": "com.emdashcms.experimental.aggregator.defs#packageView",
          "type": "ref"
        }
      },
      "parameters": {
        "properties": {
          "handle": {
            "description": "Publisher's handle (e.g. 'example.dev').",
            "format": "handle",
            "type": "string"
          },
          "slug": {
            "description": "Package slug.",
            "maxLength": 64,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "handle",
          "slug"
        ],
        "type": "params"
      },
      "type": "query"
    }
  },
  "description": "Resolve a (handle, slug) pair to its canonical (did, slug) identity and return the package view. EXPERIMENTAL.",
  "id": "com.emdashcms.experimental.aggregator.resolvePackage",
  "lexicon": 1
}
```
