CopyHero

Read Watched Product Revision

GET
/api/v1/watchlist/products/{watched_product_id}/revisions/{revision_id}

Authorization

HTTPBearer
headerAuthorizationBearer <token>

Path Parameters

watched_product_id*Watched Product Id
Formatuuid
revision_id*Revision Id
Formatuuid

Response Body

Successful Response

application/json
  1. response

Full read-only content of a single product revision, shaped to match InternalProductOut so the frontend field-sections renderer reuses the same code path. Backs GET /products/{id}/revisions/{revision_id}. Omits the identity-scoped fields InternalProductOut carries that a revision does not own (owner_id, source_type, auto_tags, store_links).

id*Id
Formatuuid
created_at*Created At
Formatdate-time
actor_type*RevisionActorType

Who/what caused a product revision. Stored as plain text (no Postgres ENUM) so new values are added trivially. v1 ships ONLY values with a live writer (R4-9); user_edit / bulk_import are added with their features, not pre-seeded.

Value in"workflow""sync_pull""sync_webhook""api""mcp""backfill""restore""watch_scan"
is_head*Is Head
title?string|null
body_html?string|null
handle?string|null
vendor?string|null
product_type?string|null
category?string|null
category_full_name?string|null
seo_title?string|null
seo_description?string|null
source_url?string|null
currency?|null
tags*array<string>
options*array<>
variants*array<>
images*array<>
Example Request
curl -X GET 'https://app.copyhero.app/api/v1/watchlist/products/497f6eca-6276-4993-bfeb-53cbbbba6f08/revisions/497f6eca-6276-4993-bfeb-53cbbbba6f08'
Example Response
{  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "created_at": "2019-08-24T14:15:22Z",  "actor_type": "workflow",  "is_head": true,  "title": "string",  "body_html": "string",  "handle": "string",  "vendor": "string",  "product_type": "string",  "category": "string",  "category_full_name": "string",  "seo_title": "string",  "seo_description": "string",  "source_url": "string",  "currency": "AED",  "tags": [    "string"  ],  "options": [    {      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",      "name": "string",      "position": 0,      "values": [        {          "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",          "value": "string",          "position": 0        }      ]    }  ],  "variants": [    {      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",      "sku": "string",      "title": "string",      "price": "string",      "compare_at_price": "string",      "image_src": "string"    }  ],  "images": [    {      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",      "src": "string",      "position": 0,      "alt_text": "string",      "thumbnail_url": "string",      "blur_data_url": "string"    }  ]}