API docs

zpe-reviews

mount /reviews · base https://zpe.vc/reviews · v0.1.0 · 8 operations · 6 write · 0 need no account · wip

archived: committed 2026-11-03, from 86eb111c. Contract: https://zpe.vc/reviews/_/api/v1/openapi.json

GET /_/api/v1/reviews Every review this account holds, newest first, with what verified it and its state getReviews

Every review this account holds, newest first, with what verified it and its state

Parameters

No parameters.

Request body

None: this operation takes its arguments in the path and the query.

Responses

statusmeaningbody
200The answerobject
400The request could not be readobject
401The credential is missing or does not open this accountobject
403This account may not do thatobject
404Nothing is hereobject
429Too many requestsobject

Example

Every review this account holds, newest first, with what verified it and its state, with a token from the door.

GET /_/api/v1/reviews
curl -X GET 'https://zpe.vc/reviews/_/api/v1/reviews' \
  -H 'Authorization: Bearer $ZPE_TOKEN'
200 application/json
{}

The example is generated from the schema in the contract: the shape is the document's, the values are placeholders.

GET /_/api/v1/wall The two populations and their counts, with the gap published only above the minimum sample getWall

The two populations and their counts, with the gap published only above the minimum sample

Parameters

nameinrequiredtypenotes
businessqueryyesstring

Request body

None: this operation takes its arguments in the path and the query.

Responses

statusmeaningbody
200The answerobject
400The request could not be readobject
401The credential is missing or does not open this accountobject
403This account may not do thatobject
404Nothing is hereobject
429Too many requestsobject

Example

The two populations and their counts, with the gap published only above the minimum sample, with a token from the door.

GET /_/api/v1/wall
curl -X GET 'https://zpe.vc/reviews/_/api/v1/wall?business=string' \
  -H 'Authorization: Bearer $ZPE_TOKEN'
200 application/json
{}

The example is generated from the schema in the contract: the shape is the document's, the values are placeholders.

POST /_/api/v1/erasures Honour an erasure request by the person's address: the contact record goes, the review becomes a tombstone, one event records it postErasures

Honour an erasure request by the person's address: the contact record goes, the review becomes a tombstone, one event records it

Parameters

No parameters.

Request body application/json · required

fieldtyperequirednotes
businessstringyes
contactstringyes

Responses

statusmeaningbody
200The answerobject
400The request could not be readobject
401The credential is missing or does not open this accountobject
403This account may not do thatobject
404Nothing is hereobject
429Too many requestsobject

Example

Honour an erasure request by the person's address: the contact record goes, the review becomes a tombstone, one event records it, with a token from the door.

POST /_/api/v1/erasures
curl -X POST 'https://zpe.vc/reviews/_/api/v1/erasures' \
  -H 'Authorization: Bearer $ZPE_TOKEN' \
  -H 'content-type: application/json' \
  -d '{
  "business": "string",
  "contact": "string"
}'
200 application/json
{}

The example is generated from the schema in the contract: the shape is the document's, the values are placeholders.

POST /_/api/v1/replies/forward Turn the copy of a tenant's replies on or off and say where it goes. The stored inbox is never affected postRepliesForward

Turn the copy of a tenant's replies on or off and say where it goes. The stored inbox is never affected

Parameters

No parameters.

Request body application/json · required

fieldtyperequirednotes
businessstringyes
forward_tostringno
enabledbooleanyes

Responses

statusmeaningbody
200The answerobject
400The request could not be readobject
401The credential is missing or does not open this accountobject
403This account may not do thatobject
404Nothing is hereobject
429Too many requestsobject

Example

Turn the copy of a tenant's replies on or off and say where it goes. The stored inbox is never affected, with a token from the door.

POST /_/api/v1/replies/forward
curl -X POST 'https://zpe.vc/reviews/_/api/v1/replies/forward' \
  -H 'Authorization: Bearer $ZPE_TOKEN' \
  -H 'content-type: application/json' \
  -d '{
  "business": "string",
  "forward_to": "string",
  "enabled": false
}'
200 application/json
{}

The example is generated from the schema in the contract: the shape is the document's, the values are placeholders.

POST /_/api/v1/appeals Decide a removal appeal. Refused when the deciding principal is the one who removed it, so the chain shows two signatures postAppeals

