---
title: "Resolve Link Slug"
method: GET
path: "/api/v1/resolve/l/{slug}"
tags: ["resolve"]
---

# Resolve Link Slug

`GET /api/v1/resolve/l/{slug}`

## Request

- Base URL: `https://api.gnosari.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.gnosari.com/api/v1/resolve/l/{slug}`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-AUTH-TOKEN`

Resolve an agent-link slug to its public presentation payload.

**Public endpoint -- no authentication required.**

Returns the ``LinkResolveResponse`` the embed page renders directly:
agent public data, ``presentation``, ``topic``, a server-resolved
``greeting``, and the effective theme. Atomically increments the link's
visit counter (sole increment site).

Raises:
    404: Unknown slug (anti-enumeration).
    410: Link expired, or its agent was deleted.
    422: Malformed slug (boundary guard, before any DB lookup).

## Path parameters

- `slug` string, required

## Response `200`

Successful Response

- LinkResolveResponse: Public resolve payload for ``GET /resolve/l/{slug}``. Distinct from ``AgentLinkRead`` (the authed/MCP CRUD shape) and from the legacy ``QrResolveResponse``. The embed page (Phase 8) consumes this shape verbatim so it needs NO agent-config lookup of its own: ``greeting`` is resolved server-side (``link.greeting`` else the agent's ``chat_ui`` greeting) and ``theme`` carries the post-3-tier effective branding.
  - `available` boolean, required
  - `agent` LinkResolveAgent: Public-safe agent data carried on a resolve response. Only the fields a renderer needs — no private agent config ever leaks.
    - `uri` string, nullable
    - `name` string, nullable
    - `avatar` string, nullable
  - `presentation` string, required
  - `topic` string, nullable
  - `caption` string, nullable
  - `greeting` string, nullable
  - `theme` ChatThemeMinimal: Minimal schema for embedding in agent responses. Contains only essential fields to avoid circular references.
    - `id` integer, required
    - `name` string, required
    - `identifier` string, nullable
    - `configuration` object

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/gnosari/apis/gnosari-api.md) · [All operations](https://skmtc.dev/gnosari/apis/gnosari-api/llms.txt) · [OpenAPI document](https://skmtc.dev/gnosari/apis/gnosari-api/revisions/f299cf53ae5f?raw)
