HotCRP REST API (2025-08-26:1d75c73ed)

Download OpenAPI specification:

HotCRP conference management software API

HotCRP is conference review software. It is open source; a supported version runs on hotcrp.com. This documentation is for the HotCRP REST API.

To request documentation for an API method, please open a GitHub issue. We also welcome pull requests.

Overview

API calls use paths under api. For instance, to call the paper endpoint on a server at https://example.hotcrp.org/funconf25, you might use a URL like https://example.hotcrp.org/funconf25/api/paper?p=1.

Provide parameters in query strings or the request body, typically using form encoding. Some requests use groups of parameters to define logical objects using structured keys, such as named_search/1/q; other parameters define objects using JSON format. Use multipart/form-data encoding for requests that include uploaded files. Since servers limit upload size, you may need to use the upload API to upload a large file before processing it with another call.

Responses are formatted as JSON. Every response has an ok property, which is true if the request format succeeded and false otherwise. Typically "ok": false indicates a serious error with the request that prevented proper processing. Messages about the request, if any, are expressed in a message_list property.

GET operations retrieve system state and POST operations modify system state. Other operations are occasionally used when semantically meaningful—for example, the /paper endpoint supports DELETE.

Common parameters

The p parameter defines a submission ID. It can appear either in the query string or immediately following api/ in the query path: api/comment?p=1 and api/1/comment are the same API call. p is a positive decimal integer, but some API calls accept p=new when defining a new submission.

The forceShow boolean parameter allows administrators to override their conflicts when that is possible.

Authentication

External applications should authenticate to HotCRP’s API using bearer tokens (an Authorization: bearer HTTP header). Obtain API tokens using Account settings > Developer. HotCRP Javascript makes API calls using session cookies for authentication.

Submissions

These endpoints query and modify HotCRP submissions. They deal with submission objects, which are JSON representations of submissions.

Each submission object has an object property (set to the constant string "paper"), a pid property, and a status property. Complete submission objects also have one property per submission field, such as title, abstract, authors, topics, and pc_conflicts. However, methods that fetch submissions only fill in fields that exist and that the accessing user is allowed to see.

Submission endpoints always return complete submission objects. To select specific properties of submissions, or to fetch computed properties, use the /search or /searchaction endpoints.

Fetch submission

Fetch a submission object specified by p, a submission ID. The submission object is returned in the paper response property. Error messages—for instance, about permission errors or nonexistent submissions—are returned in message_list.

Authorizations:
apiTokensession
query Parameters
p
integer (pid) >= 1

Submission ID

forceShow
boolean

False to not override administrator conflict

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

dry_run
any
change_list
any
valid
any
pid
any
object (paper)

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ],
  • "dry_run": null,
  • "change_list": null,
  • "valid": null,
  • "pid": null,
  • "paper": {
    }
}

Create or modify submission

Create or modify a submission specified by p, a submission ID.

Setting p=new will create a new submission; the response will contain the chosen submission ID.

The modification may be specified:

  1. As a JSON request body (when the request body has content-type application/json).
  2. As a ZIP archive (when the request body has content-type application/zip). The archive must contain a file named data.json; it may contain other files too.
  3. As a JSON-formatted request parameter named json (when the request body has content-type application/x-www-form-urlencoded or multipart/form-data).
  4. As a previously-uploaded JSON or ZIP file, represented by a upload token in the upload parameter.

In all of these, the modification is defined by a JSON submission object. The properties of this object define the modifications applied to the submission. The object need not specify all submission properties; absent properties remain unchanged.

The p request parameter is optional. If it is unset, HotCRP uses the pid from the supplied JSON. If both the p parameter and the JSON pid property are present, then they must match.

To test a modification, supply a dry_run=1 parameter. This will test the uploaded JSON but make no changes to the database.

ZIP and form uploads

A ZIP upload should contain a file named data.json (PREFIX-data.json is also acceptable). This file’s content is parsed as JSON. Submission fields in the JSON can refer to other files in the ZIP. For instance, this shell session uploads a new submission with content paper.pdf:

$ cat data.json
{
    "object": "paper",
    "pid": "new",
    "title": "Aught: A Methodology for the Visualization of Scheme",
    "authors": [{"name": "Nevaeh Gomez", "email": "ngomez@example.edu"}],
    "submission": {"content_file": "paper.pdf"},
    "status": "submitted"
}
$ zip upload.zip data.json paper.pdf
$ curl -H "Authorization: bearer hct_XXX" --data-binary @upload.zip -H "Content-Type: application/zip" SITEURL/api/paper

This shell session does the same, but using multipart/form-data.

$ curl -H "Authorization: bearer hct_XXX" -F "json=<data.json" -F paper.pdf=@paper.pdf SITEURL/api/paper

Responses

The valid response property is true if and only if the modification was valid. In non-dry-run requests, "valid": true indicates that database changes were committed.

The change_list response property lists any modified field names. New submissions have "pid" as the first item in the list. change_list contains fields that the request attempted to modify; successful requests, erroneous requests, and dry-run requests can all return nonempty change_lists.

The response returns the modified submission object paper property contains the modified submission object.

Dry-run requests return change_list and valid properties, but not paper properties, since no modifications are performed.

Administrator use

Administrators can use this endpoint to set some submission properties, such as decision, that have other endpoints as well.

Administrators can choose specific IDs for new submissions by setting p (or JSON pid) to the chosen ID. Such a request will either modify an existing submission or create a new submission with that ID. To avoid overwriting an existing submission, set the submission JSON’s status.if_unmodified_since to 0.

Authorizations:
apiTokensession
query Parameters
p
integer (pid) >= 1

Submission ID

dry_run
boolean

True checks input for errors, but does not save changes

disable_users
boolean

True disables any newly-created users (site administrators only)

