HotCRP REST API (2025-10-18:8a0b6c22f)

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.

Large queries

A POST request whose :method: query parameter is set to GET is treated as if it were a GET request. This can help work around web server URL length limits.

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
path Parameters
p
required
integer (pid) >= 1
Examples:
  • 1 - Submission ID

Submission ID

query Parameters
forceShow
boolean

False to not override administrator conflict

Responses

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

Diagnostic list

object (paper)

Response samples

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

Delete submission Admin only

Delete the submission specified by p, a submission ID.

Authorizations:
apiTokensession
path Parameters
p
required
integer (pid) >= 1
Examples:
  • 1 - Submission ID

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

valid
required
boolean

True if the delete request was valid

change_list
required
Array of strings

["delete"]

Response samples

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

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 paper response property is 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
Examples:
  • p=1 - Normal submission ID

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
integer

ID of modified submission

object (paper)

JSON of modified submission

Response samples

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

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": [
    ]
}

Fetch share link

Fetch the share link for a submission, if any has been created. This link can be accessed by users not signed in to HotCRP; it grants view-only access to the submission and its documents. Only authors and administrators can fetch the share link.

Authorizations:
apiTokensession
path Parameters
p
required
integer (pid) >= 1
Examples:
  • 1 - Submission ID

Submission ID

Responses

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

Diagnostic list

token
string (author_view_token)

Token for this share link

token_type
string

"author_view"

expires_at
integer
url
any

The share link

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ],
  • "token": "hcav23CqmFBgYpzARKteCkvVAeYQsB",
  • "token_type": "string",
  • "expires_at": 0,
  • "url": null
}

Create, modify, or remove share link

Change the share link for a submission. The share parameter determines whether a link should be created; it must be one of:

no : Delete the current share link, if any.

yes : Update a share link or create one if necessary. The expiration time of a current share link may be extended if expires_in requests it.

reset : Reset the expiration time of an existing share link, if one exists.

new : Delete any existing share link and create a new one.

Only authors and administrators can modify a share link.

Authorizations:
apiTokensession
path Parameters
p
required
integer (pid) >= 1
Examples:
  • 1 - Submission ID

Submission ID

query Parameters
share
required
string (share_action)
Enum: "yes" "no" "new" "reset"

Type of sharing desired

expires_in
integer

Responses

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

Diagnostic list

required
author_view_token (string) or null
token_type
string
expires_at
integer
url
any

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ],
  • "token": "hcav23CqmFBgYpzARKteCkvVAeYQsB",
  • "token_type": "string",
  • "expires_at": 0,
  • "url": null
}

Remove share link

Delete the share link for a submission, if any has been created.

Authorizations:
apiTokensession
path Parameters
p
required
integer (pid) >= 1
Examples:
  • 1 - Submission ID

Submission ID

query Parameters
share
required
any
expires_in
any

Responses

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

Diagnostic list

token
required
null

Response samples

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

Documents

These endpoints query documents associated with HotCRP submissions, reviews, and comments. The /upload endpoint can be used to upload a large file using multiple requests; this file can be a document or a temporary file intended for input to another API.

Fetch document

Fetch a document and return it in the response body. Specify the document to return either with the doc parameter, which names the document using a pattern like testconf-paper1.pdf, or the p, dt, and optionally attachment parameters, which define the submission ID, submission field, and attachment name.

The hash and docid parameters let administrators and authors select a specific version of a document. hash selects a document by hash, and docid by internal document ID. Responses to requests with hash or docid are usually cacheable.

Successful requests (HTTP status code 200) return the requested document as the response, without any JSON wrapper. Find the document’s MIME type using the response’s Content-Type header. Unsuccessful requests (HTTP status code 300 or higher) usually return a JSON object with ok set to false and a message_list describing the error.

This API understands conditional requests with HTTP headers If-Match, If-None-Match, If-Modified-Since, and If-Unmodified-Since, and many responses include ETag and Last-Modified HTTP headers. It also understands range requests.

Authorizations:
apiTokensession
query Parameters
p
integer (pid) >= 1
Examples:
  • p=1 - Normal submission ID

Submission ID

doc
string (document_name)
Examples:
  • doc=testconf-paper1.pdf - Document name for submission PDF
  • doc=testconf-final1.pdf - Document name for final version PDF
  • doc=testconf-paper2-supplementary_material.zip - Document name for other field
  • doc=testconf-paper2-attachments/filename.svg - Document name for attachment field