Decide a removal appeal. Refused when the deciding principal is the one who removed it, so the chain shows two signatures

Parameters

No parameters.

Request body application/json · required

fieldtyperequirednotes
reviewstringyes
decision"restore" | "uphold"yes
notestringno

Responses

statusmeaningbody
200The answerobject
400The request could not be readobject
401The credential is missing or does not open this accountobject
403This account may not do thatobject
404Nothing is hereobject
429Too many requestsobject

Example

Decide a removal appeal. Refused when the deciding principal is the one who removed it, so the chain shows two signatures, with a token from the door.

POST /_/api/v1/appeals
curl -X POST 'https://zpe.vc/reviews/_/api/v1/appeals' \
  -H 'Authorization: Bearer $ZPE_TOKEN' \
  -H 'content-type: application/json' \
  -d '{
  "review": "string",
  "decision": "restore",
  "note": "string"
}'
200 application/json
{}

The example is generated from the schema in the contract: the shape is the document's, the values are placeholders.

POST /_/api/v1/invitations Create an invitation per eligible purchase and, when a sender is configured, send it. One purchase buys one review, and the address is never stored postInvitations

Create an invitation per eligible purchase and, when a sender is configured, send it. One purchase buys one review, and the address is never stored

Parameters

No parameters.

Request body application/json · required

fieldtyperequirednotes
businessstringyes
recipientsarray of objectyes
window_daysnumberno
sendbooleanno

Responses

statusmeaningbody
200The answerobject
400The request could not be readobject
401The credential is missing or does not open this accountobject
403This account may not do thatobject
404Nothing is hereobject
429Too many requestsobject

Example

Create an invitation per eligible purchase and, when a sender is configured, send it. One purchase buys one review, and the address is never stored, with a token from the door.

POST /_/api/v1/invitations
curl -X POST 'https://zpe.vc/reviews/_/api/v1/invitations' \
  -H 'Authorization: Bearer $ZPE_TOKEN' \
  -H 'content-type: application/json' \
  -d '{
  "business": "string",
  "recipients": [
    {
      "purchase": "string",
      "contact": "string"
    }
  ],
  "window_days": 0,
  "send": false
}'
200 application/json
{}

The example is generated from the schema in the contract: the shape is the document's, the values are placeholders.

POST /_/api/v1/claims State the domain a business owns and get the record name and value that prove it, or the page tag instead postClaims

State the domain a business owns and get the record name and value that prove it, or the page tag instead

Parameters

No parameters.

Request body application/json · required

fieldtyperequirednotes
businessstringyes
domainstringyes

Responses

statusmeaningbody
200The answerobject
400The request could not be readobject
401The credential is missing or does not open this accountobject
403This account may not do thatobject
404Nothing is hereobject
429Too many requestsobject

Example

State the domain a business owns and get the record name and value that prove it, or the page tag instead, with a token from the door.

POST /_/api/v1/claims
curl -X POST 'https://zpe.vc/reviews/_/api/v1/claims' \
  -H 'Authorization: Bearer $ZPE_TOKEN' \
  -H 'content-type: application/json' \
  -d '{
  "business": "string",
  "domain": "string"
}'
200 application/json
{}

The example is generated from the schema in the contract: the shape is the document's, the values are placeholders.

POST /_/api/v1/claims/verify Read the TXT record and the page, and mark the business claimed when either answers. Until then it can publish nothing postClaimsVerify

Read the TXT record and the page, and mark the business claimed when either answers. Until then it can publish nothing

Parameters

No parameters.

Request body application/json · required

fieldtyperequirednotes
businessstringyes

Responses

statusmeaningbody
200The answerobject
400The request could not be readobject
401The credential is missing or does not open this accountobject
403This account may not do thatobject
404Nothing is hereobject
429Too many requestsobject

Example

Read the TXT record and the page, and mark the business claimed when either answers. Until then it can publish nothing, with a token from the door.

POST /_/api/v1/claims/verify
curl -X POST 'https://zpe.vc/reviews/_/api/v1/claims/verify' \
  -H 'Authorization: Bearer $ZPE_TOKEN' \
  -H 'content-type: application/json' \
  -d '{
  "business": "string"
}'
200 application/json
{}

The example is generated from the schema in the contract: the shape is the document's, the values are placeholders.