add_topics
boolean

True automatically adds topics from input papers (site administrators only)

notify
boolean

False disables all email notifications (site administrators only)

notify_authors
boolean

False disables email notifications to authors (paper administrators only)

reason
string

Optional text included in notification emails

json
string
upload
string (upload_token)
Examples: upload=hcupwhvGDVmHNYyDKdqeqA

Upload token for large input file

forceShow
boolean

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

dry_run
boolean

True for dry_run requests

change_list
Array of strings

List of changed fields

valid
boolean

True if the modification was valid

pid
any
object (paper)

JSON version of modified paper

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ],
  • "dry_run": true,
  • "change_list": [
    ],
  • "valid": true,
  • "pid": null,
  • "paper": {
    }
}

Delete submission Admin only

Delete the submission specified by p, a submission ID.

Authorizations:
apiTokensession
path Parameters
p
required
integer (pid) >= 1

Submission ID

query Parameters
dry_run
boolean

True checks input for errors, but does not save changes

notify
boolean

False disables all email notifications (site administrators only)

notify_authors
boolean

False disables email notifications to authors (paper administrators only)

reason
string

Optional text included in notification emails

if_unmodified_since
string

Don’t delete if modified since this time

forceShow
boolean

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

dry_run
boolean

True for dry_run requests

change_list
required
Array of strings

["delete"]

valid
required
boolean

True if the delete request was valid

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ],
  • "dry_run": true,
  • "change_list": [
    ],
  • "valid": true
}

Fetch multiple submissions

Fetch submission objects matching a search.

The search is specified in the q parameter (and other search parameters, such as t and qt). All matching visible submissions are returned, as an array of submission objects, in the response property papers.

Since searches silently filter out non-viewable submissions, /papers?q=1010 and /paper?p=1010 can return different error messages. The /paper request might return an error like “Submission #1010 does not exist” or “You aren’t allowed to view submission #1010”, whereas the /papers request will return no errors. To obtain warnings for missing submissions that were explicitly listed in a query, supply a warn_missing=1 parameter.

Authorizations:
apiTokensession
query Parameters
warn_missing
boolean

Get warnings for missing submissions

q
required
string (search_string)
Examples: q=1-10 OR #ready

Search query

t
string (search_collection)
Examples: t=s t=all

Collection to search

qt
string (search_qt)

Search fields

scoresort
string (search_scoresort)
Examples: scoresort=counts scoresort=average

Sort order for scores

sort
string (search_sort)
Examples: sort=id sort=-title

Sort order

reviewer
string (search_reviewer)
Examples: reviewer=pcmember@uhcrp.edu

Email of designated reviewer for search

forceShow
boolean

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

Array of objects (paper)

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ],
  • "papers": [
    ]
}

Create or modify multiple submissions Admin only

Create or modify multiple submissions.

This administrator-only endpoint modifies multiple submissions at once. Its request formats are similar to that of POST /{p}/paper: it can accept a JSON, ZIP, or form-encoded request body with a json parameter, and ZIP and form-encoded requests can also include attached files.

Modify submissions independently

The JSON provided for /papers should be an array of JSON objects. The status_list response property is an array with the same number of elements as the input JSON. Component i of status_list reports the status of update i as an object with valid, change_list, and pid properties; these report the validity of the update, the list of changed fields, and the submission ID of the modified submission.

The response message_list contains messages relating to all modified submissions. To filter out the messages for a single submission, use the messages’ landmark properties. landmark is set to the integer index of the relevant submission in the input JSON.

Modify all matching submissions

Alternately, you can provide a q search query parameter and a single JSON modification object lacking the pid property. The JSON modification will be applied to all papers returned by the q search query.

Authorizations:
apiTokensession
query Parameters
dry_run
boolean

True checks input for errors, but does not save changes

disable_users
boolean

True disables any newly-created users (administrators only)

add_topics
boolean

True automatically adds topics from input papers (administrators only)

notify
boolean

False does not notify contacts of changes (administrators only)

json
string
upload
string (upload_token)
Examples: upload=hcupwhvGDVmHNYyDKdqeqA

Defines upload token for large input file

q
string (search_string)
Examples: q=1-10 OR #ready

Search query for match requests

t
string (search_collection)
Examples: t=s t=all

Collection to search; defaults to viewable

qt
string (search_qt)

Search fields

sort
string (search_sort)
Examples: sort=id sort=-title

Sort order

scoresort
string (search_scoresort)
Examples: scoresort=counts scoresort=average

Sort order for scores

reviewer
string (search_reviewer)
Examples: reviewer=pcmember@uhcrp.edu

Email of designated reviewer for search

notify_authors
any
reason
any
forceShow
boolean

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

Array of objects (paper)

List of JSON versions of modified papers

dry_run
boolean

True for dry_run requests

Array of objects (update_status)

List of lists of changed fields

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ],
  • "papers": [
    ],
  • "dry_run": true,
  • "status_list": [
    ]
}

Documents

Check PDF format

Authorizations:
apiTokensession
query Parameters
p
integer (pid) >= 1

Submission ID

doc
string (document_name)
Examples: doc=testconf-paper1.pdf
dt
integer (document_type)
docid
integer (document_id) >= 1

Document ID

soft
boolean

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

npages
required
any
nwords
required
any
problem_fields
required
any
has_error
required
any
docid
required
any

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ],
  • "npages": null,
  • "nwords": null,
  • "problem_fields": null,
  • "has_error": null,
  • "docid": null
}

Upload file

Upload large files to HotCRP for later use.

Servers limit how much data they will accept in a single request. The upload API uploads larger files over multiple requests. When an upload is complete, later requests can refer to that file using an upload token.