Document name

dt
integer (document_type)
Examples:
  • dt=0 - Document type for submission PDF
  • dt=-1 - Document type for final version PDF
  • dt=2 - Document type for other field

Document type

attachment
string
Examples:
  • attachment=example.txt -

Filename of document within multi-document field

hash
string (document_hash) >= 40 characters ^(\w+-)?[0-9a-f]{40,}$
Examples:
  • hash=sha2-09137e80575f1b71a002fdbec94c706a2934458a6134feff7b5819ce81b2f6e3 - SHA-256 hash
  • hash=d1e37b0c5bda6f41334fbe78f9e3e1540102719f - SHA-1 hash (obsolete)

Hash of document

docid
integer (document_id) >= 1
Examples:
  • docid=102 -

Document 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 document history

Fetch information about all versions of a document accessible to the requesting user. Use the doc parameter to specify a document by name, or p and dt to specify it by type.

Authorizations:
apiTokensession
query Parameters
p
integer (pid) >= 1
Examples:
  • p=1 - Normal submission ID

Submission ID

doc
string (document_name)
Examples:
  • doc=testconf-paper1.pdf - Document name for submission PDF
  • doc=testconf-final1.pdf - Document name for final version PDF
  • doc=testconf-paper2-supplementary_material.zip - Document name for other field
  • doc=testconf-paper2-attachments/filename.svg - Document name for attachment field

Document name

dt
integer (document_type)
Examples:
  • dt=0 - Document type for submission PDF
  • dt=-1 - Document type for final version PDF
  • dt=2 - Document type for other field

Document type

Responses

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

Diagnostic list

dt
required
integer (document_type)

Type of document

required
Array of objects (document_history_entry)

Response samples

Content type
application/json
{}

Check PDF format

Run HotCRP’s PDF format checker on a specified document. A human-readable response is returned in message_list. The problem_fields response property lists the names of any PDF checks that failed; examples include "papersize", "pagelimit", "columns", "textblock", "bodyfontsize", "bodylineheight", and "wordlimit".

Authorizations:
apiTokensession
query Parameters
p
integer (pid) >= 1
Examples:
  • p=1 - Normal submission ID

Submission ID

doc
string (document_name)
Examples:
  • doc=testconf-paper1.pdf - Document name for submission PDF
  • doc=testconf-final1.pdf - Document name for final version PDF
  • doc=testconf-paper2-supplementary_material.zip - Document name for other field
  • doc=testconf-paper2-attachments/filename.svg - Document name for attachment field

Document name

dt
integer (document_type)
Examples:
  • dt=0 - Document type for submission PDF
  • dt=-1 - Document type for final version PDF
  • dt=2 - Document type for other field

Document type

docid
integer (document_id) >= 1
Examples:
  • docid=102 -

Document ID

soft
boolean
attachment
string
Examples:
  • attachment=example.txt -

Filename of document within multi-document field

hash
string (document_hash) >= 40 characters ^(\w+-)?[0-9a-f]{40,}$
Examples:
  • hash=sha2-09137e80575f1b71a002fdbec94c706a2934458a6134feff7b5819ce81b2f6e3 - SHA-256 hash
  • hash=d1e37b0c5bda6f41334fbe78f9e3e1540102719f - SHA-1 hash (obsolete)

Hash of document

Responses

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

Diagnostic list

required
null or integer (nullable_int)
required
null or integer (nullable_int)
problem_fields
required
Array of strings
has_error
required
boolean
docid
required
integer (document_id) >= 1

Document ID

Response samples

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

Fetch contents of archive document

Fetch the contents of a ZIP, .tar, .tar.gz, .tar.bz2, or .tar.xz archive. The contents are returned as a list of string filenames. The consolidated=1 parameter requests an additional consolidated_listing, which returns a preformatted string that uses {} notation to represent subdirectories; for instance, subdir/{file1.txt, file2.txt}.

Authorizations:
apiTokensession
query Parameters
p
integer (pid) >= 1
Examples:
  • p=1 - Normal submission ID

Submission ID

consolidated
boolean

True requests a consolidated_listing

doc
string (document_name)
Examples:
  • doc=testconf-paper1.pdf - Document name for submission PDF
  • doc=testconf-final1.pdf - Document name for final version PDF
  • doc=testconf-paper2-supplementary_material.zip - Document name for other field
  • doc=testconf-paper2-attachments/filename.svg - Document name for attachment field

