---
title: "Attest one existing publisher resource read selector"
method: POST
path: "/consumer/artifact-content/{sourceId}/publisher-read-proof"
tags: ["artifacts"]
---

# Attest one existing publisher resource read selector

`POST /consumer/artifact-content/{sourceId}/publisher-read-proof`

## Request

- Base URL: `https://api.agentsky.dev/v1`
- URL: `https://api.agentsky.dev/v1/consumer/artifact-content/{sourceId}/publisher-read-proof`
- Auth: HTTP bearer

Existing asp_ issuer only; exact target/source/epoch and metadata-or-original selector digest/deterministic UUID. Read-only provenance, no operation persistence, canonical discovery, owner/policy/public/share/comments or general user edit capability. Not a new end-user action.

## Path parameters

- `sourceId` string, required

## Request body

- object
  - `target_id` string, required
  - `request_id` string, uuid, required
  - `source_epoch` integer, required
  - `selector_digest` string, required
  - `kind` 'metadata' | 'original', required
  - `version` integer, nullable, required

## Response `200`

Exact lifecycle receipt; private, no-store

- unknown

## Other responses

- `default`: Error { error: { code, message } }; changed facts are 409, unavailable recovery retains fences and capacity

## Changes

- **2026-11-02** `e5e8f0229a99`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/agentsky/apis/agentsky-developer-api/changes/consumer/artifact-content/:sourceId/publisher-read-proof/post.md)

---

[API](https://skmtc.dev/agentsky/apis/agentsky-developer-api.md) - [All operations](https://skmtc.dev/agentsky/apis/agentsky-developer-api/llms.txt) - [OpenAPI document](https://skmtc.dev/agentsky/apis/agentsky-developer-api/revisions/0d435187cd55?raw)
