---
title: "Attest one existing publisher's exact content operation"
method: POST
path: "/consumer/artifact-content/{sourceId}/publisher-proof"
tags: ["artifacts"]
---

# Attest one existing publisher's exact content operation

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

## Request

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

Protocol-only issuer attestation using the existing asp_ publisher credential. Not a personal owner or discussion grant; cannot be used to select another publisher or owner. The canonical mutation owner requests this proof with the same credential.

## Path parameters

- `sourceId` string, required

## Request body

- object
  - `target_id` string, required
  - `request_id` string, uuid, required
  - `source_epoch` integer, required
  - `operation_digest` string, 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-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)