The lifecycle of an upload is as follows.

  1. A request with start=1 begins a new upload. This request should also include a size parameter to define the size of the uploaded file, if that is known.
  2. The response to this request will include the upload token for the uploaded file in its token field. This is a string like hcupwhvGDVmHNYyDKdqeqA. All subsequent requests relating to the upload must include this token as a token parameter.
  3. Subsequent requests upload the contents of the file in chunks. The blob parameter (which can be an attached file) contains the chunk itself; the offset parameter defines the offset of chunk relative to the file.
  4. A request with finish=1 completes the upload. The server seals the upload and responds with the file’s content hash. A finish=1 request will fail unless all expected chunks have been received.

start=1 and finish=1 requests can also include a chunk. The ranges response field represents the ranges of bytes received so far.

The upload API is only available on sites that have enabled the document store.

Authorizations:
apiTokensession
query Parameters
p
integer (pid) >= 1

Submission ID

start
boolean
finish
boolean
cancel
boolean
token
string (upload_token)
Examples: token=hcupwhvGDVmHNYyDKdqeqA

Token for file upload

offset
integer >= 0

Offset of blob in uploaded file

length
integer >= 0

Length of blob in bytes (must match actual length of blob)

size
integer >= 0

Size of uploaded file in bytes

dtype
integer (document_type)

(start only) Purpose of uploaded document; typically corresponds to a submission field ID

temp
boolean

(start only) If true, the uploaded file is expected to be temporary

Request Body schema: multipart/form-data
blob
any
mimetype
string (mimetype)

MIME type

filename
string

(start only) Name of uploaded file

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

token
required
string (upload_token)

Token for file upload

dtype
integer (document_type)
filename
string
mimetype
string (mimetype)

MIME type

size
integer >= 0
Array of items (offset_range)
hash
string
crc32
string
server_progress_loaded
integer
server_progress_max
integer

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ],
  • "token": "hcupwhvGDVmHNYyDKdqeqA",
  • "dtype": 0,
  • "filename": "string",
  • "mimetype": "application/pdf",
  • "size": 0,
  • "ranges": [
    ],
  • "hash": "string",
  • "crc32": "string",
  • "server_progress_loaded": 0,
  • "server_progress_max": 0
}

Submission administration

These endpoints perform HotCRP assignments, including review assignments, review preference settings, tags, and anything else that can be modified by HotCRP’s bulk assignments interface. The general-purpose /assign endpoint is most useful; using /assign, a user can perform any assignment for which they have permission. Endpoints for specific kinds of assignment, such as decision, discussion lead, and shepherd, are provided for the HotCRP web application’s convenience.

Assignments

Perform assignments, specified either as a JSON array or as an uploaded CSV file.

The assignments should be compatible with HotCRP’s bulk assignments format. They may be specified:

  1. As a JSON request body (when the request body has content-type application/json).
  2. As a CSV file (when the request body has content-type text/csv).
  3. As a JSON-formatted request parameter named assignments (when the request body has content-type application/x-www-form-urlencoded or multipart/form-data).
  4. As a previously-uploaded JSON or CSV file, represented by a upload token in the upload parameter.

JSON requests should parse to arrays of objects. Each object should contain at least a pid property and an action property, where action determines what kind of assignment to run. Similarly, CSV uploads should contain at least pid and action columns.

If the optional p request parameter is set, HotCRP will only implement assignments that affect that submission.

To test an assignment, supply a dry_run=1 parameter. This will parse the uploaded assignment and report any errors, but make no changes to the database.

The valid response property is true if and only if the assignments were valid (had no errors). In non-dry-run requests, "valid": true indicates that any database changes were committed.

The response includes an assignments property, which is an array of the specific assignments performed (or, for dry-run requests, the specific assignments that would be performed). Each entry in assignments represents a single action applied to a single submission. (This differs from input assignments entries, each of which might apply to many submissions specified by a search.) If you’re not interested in the assignments property, supply a parameter of either summary=1 (to get summary assignment_actions and assignment_pids properties) or quiet=1 (to get nothing).

Authorizations:
apiTokensession
query Parameters
p
integer (pid) >= 1

Submission ID

dry_run
boolean

True checks input for errors, but does not save changes

assignments
string

JSON

upload
string (upload_token)
Examples: upload=hcupwhvGDVmHNYyDKdqeqA

Upload token for large input file

quiet
any
summary
any
forceShow
boolean
search
any

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

dry_run
any
valid
required
any
assignments_header
any
assignments
any
assignment_actions
any
assignment_pids
any
papers
any
ids
any
groups
any
search_params
any

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ],
  • "dry_run": null,
  • "valid": null,
  • "assignments_header": null,
  • "assignments": null,
  • "assignment_actions": null,
  • "assignment_pids": null,
  • "papers": null,
  • "ids": null,
  • "groups": null,
  • "search_params": null
}

Fetch submission decision

Authorizations:
apiTokensession
path Parameters
p
required
integer (pid) >= 1

Submission ID

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

decision
required
any
decision_html
required
any
editable
any

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ],
  • "decision": null,
  • "decision_html": null,
  • "editable": null
}

Change submission decision

Authorizations:
apiTokensession
path Parameters
p
required
integer (pid) >= 1

Submission ID

Request Body schema: application/x-www-form-urlencoded
decision
required
any

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

decision
required
any
decision_html
required
any
editable
any

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ],
  • "decision": null,
  • "decision_html": null,
  • "editable": null
}

Fetch submission discussion lead

Authorizations:
apiTokensession
path Parameters
p
required
integer (pid) >= 1

Submission ID

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

lead
required
any
lead_html
required
any
color_classes
any

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ],
  • "lead": null,
  • "lead_html": null,
  • "color_classes": null
}

Change submission discussion lead

Authorizations:
apiTokensession
path Parameters
p
required
integer (pid) >= 1