Document name

dt
integer (document_type)
Examples:
  • dt=0 - Document type for submission PDF
  • dt=-1 - Document type for final version PDF
  • dt=2 - Document type for other field

Document type

docid
integer (document_id) >= 1
Examples:
  • docid=102 -

Document ID

attachment
string
Examples:
  • attachment=example.txt -

Filename of document within multi-document field

version
any

Responses

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

Diagnostic list

listing
required
Array of strings

List of archive elements

consolidated_listing
string

Parsed contents of archive

Response samples

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

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
Examples:
  • p=1 - Normal submission ID

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

dt
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

dt
integer (document_type)

Type of document

filename
string
mimetype
string (mimetype)

MIME type

size
integer >= 0
Array of items (offset_range) [ items = 2 items ]
hash
string
crc32
string
progress_value
integer
progress_max
integer

Response samples

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

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.

Display fields

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

f defines the display fields to return. An example is title authors[full]. Obtain the available display fields with the /displayfields API. format is either csv or html, and requests CSV or HTML format for the response data.

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 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
session
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
Examples:
  • p=1 - Normal submission ID

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
Examples:
  • p=1 - Normal submission ID

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": [ ]
}

List display fields

Return a list of all supported display fields. Display fields can be requested in the web UI (search for show:FIELDNAME) or in the API (supply f=FIELDNAME to the /search endpoint).

Authorizations:
apiTokensession

Responses

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

Diagnostic list

required
Array of objects (display_field)

Response samples

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

/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
Examples:
  • 1 - Submission ID

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
Examples:
  • 1 - Submission ID

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
Examples:
  • 1 - Submission ID

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
Examples:
  • 1 - Submission ID

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
Examples:
  • 1 - Submission ID

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
Examples:
  • 1 - Submission ID

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
}

Assignments

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. /assign lets users perform any assignment for which they have permission. /autoassign lets administrators compute assignments automatically.

Perform 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- or CSV-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 assignments 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. CSV assignments must contain a header, which should specify at least pid and action columns. (The /assigners endpoint lists the available actions.)

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 output property, which is an array of the specific assignments performed (or, for dry-run requests, the specific assignments that would have been performed). Each entry represents a single action applied to a single submission. (This differs from input assignments entries, each of which might apply to many submissions.) If you’re not interested in the output property, supply either summary=1 (to get summary assigned_actions and assigned_pids properties) or quiet=1 (to get nothing).

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

Authorizations:
apiTokensession
query Parameters
p
integer (pid) >= 1
Examples:
  • p=1 - Normal submission ID

Submission ID

dry_run
boolean

True checks input for errors, but does not save changes

upload
string (upload_token)
Examples: upload=hcupwhvGDVmHNYyDKdqeqA

Upload token for JSON or CSV assignments

quiet
boolean

True omits assignment information from response

summary
boolean

True omits complete assignment from response

csv
boolean

True uses CSV format in response

forceShow
boolean

Explicit false means chair conflicts are not overridden

encoded_search_parameters (string) or search_parameters (object) (search_parameter_specification)
Examples: search=q= search={"q":"hello","t":"all"}
Request Body schema: application/x-www-form-urlencoded
assignments
string

JSON or CSV assignments

Responses

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

Diagnostic list

dry_run
boolean

True if request was a dry run

valid
required
boolean

True if the assignments were valid

assigned_actions
Array of strings

List of action names included in eventual assignment

assigned_pids
Array of integers (pid) [ items >= 1 ]

List of submission IDs changed by assignment

output
any

Resulting assignments, as JSON list or CSV

output_header
Array of strings

CSV header if output is JSON

papers
any
ids
any
groups
any
search_params
any

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ],
  • "dry_run": true,
  • "valid": true,
  • "assigned_actions": [
    ],
  • "assigned_pids": [
    ],
  • "output": null,
  • "output_header": [
    ],
  • "papers": null,
  • "ids": null,
  • "groups": null,
  • "search_params": null
}

List assignment actions

List all assignment actions understood by this HotCRP, including their parameters.

Authorizations:
apiTokensession

Responses

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

Diagnostic list

required
Array of objects (assignment_action)

Response samples

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

Compute automatic assignment

Compute and optionally perform an automatic assignment.

Specify the autoassignment action with the autoassigner parameter, and the submissions to assign with the q parameter. The /autoassigners endpoint lists the available autoassignment actions.

