Only accepted work is recordedAboutGuidesContactSign in
CitePepCitePep
API documentation

Read the record. Show it anywhere.

A read-first REST API for page records and contributor profiles, plus endpoints for publishers to open requests on their own verified sites.

Base URLapi.citepep.com
FormatJSON over HTTPS
Public dataOpen access

Quick start

Most integrations need only the first step. Reading a page record is open to everyone.

  1. 1Read a recordCall the page record endpoint with any page URL, openly.
  2. 2Show it on your pageAdd the embed script to a verified site. It reads the same record.
  3. 3Automate requestsCreate a key in your dashboard to open requests and receive webhooks.
curl "https://api.citepep.com/v1/pages/record?url=\
 https://publisher.example/overthinking-and-rumination"

Authentication

Public records are open to read. Publisher actions need an API key from your dashboard, sent as a bearer token. Keys are scoped to your verified domains.

curl https://api.citepep.com/v1/requests \
 -H "Authorization: Bearer $CITEPEP_KEY"
GET/v1/pages/record?url={url}

Returns the public contribution history for a page: every accepted contribution, its role, contributor and date.

urlstring · requiredFull URL of the page.
{
 "url": "https://publisher.example/overthinking-and-rumination",
 "status": "verified",
 "contributions": [
 { "role": "author", "name": "Contributor A",
 "accepted": "2024-03-03" },
 { "role": "correction", "name": "Contributor B",
 "accepted": "2026-07-12",
 "change": { "from": "the published rate", "to": "the current rate" } }
 ]
}
GET/v1/panels/{id}

Returns the current version of an expert panel statement: the answer, certainty, vote, named panellists, revisit date and what would reopen it early. Open access.

?version=1Read an earlier version. Replaced versions stay available.
GET /v1/panels?topic=List statements for a topic, newest first.
panel.updatedWebhook sent when a new version is issued, including the fields that changed.
{
 "id": "reef-shading-2026",
 "question": "Should publishers shade nurseries during the October heat alert?",
 "version": 1,
 "status": "issued",
 "answer": "Yes, for nurseries shallower than 3 m",
 "certainty": "low-moderate",
 "vote": { "agree": 6, "dissent": 1 },
 "panel": [{ "name": "Reviewer", "role": "chair", "vote": "agree" }, …],
 "issued_at": "2026-09-26T08:00:00Z",
 "revisit_by": "2026-10-26",
 "reopen_triggers": ["new_study", "source_corrected", "alert_extended"]
}
GET/v1/contributors/{id}

Returns a contributor’s public profile: scores, topic authority and accepted work. Private fields stay private.

idstring · requiredContributor ID or profile slug.
{
 "id": "mc-sariyer",
 "name": "Contributor B",
 "contribution_score": 171,
 "trust_score": 0.96,
 "topics": [{ "topic": "baseline-rise", "authority": 84 }]
}
POST/v1/requests

Opens a review or correction request for a page you have verified.

urlstring · requiredA page on a verified domain.
typestring · requiredreview, edit, correction or source.
topicstringUsed to match specialists.
{
 "id": "req_8f21",
 "status": "open",
 "url": "https://yoursite.com/guide",
 "type": "review"
}

Webhooks

Register an HTTPS endpoint in your dashboard to be told when something changes on your pages. Each delivery is signed so you can check it came from CitePep.

EventSent when
contribution.submittedSomeone proposes work on your page
contribution.acceptedYou or a teammate accept it
contribution.withdrawnThe contributor withdraws it
request.takenA specialist takes your open request

Failed deliveries are retried for 24 hours with increasing delays. Verify the CitePep-Signature header with your endpoint secret.

{
 "event": "contribution.submitted",
 "created": "2026-09-21T10:14:02Z",
 "page": "https://publisher.example/regional-ice",
 "contribution": {
 "id": "ctb_41c9",
 "type": "correction",
 "contributor": "elena-marsh"
 }
}

Attribution block

Add one script tag to show the verified contribution history on any page of a verified site. It updates automatically as new work is accepted.

<script src="https://citepep.com/embed.js"
 data-page="auto" async></script>
AttributeValuesDefault
data-pageauto, or a full URLauto
data-stylefull, compact, badgefull
data-langen, de, fr, es…page language

The block shows only accepted work and keeps readers private.

Errors and limits

Errors return a JSON body with a machine-readable code and a sentence you can show a person.

StatusMeaning
400A parameter is missing or invalid
401Missing or invalid key
403The page is not on one of your verified sites
404No record for that URL yet
429Too many requests: wait and retry

Rate limits

AccessLimit
No key60 requests per minute per IP
With a key600 requests per minute
EmbedCached; unlimited for readers
{
 "error": {
 "code": "page_not_verified",
 "message": "whennotesfly.com is not a verified site on this account."
 }
}

Versions and changes

The version is in the path. Within /v1 we only add fields, so existing ones stay stable. Breaking changes get a new version and at least 12 months’ notice.

DateChange
1 Sep 2026Added contribution.withdrawn webhook
9 Aug 2026Added change.from / change.to to corrections
1 Mar 2026v1 released

Endpoints and fields are illustrative for this design.