Submission ID

Request Body schema: application/x-www-form-urlencoded
lead
required
any

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

lead
required
any
lead_html
required
any
color_classes
any

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ],
  • "lead": null,
  • "lead_html": null,
  • "color_classes": null
}

Fetch submission administrator

Authorizations:
apiTokensession
path Parameters
p
required
integer (pid) >= 1

Submission ID

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

manager
required
any
manager_html
required
any
color_classes
any

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ],
  • "manager": null,
  • "manager_html": null,
  • "color_classes": null
}

Fetch submission administrator

Authorizations:
apiTokensession
path Parameters
p
required
integer (pid) >= 1

Submission ID

Request Body schema: application/x-www-form-urlencoded
manager
required
any

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

manager
required
any
manager_html
required
any
color_classes
any

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ],
  • "manager": null,
  • "manager_html": null,
  • "color_classes": null
}

Change review round

Authorizations:
apiTokensession
path Parameters
p
required
integer (pid) >= 1

Submission ID

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ]
}

Fetch submission shepherd

Authorizations:
apiTokensession
path Parameters
p
required
integer (pid) >= 1

Submission ID

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

shepherd
required
any
shepherd_html
required
any
color_classes
any

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ],
  • "shepherd": null,
  • "shepherd_html": null,
  • "color_classes": null
}

Change submission shepherd

Authorizations:
apiTokensession
path Parameters
p
required
integer (pid) >= 1

Submission ID

Request Body schema: application/x-www-form-urlencoded
shepherd
required
any

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

shepherd
required
any
shepherd_html
required
any
color_classes
any

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ],
  • "shepherd": null,
  • "shepherd_html": null,
  • "color_classes": null
}

Search

These endpoints perform searches on submissions.

Fetch search results

Return IDs, and optionally other display fields, of submissions that match a search.

Pass the search query in the q parameter. The list of matching submission IDs is returned in the ids response property, ordered according to the search.

The t, qt, reviewer, sort, and scoresort parameters can also affect the search. t defines the collection of submissions to search, where t=viewable checks all submissions the user can view. If t is not provided, HotCRP picks a default based on the user’s roles and the site’s current configuration; for PC members and chairs, the typical default is t=s, which searches complete submissions.

Submission fields

Pass f and format parameters to retrieve display fields for each submission in the search result.

format is either csv or html, and requests CSV or HTML format for the response data. f is a string indicating the display fields to return, such as title authors[full].

The response will contain fields and papers properties. fields is an array of objects defining the emitted display fields. Typically, each entry in fields corresponds to a member of f, but some field requests can expand into multiple display fields. papers is an array of objects defining the exported fields for each matching submission. Each papers entry has a pid property with the submission ID, and properties corresponding to the fields. The papers entries are in the same order as ids. In some cases, the response will additionally have a statistics property defining overall statistics for some of the requested fields.

As an example, this response might be returned for the search 10-12 with format=csv and f=title.

{
    "ok": true,
    "ids": [10, 12],
    "fields": [
        {
            "name": "title",
            "title": "Title",
            "order": 120,
            "sort": "ascending"
        }
    ],
    "groups": [],
    "papers": [
        {
            "pid": 10,
            "title": "Active Bridging"
        },
        {
            "pid": 12,
            "title": "Dynamics of Random Early Detection"
        }
    ]
}

Please note that html format is unlikely to be useful outside the HotCRP web application. The returned HTML uses elements, tag structures, and class names suitable for HotCRP’s internal use, and may change at any time. Furthermore, in some cases (such as f=allpref), the returned data is compressed into a field-specific format that the HotCRP web application expands.

Search annotations

The groups response property is an array of search annotations, and is returned for THEN searches, LEGEND searches, and searches on annotated tags. Each groups entry contains a position pos, which is an integer index into the search results. Annotations with pos P should appear immediately before the submission at index P in the result. A groups entry may also have other properties, including legend (the textual legend corresponding to the annotation), search (for THEN searches, the search string representing the following results), and annoid.

As an example, this response might be returned for the search 10-12 THEN 5-8.

{
    "ok": true,
    "ids": [10, 12, 8],
    "groups": [
        {
            "pos": 0,
            "legend": "10-12",
            "search": "10-12"
        },
        {
            "pos": 2,
            "legend": "5-8",
            "search": "5-8"
        }
    ]
}

More

The search_params response property is a URL-encoded string defining all relevant parameters for the search.

Set the hotlist parameter to get a hotlist response property, which is used by the HotCRP browser Javascript to remember information about a list of papers.

Authorizations:
apiTokensession
query Parameters
q
required
string (search_string)
Examples: q=1-10 OR #ready

Search query

t
string (search_collection)
Examples: t=s t=all

Collection to search

f
string

Space-separated field definitions

format
string (search_field_format)
Enum: "csv" "html"

Format for returned submission fields (f)

qt
string (search_qt)

Search fields

sort
string (search_sort)
Examples: sort=id sort=-title

Sort order

scoresort
string (search_scoresort)
Examples: scoresort=counts scoresort=average

Sort order for scores

reviewer
string (search_reviewer)
Examples: reviewer=pcmember@uhcrp.edu

Email of designated reviewer for search

report
string

Report defining default view options

warn_missing
boolean

Get warnings for missing submissions

hotlist
boolean

Get a hotlist response property

search
any

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

ids
required
Array of integers (pid) [ items >= 1 ]
required
Array of objects (tag_annotation)
search_params
required
string (encoded_search_parameters)

URL-encoded search parameters

object (hotlist)

Properties of submission list or user list

fields
Array of objects
papers
Array of objects
statistics
any

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ],
  • "ids": [
    ],
  • "groups": [
    ],
  • "search_params": "q=&t=s&sort=id&forceShow=&report=pl",
  • "hotlist": {
    },
  • "fields": [
    ],
  • "papers": [
    ],
  • "statistics": null
}