Most autoassignment actions take additional parameters and a set of PC members to assign. Supply these in the u, disjoint, and param parameters. u defines the assignable PC members; disjoint defines the classes of PC members that should not be co-assigned; and param defines additional autoassigner parameters, such as the number of assignments to make or the type of review to create.

The u, disjoint, and param parameters may be supplied multiple times, either as a single JSON-formatted array string named PNAME or as multiple strings named PNAME[]. For instance, /autoassign?u=%5B1,2%5D and /autoassign?u%5B%5D=1&u%5B%5D=2 each supply two u arguments, 1 and 2.

Each u argument is a search string defining a set of users. Valid strings are user IDs (1), emails (kohler@g.harvard.edu), or tags (#heavy). Prefix a string with a hyphen - to remove matching users from the assignable set.

Each disjoint argument is a comma-separated list of users that should not be coassigned. Again, users can be defined using IDs, emails, or tags.

Each param argument defines a parameter for the autoassignment action, and should be a string with the format NAME=VALUE. The parameters required or understood by each action are listed by the /autoassigners endpoint.

To test an assignment, supply the dry_run=1 parameter. This will create an assignment and test it, reporting any errors, but will make no changes to the database. Supply minimal_dry_run=1 to obtain the autoassignment output without additional testing. For instance, dry_run=1 will report warnings for potential conflicts, but minimal_dry_run=1 will not.

Autoassignment is often time consuming, so a successful /autoassign may return early, before the autoassignment completes. The response will list a job ID for the autoassigner. Query the /job endpoint with output=1 to monitor the job and obtain its eventual output.

Authorizations:
apiTokensession
query Parameters
autoassigner
required
string

Name of autoassignment action to run

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

dry_run
boolean

True computes the assignment, but does not perform it

minimal_dry_run
boolean

True computes an initial assignment, but does not validate it

u
Array of strings

Array of users to consider for assignment

disjoint
Array of strings

Array of user sets that should not be coassigned

param
Array of strings

Array of NAME=VALUE autoassignment parameter settings

Responses

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

Diagnostic list

dry_run
boolean

True if request was a dry run

job
string (job_id)

Job ID of autoassignment job

job_url
string

URL to monitor autoassignment job

status
string
exit_status
integer
progress
string
assigned_pids
Array of integers
output
string

CSV of computed assignment

Response samples

Content type
application/json
{
  • "ok": true,
  • "message_list": [ ],
  • "dry_run": true,
  • "job": "hcj_PHkMnDMRkMuBydyCSBQCymPTqaqmsGWaftV",
  • "job_url": "string",
  • "status": "string",
  • "exit_status": 0,
  • "progress": "string",
  • "assigned_pids": [
    ],
  • "output": "string"
}

List autoassignment actions

List all autoassignment actions understood by this HotCRP, including their parameters.

Authorizations:
apiTokensession

Responses

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

Diagnostic list

required
Array of objects (autoassignment_action)

Response samples

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

Submission administration

These endpoints perform specific kinds of assignment, such as decision, discussion lead, and shepherd, for one submission at a time. They are provided for the HotCRP web application’s convenience; external users should prefer the general-purpose /assign endpoint.

Fetch submission decision

Authorizations:
apiTokensession
path Parameters
p
required
integer (pid) >= 1
Examples:
  • 1 - Submission ID

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
Examples:
  • 1 - Submission ID

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
Examples:
  • 1 - Submission ID

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
Examples:
  • 1 - Submission ID

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
Examples:
  • 1 - Submission ID

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
}

Change submission administrator

Authorizations:
apiTokensession
path Parameters
p
required
integer (pid) >= 1
Examples:
  • 1 - Submission ID

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
Examples:
  • 1 - Submission ID

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
Examples:
  • 1 - Submission ID

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
Examples:
  • 1 - Submission ID

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
}

Reviews

/{p}/review

Authorizations:
apiTokensession
path Parameters
p
required
integer (pid) >= 1
Examples:
  • 1 - Submission ID

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
Examples:
  • 1 - Submission ID

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
Examples:
  • 1 - Submission ID

Submission ID

query Parameters
required
integer or string (rid)
Examples:
  • r=1238 - Bare review ID
  • r=230B - Submission ID and ordinal
  • r=230r1238 - Submission and review ID

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
Examples:
  • 1 - Submission ID

Submission ID

query Parameters
required
integer or string (rid)
Examples:
  • r=1238 - Bare review ID
  • r=230B - Submission ID and ordinal
  • r=230r1238 - Submission and review ID

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
Examples:
  • 1 - Submission ID

