Submitting a Manuscript

Endpoint: POST https://www.reviewerzero.ai/api/v1/reviews

Content-Type: multipart/form-data

Input (one required)

Provide either file or url, but not both.

FieldTypeDescription
fileFile (PDF)The manuscript PDF to analyze (multipart upload)
urlstring (URL)URL pointing to a publicly accessible PDF (alternative to file upload)

Optional Fields

FieldTypeDefaultDescription
callback_urlstring (URL)--URL where ReviewerZero will POST results when analysis completes
payload_detailstringissues_onlyDetail level of the callback payload. issues_only delivers only red ("needs review") items plus complete per-dimension counts; full delivers every analyzed item
run_integrity_reportbooleantrueRun research integrity analysis (figures, statistics, authors, references, etc.)
run_peer_reviewbooleantrueRun AI peer review (novelty, methodological issues, logical flaws)
run_statistics_checkbooleantrueStatistical validation (p-values, effect sizes)
run_ai_text_detectionbooleantrueAI-generated text detection
run_plagiarism_detectionbooleantruePlagiarism/text similarity detection
run_figure_integritybooleantrueFigure duplication and manipulation detection
run_figure_web_usagebooleantrueReverse image search for figures
run_author_verificationbooleanfalseAuthor identity verification via ORCID/OpenAlex
run_contribution_checkbooleanfalseDeep author check: the corresponding author (or, when none is marked, the first author with an email in the manuscript) answers questions about the work through a private link. Charged per manuscript; the charge is returned when no author qualifies. Requires author verification, which is turned on and charged with it; run_author_verification: false together with it is refused with a 400. Organization accounts only
run_citation_networkbooleanfalseCitation network check: looks for references concentrated on one author, research group or journal, and self-references above what is typical for the field. Charged per manuscript; the charge is returned when the reference list is missing or too few references can be matched. Requires author verification and the reference check, which are turned on with it (author verification is charged); run_author_verification: false or run_reference_analysis: false together with it is refused with a 400. Organization accounts only
run_table_duplication_checkbooleantrueTable duplication detection
run_reference_analysisbooleantrueReference validation (DOI checks, retractions, PubPeer flags)

All sub-flags require run_integrity_report=true to take effect. When omitted, a flag falls to your organization's analysis defaults (set by an organization admin under Organization settings), then to the default in this table. You do not need to send every flag -- only include the ones you want to override; a flag you send always wins.

An organization admin can also mark a setting as not changeable. Omit that parameter and the request runs with the organization's value (the one shown in Organization settings, which can differ from the default in this table); send a different value and the request is rejected with 400 and error: "setting_locked", listing the parameters concerned. This applies to run_integrity_report, run_peer_review, run_journal_recommendations, notify_email and every run_* check flag, and only when the request is scoped to an organization with x-organization-id. Email and auto-delete are fixed only when the organization chose an explicit on or off for them; a fixed auto-delete then applies to reviews created through the API as well.

Peer-Review Fields

These require run_peer_review=true (the default), not run_integrity_report.

FieldTypeDefaultDescription
target_venuestring--Target journal or conference name. Turns on the submission guidelines check, whose rules are retrieved from the web. Max 200 characters. Mutually exclusive with venue_guidelines
venue_guidelinesstring (Markdown)--The venue's guidelines, sent with the submission. Turns on the submission guidelines check and binds it to exactly these rules, with no web retrieval. Max 50,000 characters. Mutually exclusive with target_venue

Sending either one with run_peer_review=false is rejected with 400, as is sending venue_guidelines together with run_submission_guidelines=false.

Checking Against Your Own Guidelines

target_venue names a venue and the guidelines check looks up that venue's published instructions. Send venue_guidelines instead when the rules are not on the web, or when you need the same rule set applied to every submission: the check then evaluates the document against exactly the Markdown you send and does not search.

Send one or the other. A request carrying both is rejected with 400.

curl -X POST https://www.reviewerzero.ai/api/v1/reviews \
  -H "Authorization: Bearer rz_abc123def456" \
  -F "file=@abstract.pdf" \
  -F "venue_guidelines=<conference-guidelines.md" \
  -F "run_peer_review=true"

Guidelines that already number their rules (R1, R2, section numbers) produce one finding per numbered rule, in the order they appear, so results stay comparable across submissions. Freeform prose is decomposed into checkable rules instead.

Rules that govern the submission process rather than the document -- a cover letter, suggested reviewers, an ORCID or account requirement, a fee or licence -- cannot be evidenced by the manuscript, so they are reported as unknown (rule_is_met: null) with a reason saying to verify them outside the document, rather than as violations.

A revision (revision_of) inherits the parent review's guidelines source -- either the supplied rules or the named venue -- so you do not need to resend it; both runs are then checked against the same rules. Sending venue_guidelines or target_venue on the revision overrides what it inherits. A revision that disables the guidelines check (run_submission_guidelines=false, or run_peer_review=false) inherits neither, so it is never billed for a check it did not ask for.

Because there is no venue name to report, targetJournalOrConference stays null in the response and the guidelines section reads "Checked against the guidelines you provided."

Example Request -- File Upload (cURL)

curl -X POST https://www.reviewerzero.ai/api/v1/reviews \
  -H "Authorization: Bearer rz_abc123def456" \
  -H "x-organization-id: org_publisher_acme" \  # optional
  -F "file=@manuscript.pdf" \
  -F "callback_url=https://your-system.example.com/callbacks/reviewerzero" \
  -F "run_integrity_report=true" \
  -F "run_peer_review=true"

Example Request -- URL Submission (cURL)

curl -X POST https://www.reviewerzero.ai/api/v1/reviews \
  -H "Authorization: Bearer rz_abc123def456" \
  -F "url=https://arxiv.org/pdf/2301.00001" \
  -F "callback_url=https://your-system.example.com/callbacks/reviewerzero"

When using url, ReviewerZero downloads the PDF server-side. The URL must be publicly accessible, return a Content-Type of application/pdf, and the file must not exceed the maximum upload size.

Response

{
  "review_id": "proj_a1b2c3d4e5"
}

Store the review_id to correlate with the callback you will receive later.