List search actions

Return a list of search actions accessible via HotCRP’s API.

Search actions perform actions on a set of papers specified via search. In the HotCRP web application, search actions are shown underneath the search list; examples include “Download > Review forms (zip)” and “Tag > Add to order”. The /searchactions API endpoint retrieves the search actions that the current user can access programmatically via the /searchaction API.

Authorizations:
apiTokensession

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

required
Array of objects (search_action)

List of available actions

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ],
  • "actions": [
    ]
}

Perform search action

Perform the search action specified by the action parameter on the papers defined by the q and t search parameters.

The action parameter must correspond to the name of a valid search action, as returned from the /searchactions API endpoint. Other parameters may be provided; the /searchactions response mentions relevant parameters for each action.

Search action responses do not follow HotCRP’s typical conventions. Successful responses may not use the JSON content type. For instance, the get/paper action typically returns a ZIP file containing submission PDFs, and the get/csv action returns a CSV-formatted text file. Furthermore, successful JSON responses may not be objects, or may not contain an ok property; for example, a successful response to a get/json request is an array of objects. Applications wanting predictable JSON responses should use other API endpoints. Nevertheless, /searchaction can be more convenient than using more standardized APIs.

Authorizations:
apiTokensession
query Parameters
p
integer (pid) >= 1

Submission ID

action
string

Name of action

q
required
string (search_string)
Examples: q=1-10 OR #ready

Search query

t
string (search_collection)
Examples: t=s t=all

Collection to search

qt
string (search_qt)

Search fields

sort
string (search_sort)
Examples: sort=id sort=-title

Sort order

report
any
scoresort
string (search_scoresort)
Examples: scoresort=counts scoresort=average

Sort order for scores

reviewer
string (search_reviewer)
Examples: reviewer=pcmember@uhcrp.edu

Email of designated reviewer for search

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ]
}

Perform search action

Perform the search action specified by the action parameter on the papers defined by the q and t search parameters.

The request format for POST requests is the same as for GET requests.

Authorizations:
apiTokensession
query Parameters
p
integer (pid) >= 1

Submission ID

action
string

Name of action

q
required
string (search_string)
Examples: q=1-10 OR #ready

Search query

t
string (search_collection)
Examples: t=s t=all

Collection to search

qt
string (search_qt)

Search fields

sort
string (search_sort)
Examples: sort=id sort=-title

Sort order

report
any
scoresort
string (search_scoresort)
Examples: scoresort=counts scoresort=average

Sort order for scores

reviewer
string (search_reviewer)
Examples: reviewer=pcmember@uhcrp.edu

Email of designated reviewer for search

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ]
}

/graphdata

Authorizations:
apiTokensession

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ]
}

/namedsearch

Authorizations:
apiTokensession

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

searches
required
any

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ],
  • "searches": null
}

/namedsearch

Authorizations:
apiTokensession

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

searches
required
any

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ],
  • "searches": null
}

/searchcompletion

Authorizations:
apiTokensession

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

searchcompletion
required
any

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ],
  • "searchcompletion": null
}

/viewoptions

Authorizations:
apiTokensession
query Parameters
report
any
q
string (search_string)
Examples: q=1-10 OR #ready

Search query

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

report
required
any
display_current
required
any
display_default
required
any
display_difference
required
any
display_default_message_list
required
any

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ],
  • "report": null,
  • "display_current": null,
  • "display_default": null,
  • "display_difference": null,
  • "display_default_message_list": null
}

/viewoptions

Authorizations:
apiTokensession
query Parameters
report
any
q
string (search_string)
Examples: q=1-10 OR #ready

Search query

Request Body schema: application/x-www-form-urlencoded
display
required
any

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

report
required
any
display_current
required
any
display_default
required
any
display_difference
required
any
display_default_message_list
required
any

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ],
  • "report": null,
  • "display_current": null,
  • "display_default": null,
  • "display_difference": null,
  • "display_default_message_list": null
}

Tags

Retrieve submission tags

Authorizations:
apiTokensession
path Parameters
p
required
integer (pid) >= 1

Submission ID

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

pid
required
integer (pid) >= 1

Submission ID

tags
required
Array of strings (tag_value_list) [ items^~?~?[a-zA-Z@*_:.][-+a-zA-Z0-9?!@*_:.\/]*#\d+... ]

List of tag names with values

tags_edit_text
required
string

Textual representation for editing

tags_view_html
required
string

HTML representation for display

tag_decoration_html
required
string

HTML representation of badges and emoji

color_classes
required
string (style_classes)

Space-separated list of tag style classes

tags_conflicted
Array of strings (tag_value_list) [ items^~?~?[a-zA-Z@*_:.][-+a-zA-Z0-9?!@*_:.\/]*#\d+... ]

List of tag names with values

color_classes_conflicted
string (style_classes)

Space-separated list of tag style classes

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ],
  • "pid": 1,
  • "tags": [
    ],
  • "tags_edit_text": "string",
  • "tags_view_html": "string",
  • "tag_decoration_html": "string",
  • "color_classes": "tag-red tagbg",
  • "tags_conflicted": [
    ],
  • "color_classes_conflicted": "tag-red tagbg"
}

Change submission tags

Authorizations:
apiTokensession
path Parameters
p
required
integer (pid) >= 1

Submission ID

Request Body schema: application/x-www-form-urlencoded
tags
any
addtags
any
deltags
any
search
any

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

pid
required
integer (pid) >= 1

Submission ID