Submission ID

query Parameters
required
integer or string (rid)
Examples:
  • r=1238 - Bare review ID
  • r=230B - Submission ID and ordinal
  • r=230r1238 - Submission and review ID

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
Examples:
  • 1 - Submission ID

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
Examples:
  • 1 - Submission ID

Submission ID

query Parameters
required
integer or string (rid)
Examples:
  • r=1238 - Bare review ID
  • r=230B - Submission ID and ordinal
  • r=230r1238 - Submission and review ID

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
Examples:
  • 1 - Submission ID

Submission ID

query Parameters
required
integer or string (rid)
Examples:
  • r=1238 - Bare review ID
  • r=230B - Submission ID and ordinal
  • r=230r1238 - Submission and review ID

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
Examples:
  • 1 - Submission ID

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
Examples:
  • 1 - Submission ID

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
Examples:
  • p=1 - Normal submission ID

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
Examples:
  • p=1 - Normal submission ID

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
Examples:
  • p=1 - Normal submission ID

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
Examples:
  • p=1 - Normal submission ID

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": [ ]
}

/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
}

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
Examples:
  • 1 - Submission ID

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
}

Task management

The /job endpoint monitors long-running jobs.

Monitor job

Some HotCRP tasks, such as autoassignment, can take too long for a single API request. Such tasks start a job and return its unique identifier. The /job endpoint monitors the job’s progress and can return its output upon completion.

The listed response properties are common to all job types, but specific jobs may return other response properties. For example, a running autoassignment job will return a string progress property that describes the current phase of autoassignment, and a completed autoassignment job will report assigned_pids and incomplete_pids properties.

Authorizations:
apiTokensession
query Parameters
job
required
string (job_id)
Examples: job=hcj_PHkMnDMRkMuBydyCSBQCymPTqaqmsGWaftV

Job ID

output
boolean

True to return job output

Responses

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

Diagnostic list

status
required
string

"wait" if the job has not started, "run" if it is running, "done" if it is complete, "fail" if it failed

update_at
required
integer

UNIX time that job was last updated (if this time is far in the past, the job likely crashed)

output
any

Job output, either as a JSON object or a UTF-8 string

output_base64
string

Base64-encoded job output (if job output isn’t a UTF-8 string)

Response samples

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

Site information

/mailtext

Authorizations:
apiTokensession
query Parameters
p
integer (pid) >= 1
Examples:
  • p=1 - Normal submission ID

Submission ID

template
any
integer or string (rid)
Examples:
  • r=1238 - Bare review ID
  • r=230B - Submission ID and ordinal
  • r=230r1238 - Submission and review ID

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

These endpoints fetch and modify site settings.

Fetch site settings Admin only

This endpoint returns a JSON object defining all site settings. The result can be used to examine settings offline, change settings otherwise unavailable through the settings UI, or transfer settings to another site.

The filter and exclude parameters can filter the returned settings to a subset. For example, when exporting one site’s settings for use by another, you might set exclude to #id OR #deadline; this excludes settings relevant to a conference’s identity (conference_name, site_contact_email, etc.) or deadlines.

Authorizations:
apiTokensession
query Parameters
reset
boolean
filter
string

Search expression defining settings to include

exclude
string

Search expression defining settings to exclude

Responses

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

Diagnostic list

settings
required
object

Response samples

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

Modify site settings Admin only

This endpoint modifies site settings according to a JSON object. This object may define a full complement of settings or a subset. It may be provided as a request body with type application/json, or as a body parameter with name settings.

The filter and exclude parameters can filter the modifications that are applied; for example, uploading a settings object with filter set to #rf will only change settings relevant to the review form.

For more information on JSON settings, see Help > Advanced settings.

Authorizations:
apiTokensession
query Parameters
dry_run
boolean

True checks input for errors, but does not save changes

reset
boolean
filter
string

Search expression defining settings to include

exclude
string

Search expression defining settings to exclude

filename
string

File name for settings object (for error messages)

Request Body schema: application/x-www-form-urlencoded
settings
object

Settings to change

Responses

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

Diagnostic list

dry_run
boolean

True for dry-run requests

valid
required
boolean

True if the modification was valid

change_list
required
Array of strings

List of modified top-level settings

settings
required
object

New settings

Response samples

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

/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": [ ]
}

/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
}

/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": [ ]
}