tags
required
Array of strings (tag_value_list) [ items^~?~?[a-zA-Z@*_:.][-+a-zA-Z0-9?!@*_:.\/]*#\d+... ]

List of tag names with values

tags_edit_text
required
string

Textual representation for editing

tags_view_html
required
string

HTML representation for display

tag_decoration_html
required
string

HTML representation of badges and emoji

color_classes
required
string (style_classes)

Space-separated list of tag style classes

tags_conflicted
Array of strings (tag_value_list) [ items^~?~?[a-zA-Z@*_:.][-+a-zA-Z0-9?!@*_:.\/]*#\d+... ]

List of tag names with values

color_classes_conflicted
string (style_classes)

Space-separated list of tag style classes

ids
required
Array of integers (pid) [ items >= 1 ]
required
Array of objects (tag_annotation)
search_params
required
string (encoded_search_parameters)

URL-encoded search parameters

object (hotlist)

Properties of submission list or user list

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ],
  • "pid": 1,
  • "tags": [
    ],
  • "tags_edit_text": "string",
  • "tags_view_html": "string",
  • "tag_decoration_html": "string",
  • "color_classes": "tag-red tagbg",
  • "tags_conflicted": [
    ],
  • "color_classes_conflicted": "tag-red tagbg",
  • "ids": [
    ],
  • "groups": [
    ],
  • "search_params": "q=&t=s&sort=id&forceShow=&report=pl",
  • "hotlist": {
    }
}

Retrieve all visible tags

Authorizations:
apiTokensession

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

tags
required
Array of strings (tag_list) [ items^~?~?[a-zA-Z@*_:.][-+a-zA-Z0-9?!@*_:.\/]*$ ]

List of tag names

readonly_tagmap
any
sitewide_tagmap
any

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ],
  • "tags": [
    ],
  • "readonly_tagmap": null,
  • "sitewide_tagmap": null
}

Change several tags

Authorizations:
apiTokensession
Request Body schema: application/x-www-form-urlencoded
tagassignment
required
string

Comma-separated list of paper IDs and tag assignments

string or object (search_parameter_specification)

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

ids
required
Array of integers (pid) [ items >= 1 ]
required
Array of objects (tag_annotation)
search_params
required
string (encoded_search_parameters)

URL-encoded search parameters

object (hotlist)

Properties of submission list or user list

p
required
any

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ],
  • "ids": [
    ],
  • "groups": [
    ],
  • "search_params": "q=&t=s&sort=id&forceShow=&report=pl",
  • "hotlist": {
    },
  • "p": null
}

Retrieve tag annotations

Authorizations:
apiTokensession
query Parameters
tag
required
string (tag) ^~?~?[a-zA-Z@*_:.][-+a-zA-Z0-9?!@*_:.\/]*$
Examples: tag=discuss tag=For_Evaluation tag=~mine

Tag

encoded_search_parameters (string) or search_parameters (object) (search_parameter_specification)
Examples: search=q= search={"q":"hello","t":"all"}

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

ids
required
Array of integers (pid) [ items >= 1 ]
required
Array of objects (tag_annotation)
search_params
required
string (encoded_search_parameters)

URL-encoded search parameters

object (hotlist)

Properties of submission list or user list

tag
required
string (tag) ^~?~?[a-zA-Z@*_:.][-+a-zA-Z0-9?!@*_:.\/]*$

Tag

editable
required
boolean
required
Array of objects (tag_annotation)

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ],
  • "ids": [
    ],
  • "groups": [
    ],
  • "search_params": "q=&t=s&sort=id&forceShow=&report=pl",
  • "hotlist": {
    },
  • "tag": "discuss",
  • "editable": true,
  • "anno": [
    ]
}

Change tag annotations

Authorizations:
apiTokensession
query Parameters
tag
required
any
search
any
Request Body schema: application/x-www-form-urlencoded
required
Array of objects (tag_annotation)

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

ids
required
Array of integers (pid) [ items >= 1 ]
required
Array of objects (tag_annotation)
search_params
required
string (encoded_search_parameters)

URL-encoded search parameters

object (hotlist)

Properties of submission list or user list

tag
required
string (tag) ^~?~?[a-zA-Z@*_:.][-+a-zA-Z0-9?!@*_:.\/]*$

Tag

editable
required
boolean
required
Array of objects (tag_annotation)

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ],
  • "ids": [
    ],
  • "groups": [
    ],
  • "search_params": "q=&t=s&sort=id&forceShow=&report=pl",
  • "hotlist": {
    },
  • "tag": "discuss",
  • "editable": true,
  • "anno": [
    ]
}

Retrieve tag edit messages

Authorizations:
apiTokensession
path Parameters
p
required
integer (pid) >= 1

Submission ID

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

pid
required
any

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ],
  • "pid": null
}

Retrieve vote analysis

Authorizations:
apiTokensession
path Parameters
p
required
integer (pid) >= 1

Submission ID

query Parameters
tag
required
string (tag) ^~?~?[a-zA-Z@*_:.][-+a-zA-Z0-9?!@*_:.\/]*$
Examples: tag=discuss tag=For_Evaluation tag=~mine

Tag

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

vote_report
required
any

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ],
  • "vote_report": null
}

Review preferences

/{p}/revpref

Authorizations:
apiTokensession
path Parameters
p
required
integer (pid) >= 1

Submission ID

query Parameters
u
any

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

value
required
any
pref
required
any
prefexp
any
topic_score
any

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ],
  • "value": null,
  • "pref": null,
  • "prefexp": null,
  • "topic_score": null
}

/{p}/revpref

Authorizations:
apiTokensession
path Parameters
p
required
integer (pid) >= 1

Submission ID

query Parameters
u
any
Request Body schema: application/x-www-form-urlencoded
pref
required
any

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

value
required
any
pref
required
any
prefexp
any
topic_score
any

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ],
  • "value": null,
  • "pref": null,
  • "prefexp": null,
  • "topic_score": null
}

Reviews

/{p}/review

Authorizations:
apiTokensession
path Parameters
p
required
integer (pid) >= 1

Submission ID

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ]
}

/review

Authorizations:
apiTokensession

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ]
}

/{p}/reviewhistory

Authorizations:
apiTokensession
path Parameters
p
required
integer (pid) >= 1

Submission ID

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ]
}

/{p}/acceptreview

Authorizations:
apiTokensession
path Parameters
p
required
integer (pid) >= 1

Submission ID

query Parameters
required
integer or string (rid)

Review ID

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

action
required
any
review_site_relative
required
any

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ],
  • "action": null,
  • "review_site_relative": null
}

/{p}/claimreview

Authorizations:
apiTokensession
path Parameters
p
required
integer (pid) >= 1

Submission ID

query Parameters
required
integer or string (rid)

Review ID

email
required
any

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

action
required
any
review_site_relative
required
any

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ],
  • "action": null,
  • "review_site_relative": null
}

/{p}/declinereview

Authorizations:
apiTokensession
path Parameters
p
required
integer (pid) >= 1

Submission ID

query Parameters
required
integer or string (rid)

Review ID

Request Body schema: application/x-www-form-urlencoded
reason
any

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

action
required
any
reason
any
review_site_relative
required
any

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ],
  • "action": null,
  • "reason": null,
  • "review_site_relative": null
}

/{p}/requestreview

Authorizations:
apiTokensession
path Parameters
p
required
integer (pid) >= 1

Submission ID

query Parameters
round
any
Request Body schema: application/x-www-form-urlencoded
email
required
any
given_name
any
family_name
any
name
any
affiliation
any
override
any
reason
any

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ]
}

/{p}/reviewrating

Authorizations:
apiTokensession
path Parameters
p
required
integer (pid) >= 1

Submission ID

query Parameters
required
integer or string (rid)

Review ID

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

ratings
any
user_rating
any

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ],
  • "ratings": null,
  • "user_rating": null
}

/{p}/reviewrating

Authorizations:
apiTokensession
path Parameters
p
required
integer (pid) >= 1

Submission ID

query Parameters
required
integer or string (rid)

Review ID

Request Body schema: application/x-www-form-urlencoded
user_rating
required
any

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

ratings
any
user_rating
any

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ],
  • "ratings": null,
  • "user_rating": null
}

/reviewtoken

Authorizations:
apiTokensession

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ]
}

/reviewtoken

Authorizations:
apiTokensession

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ]
}

Comments

These endpoints query and modify submission comments.

Each comment has a visibility and a topic (which in the UI is called a thread). These values control who can see the comment.

The default comment visibility is "rev", which makes the comment visible to PC and external reviewers. Other values are "admin" (visible only to submission administrators and the comment author), "pc" (visible to PC reviewers, but not external reviewers), and "au" (visible to authors and reviewers).

The default comment topic is "rev", the review thread. Comments on the review thread are visible to users who can see reviews; if you can’t see reviews, you can’t see the review thread. Other comment topics are "paper", the submission thread (visible to anyone who can see the submission), and "dec", the decision thread (visible to users who can see the submission’s decision).

Retrieve comment

Return a comment object specified by ID.

The c parameter specifies the comment to return. If the comment exists and the user can view it, it will be returned in the comment component of the response. Otherwise, an error response is returned.

If c is omitted, all viewable comments are returned in a comments list.

Authorizations:
apiTokensession
path Parameters
p
required
integer (pid) >= 1

Submission ID

query Parameters
content
boolean

False omits comment content from response

integer or string (cid)

Comment ID

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

object (comment)

Comment representation

Array of objects (comment)

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ],
  • "comment": {
    },
  • "comments": [
    ]
}

Create, modify, or delete comment

Create, modify, or delete a comment specified by ID.

The c parameter specifies the comment to modify. It can be a numeric comment ID; new, to create a new comment; or response (or a compound like R2response), to create or modify a named response.

Setting delete=1 deletes the specified comment, and the response does not contain a comment component. Otherwise the comment is created or modified, and the response comment component contains the new comment.

Comment attachments may be uploaded as files (requiring a request body in multipart/form-data encoding), or using the upload API. To upload a single new attachment:

  • Set the attachment:1 body parameter to new
  • Either:
    • Set attachment:1:file as a uploaded file containing the relevant data
    • Or use the upload API to upload the file, and supply the upload token in the attachment:1:upload body parameter

To upload multiple attachments, number them sequentially (attachment:2, attachment:3, and so forth). To delete an existing attachment, supply its docid as an attachment:N parameter, and set attachment:N:delete to 1.

Authorizations:
apiTokensession
path Parameters
p
required
integer (pid) >= 1

Submission ID

query Parameters
override
boolean
delete
boolean
required
integer or string (cid)

Comment ID

Request Body schema: application/x-www-form-urlencoded
text
string
tags
string
topic
string (comment_topic)
Enum: "paper" "rev" "dec"
visibility
string (comment_visibility)
Enum: "admin" "pc" "rev" "au"
response
string
ready
boolean
draft
boolean
blind
boolean
by_author
boolean
review_token
string
attachment
any

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

object (comment)

Comment representation

conflict
any

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ],
  • "comment": {
    },
  • "conflict": null
}

/mentioncompletion

Authorizations:
apiTokensession
query Parameters
p
integer (pid) >= 1

Submission ID

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

mentioncompletion
required
any

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ],
  • "mentioncompletion": null
}

Meeting tracker

/track

Authorizations:
apiTokensession
query Parameters
p
integer (pid) >= 1

Submission ID

track
required
any
tracker_start_at
any
Request Body schema: application/x-www-form-urlencoded
hotlist-info
any

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ]
}

/trackerstatus

Authorizations:
apiTokensession

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ]
}

/trackerconfig

Authorizations:
apiTokensession
Request Body schema: application/x-www-form-urlencoded
stopall
any
tr
any
has_tr
any

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

tracker
any
tracker_recent
any
tracker_status
any
now
any
tracker_status_at
required
any
tracker_eventid
required
any
new_trackerid
any
tracker_site
any

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ],
  • "tracker": null,
  • "tracker_recent": null,
  • "tracker_status": null,
  • "now": null,
  • "tracker_status_at": null,
  • "tracker_eventid": null,
  • "new_trackerid": null,
  • "tracker_site": null
}

Users

/user

Authorizations:
apiTokensession
query Parameters
p
integer (pid) >= 1

Submission ID

email
required
any
potential_conflict
any

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

match
required
any
email
any
given_name
any
family_name
any
affiliation
any
potential_conflict
any
orcid
any
country
any

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ],
  • "match": null,
  • "email": null,
  • "given_name": null,
  • "family_name": null,
  • "affiliation": null,
  • "potential_conflict": null,
  • "orcid": null,
  • "country": null
}

/pc

Authorizations:
apiTokensession
query Parameters
ui
any

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

pc
required
any
tags
any
sort
any
p
any

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ],
  • "pc": null,
  • "tags": null,
  • "sort": null,
  • "p": null
}

Profile

/clickthrough

Authorizations:
apiTokensession
query Parameters
p
integer (pid) >= 1

Submission ID

Request Body schema: application/x-www-form-urlencoded
accept
any
clickthrough_id
required
any
clickthrough_type
required
any
clickthrough_time
required
any

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ]
}

Notifications

/events

Authorizations:
apiTokensession
query Parameters
from
any

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

from
required
any
to
required
any
rows
required
any
more
required
any

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ],
  • "from": null,
  • "to": null,
  • "rows": null,
  • "more": null
}

/{p}/follow

Authorizations:
apiTokensession
path Parameters
p
required
integer (pid) >= 1

Submission ID

query Parameters
u
any
Request Body schema: application/x-www-form-urlencoded
following
required
any

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

following
required
any

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ],
  • "following": null
}

Site information

/mailtext

Authorizations:
apiTokensession
query Parameters
p
integer (pid) >= 1

Submission ID

template
any
integer or string (rid)

Review ID

email
any
given_name
any
family_name
any
affiliation
any
reason
any
width
any
text
any
subject
any
body
any

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

templates
any
subject
any
body
any

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ],
  • "templates": null,
  • "subject": null,
  • "body": null
}

Site administration

/account

Authorizations:
apiTokensession
query Parameters
email
required
any

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

email
required
any
disabled
required
any
placeholder
required
any

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ],
  • "email": null,
  • "disabled": null,
  • "placeholder": null
}

/account

Authorizations:
apiTokensession
query Parameters
email
required
any
disable
any
enable
any
sendinfo
any

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

email
required
any
disabled
required
any
placeholder
required
any

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ],
  • "email": null,
  • "disabled": null,
  • "placeholder": null
}

/namedformula

Authorizations:
apiTokensession

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

formulas
required
any

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ],
  • "formulas": null
}

/namedformula

Authorizations:
apiTokensession
Request Body schema: application/x-www-form-urlencoded
formula
required
any

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

formulas
required
any

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ],
  • "formulas": null
}

Settings

/settings

Authorizations:
apiTokensession

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

dry_run
any
change_list
any
settings
required
any

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ],
  • "dry_run": null,
  • "change_list": null,
  • "settings": null
}

/settings

Authorizations:
apiTokensession
query Parameters
dry_run
any
reset
any
filename
any
filter
any
exclude
any
Request Body schema: application/x-www-form-urlencoded
settings
any

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

dry_run
any
change_list
any
settings
required
any

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ],
  • "dry_run": null,
  • "change_list": null,
  • "settings": null
}

/reviewfieldlibrary

Authorizations:
apiTokensession

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

samples
required
any
types
required
any

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ],
  • "samples": null,
  • "types": null
}

/settingdescriptions

Authorizations:
apiTokensession

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

setting_descriptions
required
any

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ],
  • "setting_descriptions": null
}

/submissionfieldlibrary

Authorizations:
apiTokensession

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

samples
required
any
types
required
any

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ],
  • "samples": null,
  • "types": null
}

Session

/cspreport

Authorizations:
apiTokensession

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ]
}

/job

Authorizations:
apiTokensession
query Parameters
job
required
any

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

update_at
required
any
status
any

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ],
  • "update_at": null,
  • "status": null
}

/jserror

Authorizations:
apiTokensession
Request Body schema: application/x-www-form-urlencoded
error
required
any
url
any
lineno
any
colno
any
stack
any

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ]
}

/oauthtoken

Authorizations:
apiTokensession

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ]
}

/reauth

Authorizations:
apiTokensession
query Parameters
confirm
any
Request Body schema: application/x-www-form-urlencoded
reason
any
email
any
password
any
totpcode
any

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ]
}

/session

Authorizations:
apiTokensession

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

sessioninfo
required
any

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ],
  • "sessioninfo": null
}

/session

Authorizations:
apiTokensession
query Parameters
v
required
any

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

sessioninfo
required
any

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ],
  • "sessioninfo": null
}

/stashmessages

Authorizations:
apiTokensession
Request Body schema: application/x-www-form-urlencoded
message_list
required
any

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

smsg
required
any

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ],
  • "smsg": null
}

/whoami

Authorizations:
apiTokensession

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

email
any
given_name
any
family_name
any
affiliation
any

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ],
  • "email": null,
  • "given_name": null,
  • "family_name": null,
  • "affiliation": null
}

/reviews

Authorizations:
apiTokensession

Responses

Response Schema: application/json
ok
required
boolean
Array of objects (message_list)

Diagnostic list

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ]
}