arrow-left

All pages
gitbookPowered by GitBook
1 of 15

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

OpenAPI definition

Entities

Dollar Sign Notation

The dollar sign notation is used to copy values from one field whose path is specified inside the dollar sign notation to the one where the dollar sign notation was specified. The path defined in the field is a relative path and can only refer to fields that are passed when the object is posted or to fields that are generated by the backend before it gets saved to the database.

The dollar sign notation is a string has the following format:

${<integer>/path/to/other/field/value}

Probably the most common and simple example is the one for signatures and Note number. Consider the following simplified Note Edit Invitation:

Then a valid Note Edit replying to this Invitation will look like this:

The final Edit that will be saved to the database after all values have been resolved will look like this:

According to the Note Edit Invitation there are only 2 fields that the user needs to fill up: signatures and the value of the title because those are the only 2 fields with the param keyword. The rest of the field values are populated by what is defined in the Invitation as constants. Refer to the subsection for more information.

There are 3 fields that contain the dollar sign notation and 4 values that need to be resolved. Let us start with the one inside edit/readers/1. The value ${2/signatures} means that it will go up twice and then select the value of edit/signatures. Note that the value here is [ "~Test_User1" ]. The array will replace the value where ${2/signatures} would be located in the Note Edit and then flattened. In a similar way, the value inside edit/note/writers/1 will be resolved and flattened. The only difference is that the relative path is different, but they resolve to the same value.

The other example refers to the field number. This field is not defined when the Note Edit is posted, because it is created by the backend. However, the field can be referred to when creating the Note Edit. The number field is the only exception to the rule where all the field values that can be referred to with the dollar sign notation need to be present when the Note Edit is posted. As you can see, when the Note number value is resolved it replaces the value of the dollar sign with the number of the Note.

circle-exclamation

The dollar sign notation cannot refer to values that are at the root of the Invitation. This is because when an object is created, it only has access to its own fields, not to the fields of the Invitation that allows its creation.

{
  id: "OpenReview.net/Venue_Organizers/-/Submission",
  signatures: [ "OpenReview.net/Venue_Organizers" ],
  writers: [ "OpenReview.net/Venue_Organizers" ],
  invitees: [ "~" ],
  readers: [ "everyone" ],
  edit : {
    signatures: { param: { regex: ".+" } },
    readers: [
      "OpenReview.net/Venue_Organizers",
      "${2/signatures}"
    ],
    writers: [ "OpenReview.net/Venue_Organizers" ],
    note: {
      signatures: [ "OpenReview.net/Paper${2/number}/Authors" ],
      readers: [ "everyone" ],
      writers: [
        "OpenReview.net/Venue_Organizers",
        "${3/signatures}",
        "OpenReview.net/Paper${2/number}/Authors"
      ],
      content: {
        title: {
          value: { param: { type: "string" } }
        }
      }
    }
  }
}
{
  signatures: [ "~Test_User1" ],
  note: {
    content: {
      title: {
        value: "This is a title"
      }
    }
  }
}
{
  signatures: [ "~Test_User1" ],
  readers: [
    "OpenReview.net/Venue_Organizers",
    "~Test_User1"
  ],
  writers: [ "OpenReview.net/Venue_Organizers" ],
  note: {
    signatures: [ "OpenReview.net/Paper1/Authors" ],
    readers: [ "everyone" ],
    writers: [
      "OpenReview.net/Venue_Organizers",
      "~Test_User1",
      "OpenReview.net/Paper1/Authors"
    ],
    content: {
      title: {
        value: "This is a title"
      }
    }
  }
}
Specifiers

Invitation

Users can enter data into the system using an invitation. An invitation is roughly a template that indicates required and valid values that will be saved to the database. The invitation contains a list of fields that need to be completed by the user.

The subsections contain information on the types of Invitations, their structure, the fields it can have, and how to define them with different specifiers.

Edit

Edits are used to create Invitations, Groups and Notes. Therefore, there are three kinds of Edits: Invitation Edits, Group Edits and Note Edits. Once an Edit is created, it goes through the process of inference to create the corresponding entity. Consequently, Edits contain the history of changes of the entity that they create. Adding, removing or modifying an existing Edit will change the resulting entity.

Note

Notes are the main containers of data in OpenReview. Notes are used for submissions and comments such as reviews, meta reviews, decisions and public comments. They require an Invitation to be created and modified.

Edge

Edges are used to represent matching data, like affinity scores, conflicts, custom quotas, etc. The Edge entity contains two main properties: head and tail and optionally a label and weight. Head and tail properties point to other entities in the system like a note, a group or a profile.

Fields

Notes can only have certain fields and have a specific format. Some of these fields are the same as other objects and some are specific to the Note object.

hashtag
id

This is a unique value that identifies the Edge. The id of an Edge is generated automatically. It is a random 14 character long string that can contain any of the following values:

hashtag
cdate

The Creation Date or cdate is a unix timestamp in milliseconds that can be set either in the past or in the future. It usually represents when the Edge was created.

hashtag
tcdate

The True Creation Date or tcdate indicates the date in unix timestamp in milliseconds when the Edge is created. Unlike the cdate, its value cannot be set or modified by the user and it is not displayed in the UI.

hashtag
mdate

The Modification Date or mdate shows when the Edge was last modified. The mdate value is a unix timestamp in milliseconds that can be set either in the past or in the future.

hashtag
tmdate

The True Modification Date or tmdate indicates the date in unix timestamp in milliseconds when the Edge is modified. Unlike the mdate, its value cannot be set or modified by the user and it is not displayed in the UI.

hashtag
ddate

The Deletion Date or ddate is used to soft delete an Edge. This means that Edges with a ddate value can be restored but will appear as deleted. The ddate value is a unix timestamp in milliseconds that can be set either in the past or in the future.

hashtag
signatures

The signatures field indicates who created the Edge. Even though the field is an array of strings, only one item can be present in the signatures field. Users can sign with different ids depending on their permissions.

hashtag
readers

The readers field is an array with Group ids that indicates who can retrieve the Edge or see the Edge in the UI.

hashtag
nonreaders

The nonreaders field is an array with Group ids that indicates who cannot retrieve the Edge or see the Edge in the UI. This field is useful in case we want to use a group id in the readers field that contains a member that we want to exclude from the readers. In this case, we can specify the Group id of that user in the nonreaders field.

hashtag
writers

The writers field is an array with Group ids that indicates who can modify the Edge.

hashtag
head

The head field can contain a Note id or a Group id and connects it to the Note id or Group id defined in the tail field. This field is always mandatory and cannot be empty.

hashtag
tail

The tail field can contain a Note id or a Group id and connects it to the Note id or Group id defined in the head field. This field is always mandatory and cannot be empty.

hashtag
label

The label field contains a string that gives extra information to the Edge. This information can be used to classify Edges and differentiate them from other Edges that have the same Invitation, tail and head values.

hashtag
weight

The weight field contains a number that defines the weight between two entities defined in head and tail.

hashtag
invitation

The invitation field contains the Invitation id that was used as template to create the Edge.

hashtag
tauthor

The tauthor field contains the identity of the user that created the Edge. This property is only present when the user is writer of the Edge.

0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ

Fields

Notes can only have certain fields and have a specific format. Some of these fields are the same as other objects and some are specific to the Note object.

hashtag
id

This is a unique value that identifies the Note. The id of a Note is generated automatically. It is a random 10 character long string that can contain any of the following values:

hashtag
number

Notes contain a number field that is associated to the first Invitation that is used to create the Note. The number value is added automatically and it is usually used to give a number id to submissions.

hashtag
cdate

The Creation Date or cdate is a unix timestamp in milliseconds that can be set either in the past or in the future. It usually represents when the Note was created.

hashtag
tcdate

The True Creation Date or tcdate indicates the date in unix timestamp in milliseconds when the Note is created. Unlike the cdate, its value cannot be set or modified by the user and it is not displayed in the UI.

hashtag
mdate

The Modification Date or mdate shows when the Note was last modified. The mdate value is a unix timestamp in milliseconds that can be set either in the past or in the future.

hashtag
tmdate

The True Modification Date or tmdate indicates the date in unix timestamp in milliseconds when the Note is modified. Unlike the mdate, its value cannot be set or modified by the user and it is not displayed in the UI.

hashtag
odate

The Online Date or odate is used to show when the Note first becomes public. The odate value is a unix timestamp in milliseconds that can be set either in the past or in the future.

hashtag
pdate

The Publication Date or pdate is used to show when the Note that represents a submission is marked as Accepted. The pdate value is a unix timestamp in milliseconds that can be set either in the past or in the future.

hashtag
ddate

The Deletion Date or ddate is used to soft delete an Note. This means that Notes with a ddate value can be restored but will appear as deleted. The ddate value is a unix timestamp in milliseconds that can be set either in the past or in the future.

hashtag
invitations

The invitations field contains all the Invitations that were used to create the Note through the process of inference.

hashtag
domain

The domain is a string that groups all the entities of a venue. Its value is set automatically and cannot be modified.

hashtag
signatures

The signatures field indicates who created the Note. Even though the field is an array of strings, only one item can be present in the signatures field. Users can sign with different ids depending on their permissions.

hashtag
readers

The readers field is an array with Group ids that indicates who can retrieve the Note or see the Note in the UI.

hashtag
nonreaders

The nonreaders field is an array with Group ids that indicates who cannot retrieve the Note or see the Note in the UI. This field is useful in case we want to use a group id in the readers field that contains a member that we want to exclude from the readers. In this case, we can specify the Group id of that user in the nonreaders field.

hashtag
writers

The writers field is an array with Group ids that indicates who can modify the Note.

hashtag
forum

The forum field contains a Note id. When the Note id field is equal to the forum field, it indicates that the Note is a submission. Otherwise, it means that the Note is a comment to the submission. In other words, the forum value indicates the forum the Note belongs to.

hashtag
replyto

The replyto contains a Note id. This field indicates what Note it is replying to. In other words, Notes that contain this field are comments in a forum.

hashtag
content

The content field is a JSON that can contain any field that is specified in the Invitation. The fields in content can only contain alphanumeric characters, underscores, and hyphens and they can have a max length of 80 characters. The UI will display by default the value of the field after replacing the underscore characters with spaces and uppercasing the first letter of every word in the field. However, the UI can be instructed to render a different text for each field by defining a string inside param/fieldName in the Invitation.

The fields inside content must contain a value field and optionally a readers field. For example:

Everyone can query this Note and see that the value of title is "Title". However, only members of "OpenReview.net/2023/Conference" will be able to see the value of venueid.

circle-info

The same principle applies to any content field of any object at any level.

0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
{
    "id": "or2023",
    "invitations": [ "OpenReview.net/2023/Conference/-/Submission" ],
    "readers": [ "everyone" ],
    "writers": [ "~Some_Author1" ],
    "signatures": [ "~Some_Author1" ],
    "content": {
        "title": {
            "value": "Title"
        },
        "venueid": {
            "value": "OpenReview.net/2023/Conference",
            "readers": [ "OpenReview.net/2023/Conference" ]
        }
    }
}

Fields

Invitations can only have certain fields and have a specific format. Some of these fields are the same as other objects and some are specific to the Invitation object.

hashtag
id

This is a unique value that identifies the Invitation. Its value, which will always contain the string /-/ determines the parent group it belongs to as well as the value that is displayed when creating buttons in the UI. For example, the Invitation id OpenReview.net/Venue_Organizers/-/Submission belongs to the group

Fields

Edits can only have certain fields and have a specific format. Some of these fields are the same as other objects and some are specific to the Edit object.

hashtag
id

This is a unique value that identifies the Edit. The id of an Edit is generated automatically. It is a random 10 character long string that can contain any of the following values:

post
/login
post
/register
put
/activate/{token}

Activate a user

Authorizations
openreview.accessTokenstringRequired
Path parameters
tokenstringRequired

activation token

Body
preferredEmailstringOptional
genderstringOptional
homepagestringOptional
dblpstringOptional
gscholarstringOptional
wikipediastringOptional
linkedinstringOptional
orcidstringOptional
emailsstring[]Optional
put
/activatelink/{token}

Activate a user

Authorizations
openreview.accessTokenstringRequired
Path parameters
tokenstringRequired

activation token

Responses
chevron-right
200

user token

application/json
idstringOptional
tcdateintegerOptional
tmdateintegerOptional
tauthorstringOptional
readersstring[]Optional
nonreadersstring[]Optional
writersstring[]Optional
signatoriesstring[]Optional
signaturesstring[]Optional
membersstring[]Optional
hoststring · nullableOptional
webstring · nullableOptional
put
/activatelink/{token}
get
/activatable/{token}

Check if a user is activatable

Authorizations
openreview.accessTokenstringRequired
Path parameters
tokenstringRequired

activation token

Responses
chevron-right
200

user token

application/json
activatableobjectOptional
prefixed_positionsarrayOptional
prefixed_relationsarrayOptional
institutionsarrayOptional
get
/activatable/{token}
post
/activatable

Check if a user is activatable

Authorizations
openreview.accessTokenstringRequired
Body
idstring · min: 1 · max: 254Required
Responses
chevron-right
200

user token

application/json
idstringOptional
post
/activatable
put
/reset/{token}

Reset a user password

Authorizations
openreview.accessTokenstringRequired
Path parameters
tokenstringRequired

reset token

Body
passwordstringRequired
post
/logout

Logout a user

Authorizations
openreview.accessTokenstringRequired
Responses
chevron-right
200

Empty object

application/json
objectOptional
post
/logout
get
/resettable/{token}

Check if a user is resettable

Authorizations
openreview.accessTokenstringRequired
Path parameters
tokenstringRequired

reset token

Responses
chevron-right
200

user token

application/json
idstringOptional
tcdateintegerOptional
tmdateintegerOptional
tauthorstringOptional
readersstring[]Optional
nonreadersstring[]Optional
writersstring[]Optional
signatoriesstring[]Optional
signaturesstring[]Optional
membersstring[]Optional
hoststring · nullableOptional
webstring · nullableOptional
get
/resettable/{token}
post
/resettable

Check if a user is resettable

Authorizations
openreview.accessTokenstringRequired
Body
idstring · min: 1 · max: 254Required
Responses
chevron-right
200

Group

application/json
idstringOptional
tcdateintegerOptional
tmdateintegerOptional
tauthorstringOptional
readersstring[]Optional
nonreadersstring[]Optional
writersstring[]Optional
signatoriesstring[]Optional
signaturesstring[]Optional
membersstring[]Optional
hoststring · nullableOptional
webstring · nullableOptional
post
/resettable
post
/impersonate

Impersonate a user

Authorizations
openreview.accessTokenstringRequired
Body
get
/tildeusername

Gets the next available OpenReview username for the passed names.

Authorizations
openreview.accessTokenstringRequired
Query parameters
firststringOptional

first name

middlestringOptional

middle name

laststringOptional

last name

Responses
chevron-right
200

Next available tilde username

application/json
usernamestringOptional
post
/user/confirm

Confirm a new email

Authorizations
openreview.accessTokenstringRequired
Body
usernamestring · min: 1Required
alternatestring · min: 1 · max: 254Required
Responses
chevron-right
200

user email

application/json
alternatestringOptional
post
/user/confirm
get
/attachment

Download an attachment

Authorizations
openreview.accessTokenstringRequired
Query parameters
idstringRequired

Note id that contains the attachment.

namestringRequired

Attachment field name inside the content of the Note. This is usually pdf or supplementary_material.

Responses
chevron-right
200

Attachment

No content

put
/attachment

Upload an attachment

Authorizations
openreview.accessTokenstringRequired
Body
filestring · binaryRequired
namestring · min: 1Required

Attachment field name. This is usually pdf or supplementary_material.

invitationIdstring · min: 1Required

The id of the Invitation that allows to upload the attachment.

put
/attachment/chunk

Upload an attachment chunk

Authorizations
openreview.accessTokenstringRequired
Body
get
/pdf

Download a PDF

Authorizations
openreview.accessTokenstringRequired
Query parameters
idstring · min: 1Required

Note id that contains the PDF.

Responses
chevron-right
200

PDF

No content

get
/pdf
get
/pdf/{id}

Get a PDF

Authorizations
openreview.accessTokenstringRequired
Path parameters
idstringRequired

PDF id. This is the value saved in the pdf field of the Note.

Responses
chevron-right
200

pdf

No content

get
/pdf/{id}
get
/pdf/compare

Compare PDFs

Authorizations
openreview.accessTokenstringRequired
Query parameters
noteIdstringRequired

Note id

leftIdstringRequired

Edit id

rightIdstringRequired

Edit id

fieldstringOptional

field to compare

Default: pdf
Responses
chevron-right
200

pdf comparison

No content

get
/edges
post
/edges

Create an edge

Authorizations
openreview.accessTokenstringRequired
Body
idstring · min: 1Optional
invitationstring · min: 1Required
headstring · min: 1Required
tailstring · min: 1Required
labelstringOptional
weightany ofOptional
numberOptional
or
ddateany ofOptional
integerOptional
or
readersany ofOptional
string[]Optional
or
nonreadersany ofOptional
string[]Optional
or
writersany ofOptional
string[]Optional
or
signaturesstring[] · min: 1Optional
get
/edges/count

Get edges count

Authorizations
openreview.accessTokenstringRequired
Query parameters
idstring · min: 1Optional

Edge id

invitationstring · min: 1Optional

Invitation id used to create the Edge(s).

headstring · min: 1Optional

head value of the Edge(s).

tailstring · min: 1Optional

tail value of the Edge(s).

labelstring · min: 1Optional

label of the Edge(s).

trashbooleanOptional

Whether to return deleted Edges as well.

get
/profiles
post
/profiles
get
/profiles/search
get
/groups
get
/groups/edits
post
/groups/edits

Create or edit a Group Edit

Authorizations
openreview.accessTokenstringRequired
Body
idstring · min: 1Optional
invitationstring · min: 1Optional
tauthorstring · min: 1Optional
contentobjectOptional
cdateany ofOptional
integer · min: 1Optional
or
ddateany ofOptional
integerOptional
or
mdateany ofOptional
integerOptional
or
readersany ofOptional
string[]Optional
or
nonreadersany ofOptional
string[]Optional
or
writersany ofOptional
string[]Optional
or
signaturesstring[]Optional
replacementbooleanOptional
get
/notes/edits
post
/notes/edits
get
/notes
get
/notes/search
get
/references/attachment

Get a reference attachment

Authorizations
openreview.accessTokenstringRequired
Query parameters
idstringRequired

Note id

namestringRequired

attachment field name

Responses
chevron-right
200

attachment

No content

get
/references/attachment
get
/invitations/edits
post
/invitations/edits
get
/invitations
get
/tags

Find tags by different filters

Authorizations
post
/tags

Create or edit a Tag

Authorizations
openreview.accessTokenstringRequired
Body
idstring · min: 1Optional
invitationstring · min: 1Required
forumstring · min: 1Required
replytoany ofOptional
string · min: 1Optional
or
tagstringRequired
cdateany ofOptional
integerOptional
or
ddateany ofOptional
integerOptional
or
readersany ofOptional
string[]Optional
or
nonreadersany ofOptional
string[]Optional
or
signaturesstring[] · min: 1Required
get
/messages

Find messages by different filters

Authorizations
post
/messages

Create a direct message

OpenReview.net/Venue_Organizers
and the button displayed in the UI will have the
Submission
value.

hashtag
maxReplies

Invitations can be used to create many objects. If you want to restrict the amount of objects created you can set a maxReplies integer value. If this value is not present, then any amount of objects can be created using the Invitation.

hashtag
minReplies

Invitations are sometimes used for tasks. Until the integer value minReplies is met by creating object replying to the Invitation, the task will still be marked as pending. The minReplies parameter is only used by the UI.

hashtag
cdate

The Creation Date or cdate is used to activate an Invitation. The value of a cdate is a unix timestamp in milliseconds that can be set either in the past or in the future. If the cdate is set in the future, the Invitation cannot be used until the date set is reached.

hashtag
tcdate

The True Creation Date or tcdate indicates the date in unix timestamp in milliseconds when the Invitation is created. Unlike the cdate, its value cannot be set or modified by the user and it is not displayed in the UI.

hashtag
mdate

The Modification Date or mdate shows when the Invitation was last modified. The value of a mdate is a unix timestamp in milliseconds that can be set either in the past or in the future.

hashtag
tmdate

The True Modification Date or tmdate indicates the date in unix timestamp in milliseconds when the Invitation is modified. Unlike the mdate, its value cannot be set or modified by the user and it is not displayed in the UI.

hashtag
expdate

The Expiration Date or expdate is used to set an expiration date for an Invitation. Once the expiration date is reached, users will not be able to use the Invitation to create new objects, unless the user is a writer of the Invitation. The value of a expdate is a unix timestamp in milliseconds that can be set either in the past or in the future.

hashtag
duedate

The Due Date or duedate is used to set an expiration date for an Invitation in the UI. Its value can be different from the expdate and it is never used to validate if the Invitation can still be used. This property is useful to give users during a deadline room when there are network issues due to heavy traffic. Therefore, the duedate is usually set with a value less than the expdate. The value of a duedate is a unix timestamp in milliseconds that can be set either in the past or in the future.

hashtag
ddate

The Deletion Date or ddate is used to soft delete an Invitation. This means that Invitations with a ddate value can be restored but will appear as deleted. The value of a ddate is a unix timestamp in milliseconds that can be set either in the past or in the future.

hashtag
invitations

The invitations field contains all the Invitations that were used to create the Invitation through the process of inference.

hashtag
domain

The domain is a string that groups all the entities of a venue. Its value is set automatically and cannot be modified.

hashtag
signatures

The signatures field indicates who created the Invitation. Even though the field is an array of strings, only one item can be present in the signatures field. Users can sign with different ids depending on their permissions.

hashtag
readers

The readers field is an array with Group ids that indicates who can retrieve the Invitation or see the Invitation in the UI.

hashtag
nonreaders

The nonreaders field is an array with Group ids that indicates who cannot retrieve the Invitation or see the Invitation in the UI. This field is useful in case we want to use a group id in the readers field that contains a member that we want to exclude from the readers. In this case, we can specify the Group id of that user in the nonreaders field.

hashtag
writers

The writers field is an array with Group ids that indicates who can modify the Invitation.

hashtag
invitees

The invitees field is an array with Group ids that indicates who can use the Invitation to create an object. A user can be a reader of an Invitation but not an invitee.

hashtag
noninvitees

The noninvitees field is an array with Group ids that indicates who cannot use the Invitation. This field is useful in case we want to use a group id in the invitees field that contains a member that we want to exclude from the invitees. In this case, we can specify the Group id of that user in the noninvitees field.

hashtag
preprocess

The preprocess field contains a string with custom javascript or python code that can be used to add extra validation before an object is created.

hashtag
process

The process field contains a string with custom javascript or python code that runs after an object is created. This process runs asynchronously and can be used to send emails, for example. Process functions can be executed right after an object is created or with a delay after the object is created.

hashtag
dateprocesses

The dateprocesses field is an array containing different dates and delays. It can be used to run a specific task after an object is created, on a particular date, or as a cronjob.

hashtag
web

The web field contains javascript code that runs when the Invitation is loaded in the UI. If the field web is not present, a default UI is shown for the Invitation.

hashtag
replyForumViews

TODO

hashtag
edit

The edit field is a JSON that contains the rules and structure for any edit that is created using this Invitation. Edits can be for Groups, Notes, and Invitations.

hashtag
edge

The edge field is a JSON that contains the rules and structure for any edge that is created using this Invitation.

hashtag
tag

The tag field is a JSON that contains the rules and structure for any tag that is created using this Invitation.

hashtag
content

The content field is a JSON that can contain any field with any name defined by the user. Please refer to the Speficiers subsection for more information on how to define the field values.

The content field has arbitrary fields that can be named as anything with some restrictions. The fields can only contain alphanumeric characters, underscores, and hyphens and they can have a max length of 80 characters. The UI will display by default the value of the field after replacing the underscore characters with spaces and uppercasing the first letter of every word in the field. However, you can instruct the UI to render a different text for each field by defining a string inside param/fieldName. The field fieldName can be a string with a max length of 1000 characters and no restriction in terms of what characters can be used.

The fields inside content must contain a value field and optionally a readers field. For example:

Everyone can query this Note and see that the value of title is "Title". However, only members of "OpenReview.net/2023/Conference" will be able to see the value of venueid.

circle-info

The same principle applies to any content field of any object at any level.

hashtag
cdate

The Creation Date or cdate is a unix timestamp in milliseconds that can be set either in the past or in the future. It usually represents when the Edit was created.

hashtag
tcdate

The True Creation Date or tcdate indicates the date in unix timestamp in milliseconds when the Edit is created. Unlike the cdate, its value cannot be set or modified by the user and it is not displayed in the UI.

hashtag
mdate

The Modification Date or mdate shows when the Edit was last modified. The mdate value is a unix timestamp in milliseconds that can be set either in the past or in the future.

hashtag
tmdate

The True Modification Date or tmdate indicates the date in unix timestamp in milliseconds when the Edit is modified. Unlike the mdate, its value cannot be set or modified by the user and it is not displayed in the UI.

hashtag
ddate

The Deletion Date or ddate is used to soft delete an Edit. This means that Edits with a ddate value can be restored but will appear as deleted. The ddate value is a unix timestamp in milliseconds that can be set either in the past or in the future.

hashtag
invitation

The invitation field contains the Invitation id used to create or modify the Edit.

hashtag
domain

The domain is a string that groups all the entities of a venue. Its value is set automatically and cannot be modified.

hashtag
signatures

The signatures field indicates who created the Edit. Even though the field is an array of strings, only one item can be present in the signatures field. Users can sign with different ids depending on their permissions.

hashtag
readers

The readers field is an array with Group ids that indicates who can retrieve the Edit or see the Edit in the UI.

hashtag
nonreaders

The nonreaders field is an array with Group ids that indicates who cannot retrieve the Edit or see the Edit in the UI. This field is useful in case we want to use a group id in the readers field that contains a member that we want to exclude from the readers. In this case, we can specify the Group id of that user in the nonreaders field.

hashtag
writers

The writers field is an array with Group ids that indicates who can modify the Edit.

hashtag
content

The content field has arbitrary fields that can be named as anything with some restrictions. The fields can only contain alphanumeric characters, underscores, and hyphens and they can have a max length of 80 characters.

The fields inside content must contain a value field and optionally a readers field. For example:

In the example above, readers of the Edit will see that the value of title is "Title". However, only members of "OpenReview.net/2023/Conference" will be able to see the value of venueid.

hashtag
replacement

The replacement field is a boolean value that indicates whether the history of changes of the entity that is being edited should restart from the Edit that is being created or modified. In other words, if the value of replacement is true, then, the previous Edits for that particular entity are ignored during inference.

hashtag
tauthor

The tauthor field contains the identity of the user that created the Edge. This property is only present when the user is writer of the Edge.

hashtag
Specific Invitation Edit Fields

hashtag
invitations

The invitations field contains the Invitation id used to create or modify the Edit. Even though the name of the field is in plural, the field contains a string. This is to avoid name collision with the invitation field.

hashtag
invitation

The invitation field contains the Invitation object that will be used during inference to create or modify the Invitation that will be saved to the database.

hashtag
Specific Group Edit Fields

hashtag
invitation

The invitation field contains the Invitation id used to create or modify the Edit.

hashtag
group

The group field contains the Group object that will be used during inference to create or modify the Group that will be saved to the database.

hashtag
Specific Note Edit Fields

hashtag
invitation

The invitation field contains the Invitation id used to create or modify the Edit.

hashtag
note

The note field contains the Note object that will be used during inference to create or modify the Note that will be saved to the database.

{
    "id": "or2023",
    "invitations": [ "OpenReview.net/2023/Conference/-/Submission" ],
    "readers": [ "everyone" ],
    "writers": [ "~Some_Author1" ],
    "signatures": [ "~Some_Author1" ],
    "content": {
        "title": {
            "value": "Title"
        },
        "venueid": {
            "value": "OpenReview.net/2023/Conference",
            "readers": [ "OpenReview.net/2023/Conference" ]
        }
    }
}
0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
{
    "content": {
        "title": {
            "value": "Title"
        },
        "venueid": {
            "value": "OpenReview.net/2023/Conference",
            "readers": [ "OpenReview.net/2023/Conference" ]
        }
    }
}
chevron-down
copy

Login to openreview

Authorizations
openreview.accessTokenstringRequired
Body
idstring · min: 1Required

Any confirmed email address that is associated to the OpenReview Profile.

passwordstring · min: 1Required
expiresIninteger · min: 1 · nullableOptional

An optional parameter to determine the number of seconds before the assigned token expires.

Responses
chevron-right
200

An object containing the assigned token and the OpenReview Profile.

application/json
post
/login
200

An object containing the assigned token and the OpenReview Profile.

Register a new user

Authorizations
openreview.accessTokenstringRequired
Body
anyOptional
or
anyOptional
Responses
chevron-right
200

The Profile that is saved to the database.

application/json
idstringRequired
activebooleanOptional
passwordbooleanOptional
invitationstringRequired
metaContentobjectOptional
tcdateintegerOptional
tmdateintegerOptional
tauthorstringOptional
readersstring[]Required
nonreadersstring[]Optional
writersstring[]Required
signaturesstring[]Required
post
/register
200

The Profile that is saved to the database.

Responses
chevron-right
200

user token

application/json
tokenstringOptional
put
/activate/{token}
200

user token

200

user token

200

user token

200

user token

Responses
chevron-right
200

User is logged in after the password is reset.

application/json
tokenstringOptional
put
/reset/{token}
200

User is logged in after the password is reset.

200

Empty object

200

user token

200

Group

groupIdstring · min: 1Required
Responses
chevron-right
200

User token of the impersonated user and details of the impersonation.

application/json
tokenstringOptional
post
/impersonate
200

User token of the impersonated user and details of the impersonation.

get
/tildeusername
200

Next available tilde username

200

user email

get
/attachment
200

Attachment

No content

Responses
chevron-right
200

Path to the attachment.

application/json
urlstringOptional
put
/attachment
200

Path to the attachment.

filestring · binaryRequired
namestring · min: 1Required

Attachment field name. This is usually pdf or supplementary_material.

invitationIdstring · min: 1Required

The id of the Invitation that allows to upload the attachment.

clientUploadIdstring · min: 1 · max: 25Required

Unique id that identifies all the chunks to the same file.

chunkIndexintegerRequired

The index of the chunk.

totalChunksinteger · min: 1Required

The total number of chunks.

Responses
chevron-right
200

Path to the attachment.

application/json
or
put
/attachment/chunk
200

Path to the attachment.

200

PDF

No content

200

pdf

No content

get
/pdf/compare
200

pdf comparison

No content

chevron-down
copy

Get edges

Authorizations
openreview.accessTokenstringRequired
Query parameters
idstring · min: 1Optional

Edge id

limitinteger · min: 1Optional

Maximum number of results to return.

offsetintegerOptional

Offset of the result shown.

sortstring · min: 1Optional

Sort returned Edges by field.

invitationstring · min: 1Optional

Invitation id used to create the Edge(s).

headstring · min: 1Optional

head value of the Edge(s).

tailstring · min: 1Optional

tail value of the Edge(s).

labelstring · min: 1Optional

label of the Edge(s).

trashbooleanOptional

Whether to return deleted Edges as well.

groupBystring · min: 1Optional

Group result by different Edge fields.

selectany ofOptional

Fields of the Edge to return in the result. Requires groupBy.

string · min: 1OptionalPattern: [a-zA-Z0-9_]+
or
string[]Optional
detailsstring · min: 1Optional

Comma separated values of fields to add to details. Valid values are head, tail, writable and all.

Example: head,tail
cachebooleanOptional

Get result from cache. Without the right privileges this parameter will be ignored.

Responses
chevron-right
200

edges

application/json
idstring · min: 1Optional
invitationstring · min: 1Required
headstring · min: 1Required
tailstring · min: 1Required
labelstringOptional
weightany ofOptional
numberOptional
or
ddateany ofOptional
integerOptional
or
readersany ofOptional
string[]Optional
or
nonreadersany ofOptional
string[]Optional
or
writersany ofOptional
string[]Optional
or
signaturesstring[] · min: 1Optional
get
/edges
200

edges

Responses
chevron-right
200

Edge

application/json
idstring · min: 1Optional
invitationstring · min: 1Required
headstring · min: 1Required
tailstring · min: 1Required
labelstringOptional
weightany ofOptional
numberOptional
or
ddateany ofOptional
integerOptional
or
readersany ofOptional
string[]Optional
or
nonreadersany ofOptional
string[]Optional
or
writersany ofOptional
string[]Optional
or
signaturesstring[] · min: 1Optional
post
/edges
200

Edge

Responses
chevron-right
200

edges

application/json
countintegerOptional
get
/edges/count
200

edges

chevron-down
copy

Get user profiles

Authorizations
openreview.accessTokenstringRequired
Query parameters
idstring · min: 1Optional

Profile id

Pattern: ^~.*\d+$
idsany ofOptional

Profile ids

stringOptional
or
string[]Optional
emailstring · min: 1Optional

Email associated with the Profile.

emailsany ofOptional

Email(s) associated with the Profile.

stringOptional
or
string[]Optional
confirmedEmailstring · min: 1Optional

Confirmed email associated with the Profile.

confirmedEmailsany ofOptional

Confirmed email(s) associated with the Profile.

stringOptional
or
string[]Optional
firststring · min: 1Optional

First name associated with the Profile.

middlestring · nullableOptional

Middle name associated with the Profile.

laststring · min: 1Optional

Last name associated with the Profile.

termstring · min: 1Optional

Email, Fullname or part of the fullname associated with the Profile.

groupstring · min: 1Optional

Group id where to get all the member profiles.

trashbooleanOptional

Whether to include deleted profiles.

withBlockedbooleanOptional

Whether to include blocked profiles.

needsModerationbooleanOptional

Whether to return Profiles that need moderation.

selectstring · min: 1Optional

Comma separated string with specific fields of the Profile object to return.

Example: id,content.names,content.emails
statestring · enumOptional

State of the Profile.

Possible values:
sortstring · min: 1Optional

Sort returned Profiles by field.

limitinteger · min: 1Optional

Maximum number of results to return.

offsetintegerOptional

Offset of the result shown.

cachebooleanOptional

Get result from cache. Without the right privileges this parameter will be ignored.

Responses
chevron-right
200

Profile response

application/json
idstringRequired
activebooleanOptional
passwordbooleanOptional
invitationstringRequired
metaContentobjectOptional
tcdateintegerOptional
tmdateintegerOptional
tauthorstringOptional
readersstring[]Required
nonreadersstring[]Optional
writersstring[]Required
signaturesstring[]Required
get
/profiles
200

Profile response

chevron-down
copy

Save user Profile

Authorizations
openreview.accessTokenstringRequired
Body
idstring · min: 1Optional
invitationstring · min: 1Optional
referentstring · min: 1Optional
tcdateintegerOptional
tmdateintegerOptional
ddateinteger · nullableOptional
packagingobjectOptional
activebooleanOptional
passwordbooleanOptional
tauthorstringOptional
statestring · enumOptionalPossible values:
readersstring[]Optional
nonreadersstring[] · nullableOptional
writersstring[]Optional
signaturesstring[] · min: 1Required
Responses
chevron-right
200

Profile response

application/json
idstringRequired
activebooleanOptional
passwordbooleanOptional
invitationstringRequired
metaContentobjectOptional
tcdateintegerOptional
tmdateintegerOptional
tauthorstringOptional
readersstring[]Required
nonreadersstring[]Optional
writersstring[]Required
signaturesstring[]Required
post
/profiles
chevron-down
copy

Get user profiles

Authorizations
openreview.accessTokenstringRequired
Query parameters
idstring · min: 1Optional

Profile id

Pattern: ^~.*\d+$
idsany ofOptional

Profile ids

stringOptional
or
string[]Optional
emailstring · min: 1Optional

Email associated with the Profile.

emailsany ofOptional

Email(s) associated with the Profile.

stringOptional
or
string[]Optional
confirmedEmailstring · min: 1Optional

Confirmed email associated with the Profile.

confirmedEmailsany ofOptional

Confirmed email(s) associated with the Profile.

stringOptional
or
string[]Optional
firststring · min: 1Optional

First name associated with the Profile.

middlestring · nullableOptional

Middle name associated with the Profile.

laststring · min: 1Optional

Last name associated with the Profile.

termstring · min: 1Optional

Email, Fullname or part of the fullname associated with the Profile.

groupstring · min: 1Optional

Group id where to get all the member profiles.

trashbooleanOptional

Whether to include deleted profiles.

withBlockedbooleanOptional

Whether to include blocked profiles.

needsModerationbooleanOptional

Whether to return Profiles that need moderation.

selectstring · min: 1Optional

Comma separated string with specific fields of the Profile object to return.

Example: id,content.names,content.emails
statestring · enumOptional

State of the Profile.

Possible values:
sortstring · min: 1Optional

Sort returned Profiles by field.

limitinteger · min: 1Optional

Maximum number of results to return.

offsetintegerOptional

Offset of the result shown.

cachebooleanOptional

Get result from cache. Without the right privileges this parameter will be ignored.

Responses
chevron-right
200

Profile response

application/json
idstringRequired
activebooleanOptional
passwordbooleanOptional
invitationstringRequired
metaContentobjectOptional
tcdateintegerOptional
tmdateintegerOptional
tauthorstringOptional
readersstring[]Required
nonreadersstring[]Optional
writersstring[]Required
signaturesstring[]Required
get
/profiles/search
200

Profile response

chevron-down
copy

Returns groups

Authorizations
openreview.accessTokenstringRequired
Query parameters
idstring · min: 1Optional

Group id.

idsany ofOptional

Group ids.

stringOptional
or
string[]Optional
prefixstring · min: 1Optional

Group id prefix.

parentstring · min: 1Optional

Group parent.

memberstring · min: 1Optional

Group id to get its transitive members.

membersstring · min: 1Optional

Group id to get groups that the Group is member of.

signaturestring · min: 1Optional

Group id used to sign the returned Groups.

signatorystring · min: 1Optional

Group id that can is allowed to sign with the returned Groups.

writerstring · min: 1Optional

Group id that is writer of the returned Groups.

hoststring · min: 1 · nullableOptional

Host of the returned Groups.

selectstring · min: 1Optional

Comma separated string with specific fields of the Group object to return.

Example: id,members
detailsstring · min: 1Optional

Comma separated values of fields to add to details. Valid value is writable.

Example: writable
limitinteger · min: 1Optional

Maximum number of results to return.

offsetintegerOptional

Offset of the result shown.

webbooleanOptional

Whether to return web ui code

streambooleanOptional

Whether to use a stream to process results or not.

cachebooleanOptional

Get result from cache. Without the right privileges this parameter will be ignored.

Responses
chevron-right
200

Group response

application/json
idstringOptional
tcdateintegerOptional
tmdateintegerOptional
tauthorstringOptional
readersstring[]Optional
nonreadersstring[]Optional
writersstring[]Optional
signatoriesstring[]Optional
signaturesstring[]Optional
membersstring[]Optional
hoststring · nullableOptional
webstring · nullableOptional
chevron-right
default

Error

application/json
get
/groups
chevron-down
copy

Returns all the Group Edits by filter.

Authorizations
openreview.accessTokenstringRequired
Query parameters
idstring · min: 1Optional

Edit id.

idsany ofOptional

Edit ids.

stringOptional
or
string[]Optional
group.idstring · min: 1Optional

Group id that the Edits have edited.

invitationstring · min: 1Optional

Invitation id used to create the Edit(s).

trashbooleanOptional

Whether to get deleted Group Edits.

tauthorbooleanOptional

Get Edits authored by user.

writerstring · min: 1Optional

Get Edits written by user.

signaturesany ofOptional

Get Edits signed by users.

stringOptional
or
string[]Optional
selectstring · min: 1Optional

Comma separated string with specific fields of the Note Edit object to return.

Example: id,content.title,content.abstract
detailsstring · min: 1Optional

Comma separated values of fields to add to details. Valid values are writable, invitation, and all

Example: all
sortstring · min: 1Optional

Sort returned Edits by field.

limitintegerOptional

Maximum number of results to return.

offsetintegerOptional

Offset of the result shown.

cachebooleanOptional

Get result from cache. Without the right privileges this parameter will be ignored.

Responses
chevron-right
200

Edit Group response

application/json
idstring · min: 1Optional
invitationstring · min: 1Optional
contentobjectOptional
cdateany ofOptional
integer · min: 1Optional
or
ddateany ofOptional
integerOptional
or
mdateany ofOptional
integerOptional
or
readersany ofOptional
string[]Optional
or
nonreadersany ofOptional
string[]Optional
or
writersany ofOptional
string[]Optional
or
signaturesstring[]Optional
chevron-right
default

Error

application/json
get
/groups/edits
Responses
chevron-right
200

Group Edit response

application/json
idstring · min: 1Optional
invitationstring · min: 1Optional
tauthorstring · min: 1Optional
contentobjectOptional
cdateany ofOptional
integer · min: 1Optional
or
ddateany ofOptional
integerOptional
or
mdateany ofOptional
integerOptional
or
readersany ofOptional
string[]Optional
or
nonreadersany ofOptional
string[]Optional
or
writersany ofOptional
string[]Optional
or
signaturesstring[]Optional
replacementbooleanOptional
chevron-right
default

Error

application/json
post
/groups/edits
chevron-down
copy

Returns all the Note Edits by filter.

Authorizations
openreview.accessTokenstringRequired
Query parameters
idstring · min: 1Optional

Edit id.

idsany ofOptional

Edit ids.

stringOptional
or
string[]Optional
note.idstring · min: 1Optional

Note id that the Edits have edited.

invitationstring · min: 1Optional

Invitation id used to create the Edit(s).

Example: ICLR.cc/2018/Conference/-/Blind_Submission
trashbooleanOptional

Whether to get deleted Note Edits.

tauthorbooleanOptional

Get Edits authored by user.

writerstring · min: 1Optional

Get Edits written by user.

signaturesany ofOptional

Get Edits signed by users.

stringOptional
or
string[]Optional
originalany ofOptional

get Edits that are originals

booleanOptional
or
string · min: 1Optional
selectstring · min: 1Optional

Comma separated string with specific fields of the Note Edit object to return.

Example: id,content.title,content.abstract
detailsstring · min: 1Optional

Comma separated values of fields to add to details. Valid values are writable, invitation, presentation, and all

Example: all
sortstring · min: 1Optional

Sort returned Edits by field.

limitintegerOptional

Maximum number of results to return.

offsetintegerOptional

Offset of the result shown.

cachebooleanOptional

Get result from cache. Without the right privileges this parameter will be ignored.

Responses
chevron-right
200

Edit Note response

application/json
idstring · min: 1Optional
invitationstring · min: 1Optional
contentobjectOptional
cdateany ofOptional
integer · min: 1Optional
or
ddateany ofOptional
integerOptional
or
mdateany ofOptional
integerOptional
or
readersany ofOptional
string[]Optional
or
nonreadersany ofOptional
string[]Optional
or
writersany ofOptional
string[]Optional
or
signaturesstring[]Optional
chevron-right
default

Error

application/json
get
/notes/edits

Create or edit a Note Edit

Authorizations
openreview.accessTokenstringRequired
Body
idstring · min: 1Optional
invitationstring · min: 1Optional
tauthorstring · min: 1Optional
contentobjectOptional
cdateany ofOptional
integer · min: 1Optional
or
ddateany ofOptional
integerOptional
or
mdateany ofOptional
integerOptional
or
readersany ofOptional
string[]Optional
or
nonreadersany ofOptional
string[]Optional
or
writersany ofOptional
string[]Optional
or
signaturesstring[]Optional
replacementbooleanOptional
Responses
chevron-right
200

Note Edit response

application/json
idstring · min: 1Optional
invitationstring · min: 1Optional
tauthorstring · min: 1Optional
contentobjectOptional
cdateany ofOptional
integer · min: 1Optional
or
ddateany ofOptional
integerOptional
or
mdateany ofOptional
integerOptional
or
readersany ofOptional
string[]Optional
or
nonreadersany ofOptional
string[]Optional
or
writersany ofOptional
string[]Optional
or
signaturesstring[]Optional
replacementbooleanOptional
chevron-right
default

Error

application/json
post
/notes/edits
chevron-down
copy

Returns all the Notes by filter.

Authorizations
openreview.accessTokenstringRequired
Query parameters
idstring · min: 1Optional

Note id.

idsany ofOptional

Note ids.

stringOptional
or
string[]Optional
invitationstring · min: 1Optional

Invitation id used to create the Note(s).

Example: ICLR.cc/2018/Conference/-/Blind_Submission
invitationsany ofOptional

Invitation ids.

stringOptional
or
string[]Optional
referentstring · min: 1Optional

Reference referent.

forumany ofOptional

Note id of the forum field.

stringOptional
or
string[]Optional
replytoany ofOptional

Note id of the replyto field.

stringOptional
or
string[]Optional
numberany ofOptional

Note number.

integer · min: 1Optional
or
string · min: 1OptionalPattern: ^([1-9][0-9]*,?)*[1-9][0-9]*$
or
integer[] · min: 1Optional
content.titlestring · min: 1Optional

Note title.

content.confidencestring · min: 1Optional

Note content confidence field value.

content.strengthsstring · min: 1Optional

Note content strengths field value.

content.weaknessesstring · min: 1Optional

Note content weaknesses field value.

content.decisionstring · min: 1Optional

Note content decision field value.

content.certificationsstring · min: 1Optional

Note content certification field values.

content.previous_URLstring · min: 1Optional

Note content previous_URL field value.

content.userstring · min: 1Optional

User email in recruitment.

content.responsestring · min: 1Optional

User response in recruitment.

content.submission_idstring · min: 1Optional
content.venuestring · min: 1Optional

Note venue.

content.venueidstring · min: 1Optional

Note venueid.

content.venue_idstring · min: 1Optional

Note venue_id.

content.presentation_typestring · min: 1Optional

Presentation Type.

content.sessionsstring · min: 1Optional

Sessions.

content.trackstring · min: 1Optional

Track.

content.authoridsany ofOptional

List of tilde ids of registered users or of emails either registered or not.

stringOptionalExample: ~Andrew_McCallum1
or
string[]Optional
trashbooleanOptional

Whether to get deleted Notes.

paperhashstringOptionalDeprecated

paperhash of the Note if exists.

Example: das|go_for_a_walk_and_arrive_at_the_answer_reasoning_over_paths_in_knowledge_bases_using_reinforcement_learning.
tauthorbooleanOptional

Get Notes authored by user.

writerstring · min: 1Optional

Get Notes written by user.

signaturestring · min: 1Optional

Get Notes signed by user.

transitiveMembersbooleanOptional

Include transitive members of signature if it's passed as a parameter.

signaturesany ofOptional

Get Notes signed by users.

stringOptional
or
string[]Optional
originalany ofOptional

get Notes that are originals

booleanOptional
or
string · min: 1Optional
selectstring · min: 1Optional

Comma separated string with specific fields of the Note object to return.

Example: id,content.title,content.abstract
detailsstring · min: 1Optional

Comma separated values of fields to add to details. Valid values are replyCount, original, overwriting, revisions, writable, forumContent, tags, revisions, invitation, directReplyCount, directReplies, replies, and all

Example: all
inviteebooleanOptional

invitee

mintcdateintegerOptional

minimum creation date

duedatebooleanOptional

due date

sortstring · min: 1Optional

Sort returned Notes by field.

limitintegerOptional

Maximum number of results to return.

offsetintegerOptional

Offset of the result shown.

cachebooleanOptional

Get result from cache. Without the right privileges this parameter will be ignored.

Responses
chevron-right
200

Note response

application/json
idstring · min: 1Optional
invitationstring · min: 1Optional
numberinteger · min: 1Optional
forumstring · min: 1Optional
replytoany ofOptional
string · min: 1Optional
or
contentobjectOptional
cdateany ofOptional
integer · min: 1Optional
or
pdateany ofOptional
integer · min: 1Optional
or
ddateany ofOptional
integerOptional
or
mdateany ofOptional
integerOptional
or
readersany ofOptional
string[]Optional
or
nonreadersany ofOptional
string[]Optional
or
writersany ofOptional
string[]Optional
or
signaturesstring[]Optional
chevron-right
default

Error

application/json
get
/notes

Search Notes

Authorizations
openreview.accessTokenstringRequired
Query parameters
querystring · min: 1Optional

Search query that that looks inside some of the fields in the content of the Note.

termstring · min: 1Optional

Search term that that looks inside some of the fields in the content of the Note.

typestring · enumOptional

Search type

Possible values:
contentstring · min: 1Optional

Fields inside content to look for the term.

Default: all
groupstring · min: 1Optional

Group that the Invitation belongs to

sourcestring · enumOptional

Source of the Note

Default: allPossible values:
invitationstring · min: 1Optional

Invitation id used to create the Note(s).

Example: ICLR.cc/2018/Conference/-/Submission
venuestring · min: 1Optional

Venue of the Note

venueidstring · min: 1Optional

Venue id of the Note

sortstring · min: 1Optional

Sort returned Notes by field.

Example: tmdate:desc
limitintegerOptional

Maximum number of results to return.

offsetintegerOptional

Offset of the result shown.

cachebooleanOptional

Get result from cache. Without the right privileges this parameter will be ignored.

Responses
chevron-right
200

Note response

application/json
idstring · min: 1Optional
invitationstring · min: 1Optional
numberinteger · min: 1Optional
forumstring · min: 1Optional
replytoany ofOptional
string · min: 1Optional
or
contentobjectOptional
cdateany ofOptional
integer · min: 1Optional
or
pdateany ofOptional
integer · min: 1Optional
or
ddateany ofOptional
integerOptional
or
mdateany ofOptional
integerOptional
or
readersany ofOptional
string[]Optional
or
nonreadersany ofOptional
string[]Optional
or
writersany ofOptional
string[]Optional
or
signaturesstring[]Optional
chevron-right
default

Error

application/json
get
/notes/search
200

attachment

No content

chevron-down
copy

Returns Invitation Edits

Authorizations
openreview.accessTokenstringRequired
Query parameters
idstring · min: 1Optional

Edit id.

idsany ofOptional

Edit ids.

stringOptional
or
string[]Optional
invitation.idstring · min: 1Optional

Invitation id that the Edits have edited.

invitationstring · min: 1Optional

Invitation id used to create the Edit(s).

Example: ICLR.cc/2018/Conference/-/Blind_Submission
trashbooleanOptional

Whether to get deleted Invitation Edits.

tauthorbooleanOptional

Get Edits authored by user.

writerstring · min: 1Optional

Get Edits written by user.

signaturesany ofOptional

Get Edits signed by users.

stringOptional
or
string[]Optional
originalany ofOptional

get Edits that are originals

booleanOptional
or
string · min: 1Optional
selectstring · min: 1Optional

Comma separated string with specific fields of the Invitation Edit object to return.

Example: id,content.title,content.abstract
detailsstring · min: 1Optional

Comma separated values of fields to add to details. Valid values are writable, invitation, presentation, and all

Example: all
sortstring · min: 1Optional

Sort returned Edits by field.

limitintegerOptional

Maximum number of results to return.

offsetintegerOptional

Offset of the result shown.

cachebooleanOptional

Get result from cache. Without the right privileges this parameter will be ignored.

Responses
chevron-right
200

Invitation response

application/json
idstring · min: 1Optional
cdateany ofOptional
integerOptional
or
readersany ofOptional
string[]Optional
or
nonreadersany ofOptional
string[]Optional
or
writersany ofOptional
string[]Optional
or
signaturesstring[]Optional
chevron-right
default

Error

application/json
get
/invitations/edits
chevron-down
copy

Create or edit a Invitation Edit

Authorizations
openreview.accessTokenstringRequired
Body
idstring · min: 1Optional
invitationsstring · min: 1Optional
replacementboolean · enumOptionalPossible values:
contentobjectOptional
cdateany ofOptional
integerOptional
or
readersany ofOptional
string[]Optional
or
nonreadersany ofOptional
string[]Optional
or
writersany ofOptional
string[]Optional
or
signaturesstring[]Optional
Responses
chevron-right
200

Invitation Edit response

application/json
idstring · min: 1Optional
invitationsstring · min: 1Optional
replacementboolean · enumOptionalPossible values:
contentobjectOptional
cdateany ofOptional
integerOptional
or
readersany ofOptional
string[]Optional
or
nonreadersany ofOptional
string[]Optional
or
writersany ofOptional
string[]Optional
or
signaturesstring[]Optional
chevron-right
default

Error

application/json
post
/invitations/edits
chevron-down
copy

Returns Invitations

Authorizations
openreview.accessTokenstringRequired
Query parameters
idstring · min: 1Optional

Invitation id

idsany ofOptional

Invitation ids

stringOptional
or
string[]Optional
invitationstring · min: 1Optional

Invitation used to validate this invitation.

prefixstring · min: 1Optional

Invitation id prefix

domainstring · min: 1Optional

Invitation domain

typestring · enumOptional

Invitation type

Possible values:
replyForumstring · min: 1Optional

Note id

replyInvitationstring · min: 1Optional

Invitation id

minduedateintegerOptional

minimum due date of the Invitation

inviteeany ofOptional

invitee id

booleanOptional
or
string · min: 1Optional
signaturestring · min: 1Optional

Invitation signature

replytobooleanOptional

Invitations should have replyto field

duedatebooleanOptional

Invitations should have due date

pastduebooleanOptional

Invitations should be past due

expiredbooleanOptional

Invitations should be expired

selectstring · min: 1Optional

Comma separated string with specific fields of the Invitation object to return.

Example: id,content,readers,invitees
detailsstring · min: 1Optional

Comma separated values of fields to add to details. Valid values are replytoNote, repliedNotes, repliedTags, repliedEdges, all.

tagsbooleanOptionalDeprecated

Get only Tag Invitations

edgesbooleanOptionalDeprecated

Get only edge Invitations

notesbooleanOptionalDeprecated

Get only Note Invitations

sortstring · min: 1Optional

Sort returned Invitations by field.

limitinteger · min: 1Optional

Maximum number of results to return.

offsetintegerOptional

Offset of the result shown.

cachebooleanOptional

Get result from cache. Without the right privileges this parameter will be ignored.

Responses
chevron-right
200

Invitation response

application/json
idstring · min: 1Optional
editanyOptional
cdateany ofOptional
integerOptional
or
ddateany ofOptional
integerOptional
or
duedateany ofOptional
integerOptional
or
expdateany ofOptional
integerOptional
or
maxRepliesany ofOptional
integer · min: 1Optional
or
minRepliesany ofOptional
integerOptional
or
taskCompletionCountinteger · nullableOptional
replyForumViewsany ofOptional
or
preprocessany ofOptional
stringOptional
or
processany ofOptional
stringOptional
or
or
dateprocessesany ofOptional
or
webany ofOptional
string · min: 1Optional
or
readersany ofOptional
string[]Optional
or
nonreadersany ofOptional
string[]Optional
or
writersany ofOptional
string[]Optional
or
signaturesstring[]Optional
inviteesany ofOptional
string[]Optional
or
noninviteesany ofOptional
string[]Optional
or
chevron-right
default

Error

application/json
get
/invitations
openreview.accessTokenstringRequired
Query parameters
idstringOptional

Tag id

idsany ofOptional

Tag ids

string · min: 1Optional
or
string[] · min: 1Optional
invitationstringOptional

Invitation id used to create the Tag(s).

Example: ICLR.cc/2018/Conference/-/Add_Bid
tagstring · min: 1Optional

Tag value

signaturestring · min: 1Optional

Tag signature

forumstringOptional

Note id of the forum field.

replytostringOptional

Invitations should have replyto field

trashbooleanOptional

Get tags deleted too.

tauthorbooleanOptional

Get tags authored by user.

detailsstring · min: 1Optional

Comma separated values of fields to add to details. Valid values are forumContent, all.

limitintegerOptional

Maximum number of results to return.

Default: 1000
offsetintegerOptional

Offset of the result shown.

Default: 0
Responses
chevron-right
200

Tag response

application/json
idstring · min: 1Optional
invitationstring · min: 1Required
forumstring · min: 1Required
replytoany ofOptional
string · min: 1Optional
or
tagstringRequired
cdateany ofOptional
integerOptional
or
ddateany ofOptional
integerOptional
or
readersany ofOptional
string[]Optional
or
nonreadersany ofOptional
string[]Optional
or
signaturesstring[] · min: 1Required
chevron-right
default

Error

application/json
get
/tags
Responses
chevron-right
200

Tag response

application/json
idstring · min: 1Optional
invitationstring · min: 1Required
forumstring · min: 1Required
replytoany ofOptional
string · min: 1Optional
or
tagstringRequired
cdateany ofOptional
integerOptional
or
ddateany ofOptional
integerOptional
or
readersany ofOptional
string[]Optional
or
nonreadersany ofOptional
string[]Optional
or
signaturesstring[] · min: 1Required
chevron-right
default

Error

application/json
post
/tags
openreview.accessTokenstringRequired
Query parameters
idstring · min: 1Optional

Message id.

tostring · min: 1Optional

Email address of the recipient.

subjectstring · min: 1Optional

Subject of the Message.

parentGroupstring · min: 1Optional

Parent Group the recipient belongs to.

statusany ofOptional

Status of the message.

string · min: 1Optional
or
string[]Optional
tauthorstring · min: 1Optional

Email of the author of the message.

limitintegerOptional

Maximum number of results to return.

offsetintegerOptional

Offset of the result shown.

cachebooleanOptional

Get result from cache. Without the right privileges this parameter will be ignored.

Responses
chevron-right
200

message response

application/json
idstringOptional
deliveredbooleanOptional
cdateintegerOptional
tauthorstringOptional
referrerstring · nullableOptional
statusstringOptional
executedOnstringOptional
timestampintegerOptional
logsobject[]Optional
chevron-right
default

Error

application/json
get
/messages
Authorizations
openreview.accessTokenstringRequired
Body
subjectstringRequired

Subject of the message.

messagestringRequired

Message body.

groupsstring[] · min: 1Required

Groups the message is sent to.

ignoreGroupsstring[] · nullableOptional

Groups the message should not be sent to.

Default: []
parentGroupstring · nullableOptional

Parent group that the groups belong to.

sendAtinteger · nullableOptional

Send the message at a specific UTC time in milliseconds in the future. Maximum is 70 hours.

replyTostring · nullableOptional

Email address the recipient should replyto.

useJobboolean · nullableOptional

Whether to wait for messages to be sent.

Responses
chevron-right
200

message response

application/json
or
or
chevron-right
default

Error

application/json
post
/messages
POST /login HTTP/1.1
Host: api.openreview.net
Content-Type: application/json
Accept: */*
Content-Length: 45

{
  "id": "text",
  "password": "text",
  "expiresIn": 1
}
POST /register HTTP/1.1
Host: api.openreview.net
Content-Type: application/json
Accept: */*
Content-Length: 117

{
  "email": "text",
  "password": "text",
  "name": {
    "first": "text",
    "middle": "text",
    "last": "text",
    "preferred": true
  },
  "id": "text"
}
PUT /activate/{token} HTTP/1.1
Host: api.openreview.net
Content-Type: application/json
Accept: */*
Content-Length: 484

{
  "preferredEmail": "text",
  "gender": "text",
  "homepage": "text",
  "dblp": "text",
  "gscholar": "text",
  "wikipedia": "text",
  "linkedin": "text",
  "orcid": "text",
  "names": [
    {
      "preferred": true,
      "first": "text",
      "middle": "text",
      "last": "text",
      "username": "text"
    }
  ],
  "emails": [
    "text"
  ],
  "history": [
    {
      "position": "text",
      "institution": {
        "name": "text",
        "domain": "text"
      },
      "start": 1,
      "end": 1
    }
  ],
  "relations": [
    {
      "relation": "text",
      "name": "text",
      "email": "text",
      "start": 1,
      "end": 1
    }
  ],
  "expertise": [
    {
      "keywords": [
        "text"
      ],
      "start": 1,
      "end": 1
    }
  ]
}
{
  "id": "text",
  "tcdate": 1,
  "tmdate": 1,
  "tauthor": "text",
  "readers": [
    "text"
  ],
  "nonreaders": [
    "text"
  ],
  "writers": [
    "text"
  ],
  "signatories": [
    "text"
  ],
  "signatures": [
    "text"
  ],
  "members": [
    "text"
  ],
  "host": "text",
  "web": "text"
}
{
  "profile": {
    "id": "text",
    "active": true,
    "password": true,
    "invitation": "text",
    "content": {
      "preferredEmail": "text",
      "gender": "text",
      "homepage": "text",
      "dblp": "text",
      "gscholar": "text",
      "wikipedia": "text",
      "linkedin": "text",
      "orcid": "text",
      "names": [
        {
          "preferred": true,
          "first": "text",
          "middle": "text",
          "last": "text",
          "username": "text"
        }
      ],
      "emails": [
        "text"
      ],
      "history": [
        {
          "position": "text",
          "institution": {
            "name": "text",
            "domain": "text"
          },
          "start": 1,
          "end": 1
        }
      ],
      "relations": [
        {
          "relation": "text",
          "name": "text",
          "email": "text",
          "start": 1,
          "end": 1
        }
      ],
      "expertise": [
        {
          "keywords": [
            "text"
          ],
          "start": 1,
          "end": 1
        }
      ]
    },
    "metaContent": {},
    "tcdate": 1,
    "tmdate": 1,
    "tauthor": "text",
    "readers": [
      "text"
    ],
    "nonreaders": [
      "text"
    ],
    "writers": [
      "text"
    ],
    "signatures": [
      "text"
    ]
  },
  "activatable": {},
  "prefixed_positions": [],
  "prefixed_relations": [],
  "institutions": []
}
{
  "id": "text"
}
PUT /reset/{token} HTTP/1.1
Host: api.openreview.net
Content-Type: application/json
Accept: */*
Content-Length: 19

{
  "password": "text"
}
{}
{
  "id": "text",
  "tcdate": 1,
  "tmdate": 1,
  "tauthor": "text",
  "readers": [
    "text"
  ],
  "nonreaders": [
    "text"
  ],
  "writers": [
    "text"
  ],
  "signatories": [
    "text"
  ],
  "signatures": [
    "text"
  ],
  "members": [
    "text"
  ],
  "host": "text",
  "web": "text"
}
{
  "id": "text",
  "tcdate": 1,
  "tmdate": 1,
  "tauthor": "text",
  "readers": [
    "text"
  ],
  "nonreaders": [
    "text"
  ],
  "writers": [
    "text"
  ],
  "signatories": [
    "text"
  ],
  "signatures": [
    "text"
  ],
  "members": [
    "text"
  ],
  "host": "text",
  "web": "text"
}
POST /impersonate HTTP/1.1
Host: api.openreview.net
Content-Type: application/json
Accept: */*
Content-Length: 18

{
  "groupId": "text"
}
GET /tildeusername HTTP/1.1
Host: api.openreview.net
Accept: */*
{
  "username": "text"
}
{
  "alternate": "text"
}
GET /attachment?id=text&name=text HTTP/1.1
Host: api.openreview.net
Accept: */*
PUT /attachment HTTP/1.1
Host: api.openreview.net
Content-Type: multipart/form-data
Accept: */*
Content-Length: 53

{
  "file": "binary",
  "name": "text",
  "invitationId": "text"
}
PUT /attachment/chunk HTTP/1.1
Host: api.openreview.net
Content-Type: multipart/form-data
Accept: */*
Content-Length: 108

{
  "file": "binary",
  "name": "text",
  "invitationId": "text",
  "clientUploadId": "text",
  "chunkIndex": 1,
  "totalChunks": 1
}
GET /pdf/compare?noteId=text&leftId=text&rightId=text HTTP/1.1
Host: api.openreview.net
Accept: */*
POST /edges HTTP/1.1
Host: api.openreview.net
Content-Type: application/json
Accept: */*
Content-Length: 179

{
  "id": "text",
  "invitation": "text",
  "head": "text",
  "tail": "text",
  "label": "text",
  "weight": 1,
  "ddate": 1,
  "readers": [
    "text"
  ],
  "nonreaders": [
    "text"
  ],
  "writers": [
    "text"
  ],
  "signatures": [
    "text"
  ]
}
GET /edges/count HTTP/1.1
Host: api.openreview.net
Accept: */*
{
  "count": 1
}
POST /groups/edits HTTP/1.1
Host: api.openreview.net
Content-Type: application/json
Accept: */*
Content-Length: 406

{
  "id": "text",
  "invitation": "text",
  "tauthor": "text",
  "content": {},
  "cdate": 1,
  "ddate": 1,
  "mdate": 1,
  "readers": [
    "text"
  ],
  "nonreaders": [
    "text"
  ],
  "writers": [
    "text"
  ],
  "signatures": [
    "text"
  ],
  "replacement": true,
  "group": {
    "id": "text",
    "tcdate": 1,
    "tmdate": 1,
    "tauthor": "text",
    "readers": [
      "text"
    ],
    "nonreaders": [
      "text"
    ],
    "writers": [
      "text"
    ],
    "signatories": [
      "text"
    ],
    "signatures": [
      "text"
    ],
    "members": [
      "text"
    ],
    "host": "text",
    "web": "text"
  }
}
GET /notes/search HTTP/1.1
Host: api.openreview.net
Accept: */*
{
  "id": "text",
  "invitation": "text",
  "number": 1,
  "forum": "text",
  "replyto": "text",
  "content": {},
  "cdate": 1,
  "pdate": 1,
  "ddate": 1,
  "mdate": 1,
  "readers": [
    "text"
  ],
  "nonreaders": [
    "text"
  ],
  "writers": [
    "text"
  ],
  "signatures": [
    "text"
  ],
  "details": {
    "replyCount": 1,
    "writable": true,
    "revisions": true,
    "original": {},
    "overwritting": [
      "text"
    ],
    "forumContent": {},
    "tags": [],
    "invitation": {
      "id": "text",
      "edge": {
        "id": "text",
        "invitation": "text",
        "head": "text",
        "tail": "text",
        "label": "text",
        "weight": 1,
        "ddate": 1,
        "readers": [
          "text"
        ],
        "nonreaders": [
          "text"
        ],
        "writers": [
          "text"
        ],
        "signatures": [
          "text"
        ]
      },
      "tag": {
        "id": "text",
        "invitation": "text",
        "forum": "text",
        "replyto": "text",
        "tag": "text",
        "cdate": 1,
        "ddate": 1,
        "readers": [
          "text"
        ],
        "nonreaders": [
          "text"
        ],
        "signatures": [
          "text"
        ]
      },
      "edit": null,
      "cdate": 1,
      "ddate": 1,
      "duedate": 1,
      "expdate": 1,
      "details": {
        "writable": true,
        "replytoNote": {
          "id": "text",
          "invitation": "text",
          "number": 1,
          "forum": "text",
          "replyto": "text",
          "content": {},
          "cdate": 1,
          "pdate": 1,
          "ddate": 1,
          "mdate": 1,
          "readers": [
            "text"
          ],
          "nonreaders": [
            "text"
          ],
          "writers": [
            "text"
          ],
          "signatures": [
            "text"
          ],
          "details": {
            "replyCount": 1,
            "writable": true,
            "revisions": true,
            "original": {},
            "overwritting": [
              "text"
            ],
            "forumContent": {},
            "tags": [],
            "invitation": "[Circular Reference]",
            "directReplyCount": 1,
            "directReplies": [
              {}
            ],
            "replies": [
              {}
            ]
          }
        },
        "repliedNotes": [],
        "repliedEdits": [],
        "repliedTags": [],
        "withRepliedEdges": [],
        "withWritableWith": []
      },
      "maxReplies": 1,
      "minReplies": 1,
      "taskCompletionCount": 1,
      "replyForumViews": [
        {
          "id": "text",
          "label": "text",
          "filter": "text",
          "layout": 1,
          "sort": "text"
        }
      ],
      "preprocess": "text",
      "process": "text",
      "dateprocesses": [
        {
          "script": "text",
          "delay": 1
        }
      ],
      "web": "text",
      "readers": [
        "text"
      ],
      "nonreaders": [
        "text"
      ],
      "writers": [
        "text"
      ],
      "signatures": [
        "text"
      ],
      "invitees": [
        "text"
      ],
      "noninvitees": [
        "text"
      ]
    },
    "directReplyCount": 1,
    "directReplies": [
      {}
    ],
    "replies": [
      {}
    ]
  }
}
GET /tags HTTP/1.1
Host: api.openreview.net
Accept: */*
[]
POST /tags HTTP/1.1
Host: api.openreview.net
Content-Type: application/json
Accept: */*
Content-Length: 149

{
  "invitation": "ICLR.cc/2018/Conference/-/Add_Bid",
  "forum": "SJeI6e62XQ",
  "tag": "I want to review",
  "readers": [
    "everyone"
  ],
  "signatures": [
    "~Super_User1"
  ]
}
{
  "id": "text",
  "invitation": "text",
  "forum": "text",
  "replyto": "text",
  "tag": "text",
  "cdate": 1,
  "ddate": 1,
  "readers": [
    "text"
  ],
  "nonreaders": [
    "text"
  ],
  "signatures": [
    "text"
  ]
}
GET /messages HTTP/1.1
Host: api.openreview.net
Accept: */*
[]
POST /messages HTTP/1.1
Host: api.openreview.net
Content-Type: application/json
Accept: */*
Content-Length: 178

{
  "subject": "text",
  "message": "text",
  "groups": [
    "text"
  ],
  "ignoreGroups": [
    "text"
  ],
  "parentGroup": "text",
  "sendAt": 1,
  "replyTo": "text",
  "useJob": true,
  "from": {
    "name": "text",
    "email": "text"
  }
}
PUT /activatelink/{token} HTTP/1.1
Host: api.openreview.net
Accept: */*
GET /activatable/{token} HTTP/1.1
Host: api.openreview.net
Accept: */*
POST /activatable HTTP/1.1
Host: api.openreview.net
Content-Type: application/json
Accept: */*
Content-Length: 13

{
  "id": "text"
}
POST /logout HTTP/1.1
Host: api.openreview.net
Accept: */*
GET /resettable/{token} HTTP/1.1
Host: api.openreview.net
Accept: */*
POST /resettable HTTP/1.1
Host: api.openreview.net
Content-Type: application/json
Accept: */*
Content-Length: 13

{
  "id": "text"
}
POST /user/confirm HTTP/1.1
Host: api.openreview.net
Content-Type: application/json
Accept: */*
Content-Length: 38

{
  "username": "text",
  "alternate": "text"
}
GET /pdf?id=text HTTP/1.1
Host: api.openreview.net
Accept: */*
GET /pdf/{id} HTTP/1.1
Host: api.openreview.net
Accept: */*
GET /references/attachment?id=text&name=text HTTP/1.1
Host: api.openreview.net
Accept: */*

API V2

200

Profile response

{
  "id": "text",
  "active": true,
  "password": true,
  "invitation": "text",
  "content": {
    "preferredEmail": "text",
    "gender": "text",
    "homepage": "text",
    "dblp": "text",
    "gscholar": "text",
    "wikipedia": "text",
    "linkedin": "text",
    "orcid": "text",
    "names": [
      {
        "preferred": true,
        "first": "text",
        "middle": "text",
        "last": "text",
        "username": "text"
      }
    ],
    "emails": [
      "text"
    ],
    "history": [
      {
        "position": "text",
        "institution": {
          "name": "text",
          "domain": "text"
        },
        "start": 1,
        "end": 1
      }
    ],
    "relations": [
      {
        "relation": "text",
        "name": "text",
        "email": "text",
        "start": 1,
        "end": 1
      }
    ],
    "expertise": [
      {
        "keywords": [
          "text"
        ],
        "start": 1,
        "end": 1
      }
    ]
  },
  "metaContent": {},
  "tcdate": 1,
  "tmdate": 1,
  "tauthor": "text",
  "readers": [
    "text"
  ],
  "nonreaders": [
    "text"
  ],
  "writers": [
    "text"
  ],
  "signatures": [
    "text"
  ]
}
{
  "id": "text",
  "invitation": "text",
  "tauthor": "text",
  "content": {},
  "cdate": 1,
  "ddate": 1,
  "mdate": 1,
  "readers": [
    "text"
  ],
  "nonreaders": [
    "text"
  ],
  "writers": [
    "text"
  ],
  "signatures": [
    "text"
  ],
  "replacement": true,
  "note": {
    "id": "text",
    "forum": "text",
    "replyto": "text",
    "content": {},
    "cdate": 1,
    "pdate": 1,
    "ddate": 1,
    "mdate": 1,
    "readers": [
      "text"
    ],
    "nonreaders": [
      "text"
    ],
    "writers": [
      "text"
    ],
    "signatures": [
      "text"
    ]
  }
}
{
  "id": "text",
  "invitations": "text",
  "replacement": true,
  "content": {},
  "invitation": {
    "id": "text",
    "edge": {
      "id": "text",
      "invitation": "text",
      "head": "text",
      "tail": "text",
      "label": "text",
      "weight": 1,
      "ddate": 1,
      "readers": [
        "text"
      ],
      "nonreaders": [
        "text"
      ],
      "writers": [
        "text"
      ],
      "signatures": [
        "text"
      ]
    },
    "tag": {
      "id": "text",
      "invitation": "text",
      "forum": "text",
      "replyto": "text",
      "tag": "text",
      "cdate": 1,
      "ddate": 1,
      "readers": [
        "text"
      ],
      "nonreaders": [
        "text"
      ],
      "signatures": [
        "text"
      ]
    },
    "edit": {
      "id": "text",
      "invitations": "text",
      "replacement": true,
      "content": {},
      "invitation": {
        "id": "text",
        "edge": {
          "id": "text",
          "invitation": "text",
          "head": "text",
          "tail": "text",
          "label": "text",
          "weight": 1,
          "ddate": 1,
          "readers": [
            "text"
          ],
          "nonreaders": [
            "text"
          ],
          "writers": [
            "text"
          ],
          "signatures": [
            "text"
          ]
        },
        "tag": {
          "id": "text",
          "invitation": "text",
          "forum": "text",
          "replyto": "text",
          "tag": "text",
          "cdate": 1,
          "ddate": 1,
          "readers": [
            "text"
          ],
          "nonreaders": [
            "text"
          ],
          "signatures": [
            "text"
          ]
        },
        "edit": "[Circular Reference]",
        "bulk": true,
        "content": {},
        "cdate": 1,
        "ddate": 1,
        "duedate": 1,
        "expdate": 1,
        "maxReplies": 1,
        "minReplies": 1,
        "taskCompletionCount": 1,
        "replyForumViews": [
          {
            "id": "text",
            "label": "text",
            "filter": "text",
            "layout": 1,
            "sort": "text"
          }
        ],
        "preprocess": "text",
        "process": "text",
        "dateprocesses": [
          {
            "script": "text",
            "delay": 1
          }
        ],
        "web": "text",
        "readers": [
          "text"
        ],
        "nonreaders": [
          "text"
        ],
        "writers": [
          "text"
        ],
        "signatures": [
          "text"
        ],
        "invitees": [
          "text"
        ],
        "noninvitees": [
          "text"
        ]
      },
      "cdate": 1,
      "readers": [
        "text"
      ],
      "nonreaders": [
        "text"
      ],
      "writers": [
        "text"
      ],
      "signatures": [
        "text"
      ]
    },
    "bulk": true,
    "content": {},
    "cdate": 1,
    "ddate": 1,
    "duedate": 1,
    "expdate": 1,
    "maxReplies": 1,
    "minReplies": 1,
    "taskCompletionCount": 1,
    "replyForumViews": [
      {
        "id": "text",
        "label": "text",
        "filter": "text",
        "layout": 1,
        "sort": "text"
      }
    ],
    "preprocess": "text",
    "process": "text",
    "dateprocesses": [
      {
        "script": "text",
        "delay": 1
      }
    ],
    "web": "text",
    "readers": [
      "text"
    ],
    "nonreaders": [
      "text"
    ],
    "writers": [
      "text"
    ],
    "signatures": [
      "text"
    ],
    "invitees": [
      "text"
    ],
    "noninvitees": [
      "text"
    ]
  },
  "cdate": 1,
  "readers": [
    "text"
  ],
  "nonreaders": [
    "text"
  ],
  "writers": [
    "text"
  ],
  "signatures": [
    "text"
  ]
}
{
  "token": "text",
  "user": {
    "id": "text",
    "profile": {
      "id": "text",
      "first": "text",
      "middle": "text",
      "last": "text",
      "emails": [
        "text"
      ],
      "preferredEmail": "text",
      "usernames": [
        "text"
      ],
      "preferredId": "text"
    }
  }
}
{
  "id": "text",
  "active": true,
  "password": true,
  "invitation": "text",
  "content": {
    "preferredEmail": "text",
    "gender": "text",
    "homepage": "text",
    "dblp": "text",
    "gscholar": "text",
    "wikipedia": "text",
    "linkedin": "text",
    "orcid": "text",
    "names": [
      {
        "preferred": true,
        "first": "text",
        "middle": "text",
        "last": "text",
        "username": "text"
      }
    ],
    "emails": [
      "text"
    ],
    "history": [
      {
        "position": "text",
        "institution": {
          "name": "text",
          "domain": "text"
        },
        "start": 1,
        "end": 1
      }
    ],
    "relations": [
      {
        "relation": "text",
        "name": "text",
        "email": "text",
        "start": 1,
        "end": 1
      }
    ],
    "expertise": [
      {
        "keywords": [
          "text"
        ],
        "start": 1,
        "end": 1
      }
    ]
  },
  "metaContent": {},
  "tcdate": 1,
  "tmdate": 1,
  "tauthor": "text",
  "readers": [
    "text"
  ],
  "nonreaders": [
    "text"
  ],
  "writers": [
    "text"
  ],
  "signatures": [
    "text"
  ]
}
{
  "token": "text",
  "user": {
    "id": "text",
    "active": true,
    "password": true,
    "invitation": "text",
    "content": {
      "preferredEmail": "text",
      "gender": "text",
      "homepage": "text",
      "dblp": "text",
      "gscholar": "text",
      "wikipedia": "text",
      "linkedin": "text",
      "orcid": "text",
      "names": [
        {
          "preferred": true,
          "first": "text",
          "middle": "text",
          "last": "text",
          "username": "text"
        }
      ],
      "emails": [
        "text"
      ],
      "history": [
        {
          "position": "text",
          "institution": {
            "name": "text",
            "domain": "text"
          },
          "start": 1,
          "end": 1
        }
      ],
      "relations": [
        {
          "relation": "text",
          "name": "text",
          "email": "text",
          "start": 1,
          "end": 1
        }
      ],
      "expertise": [
        {
          "keywords": [
            "text"
          ],
          "start": 1,
          "end": 1
        }
      ]
    },
    "metaContent": {},
    "tcdate": 1,
    "tmdate": 1,
    "tauthor": "text",
    "readers": [
      "text"
    ],
    "nonreaders": [
      "text"
    ],
    "writers": [
      "text"
    ],
    "signatures": [
      "text"
    ]
  }
}
{
  "token": "text",
  "user": {
    "id": "text",
    "profile": {
      "id": "text",
      "first": "text",
      "middle": "text",
      "last": "text",
      "emails": [
        "text"
      ],
      "preferredEmail": "text",
      "usernames": [
        "text"
      ],
      "preferredId": "text"
    }
  }
}
{
  "token": "text",
  "user": {
    "id": "text",
    "profile": {
      "id": "text",
      "first": "text",
      "middle": "text",
      "last": "text",
      "emails": [
        "text"
      ],
      "preferredEmail": "text",
      "usernames": [
        "text"
      ],
      "preferredId": "text"
    },
    "impersonator": {
      "id": "text",
      "first": "text",
      "middle": "text",
      "last": "text",
      "emails": [
        "text"
      ],
      "preferredEmail": "text",
      "usernames": [
        "text"
      ],
      "preferredId": "text"
    },
    "disallowDataModification": true,
    "impersonatables": [
      "text"
    ]
  }
}
{
  "url": "text"
}
{
  "url": "text"
}
GET /edges HTTP/1.1
Host: api.openreview.net
Accept: */*
[]
{
  "id": "text",
  "invitation": "text",
  "head": "text",
  "tail": "text",
  "label": "text",
  "weight": 1,
  "ddate": 1,
  "readers": [
    "text"
  ],
  "nonreaders": [
    "text"
  ],
  "writers": [
    "text"
  ],
  "signatures": [
    "text"
  ]
}
GET /profiles HTTP/1.1
Host: api.openreview.net
Accept: */*
[]
POST /profiles HTTP/1.1
Host: api.openreview.net
Content-Type: application/json
Accept: */*
Content-Length: 1886

{
  "id": "text",
  "invitation": "text",
  "referent": "text",
  "tcdate": 1,
  "tmdate": 1,
  "ddate": 1,
  "packaging": {},
  "active": true,
  "password": true,
  "tauthor": "text",
  "state": "Active",
  "content": {
    "preferredEmail": "text",
    "gender": "text",
    "yearOfBirth": 1,
    "homepage": "text",
    "dblp": "text",
    "gscholar": "text",
    "wikipedia": "text",
    "linkedin": "text",
    "orcid": "text",
    "semanticScholar": "text",
    "names": [
      {
        "preferred": true,
        "first": "text",
        "middle": "text",
        "last": "text",
        "username": "text"
      }
    ],
    "emails": [
      "text"
    ],
    "emailsConfirmed": [
      "text"
    ],
    "history": [
      {
        "position": "text",
        "institution": {
          "name": "text",
          "domain": "text"
        },
        "start": 1,
        "end": 1
      }
    ],
    "relations": [
      {
        "relation": "text",
        "name": "text",
        "email": "text",
        "start": 1,
        "end": 1,
        "readers": [
          "text"
        ]
      }
    ],
    "expertise": [
      {
        "keywords": [
          "text"
        ],
        "start": 1,
        "end": 1
      }
    ]
  },
  "metaContent": {
    "preferredEmail": {
      "values": [
        "text"
      ],
      "weights": [
        1
      ],
      "signatures": [
        "text"
      ]
    },
    "gender": {
      "values": [
        "text"
      ],
      "weights": [
        1
      ],
      "signatures": [
        "text"
      ]
    },
    "yearOfBirth": {
      "values": [
        1
      ],
      "weights": [
        1
      ],
      "signatures": [
        "text"
      ]
    },
    "homepage": {
      "values": [
        "text"
      ],
      "weights": [
        1
      ],
      "signatures": [
        "text"
      ]
    },
    "dblp": {
      "values": [
        "text"
      ],
      "weights": [
        1
      ],
      "signatures": [
        "text"
      ]
    },
    "gscholar": {
      "values": [
        "text"
      ],
      "weights": [
        1
      ],
      "signatures": [
        "text"
      ]
    },
    "wikipedia": {
      "values": [
        "text"
      ],
      "weights": [
        1
      ],
      "signatures": [
        "text"
      ]
    },
    "linkedin": {
      "values": [
        "text"
      ],
      "weights": [
        1
      ],
      "signatures": [
        "text"
      ]
    },
    "orcid": {
      "values": [
        "text"
      ],
      "weights": [
        1
      ],
      "signatures": [
        "text"
      ]
    },
    "semanticScholar": {
      "values": [
        "text"
      ],
      "weights": [
        1
      ],
      "signatures": [
        "text"
      ]
    },
    "names": {
      "values": [
        {
          "first": "text",
          "middle": "text",
          "last": "text",
          "username": "text",
          "preferred": true
        }
      ],
      "weights": [
        1
      ]
    },
    "emails": {
      "values": [
        "text"
      ],
      "weights": [
        1
      ]
    },
    "history": [
      {
        "values": [
          {}
        ],
        "weights": [
          1
        ]
      }
    ],
    "relations": {
      "values": [
        {
          "name": "text",
          "email": "text",
          "relation": "text",
          "start": 1,
          "end": 1,
          "readers": [
            "text"
          ]
        }
      ],
      "weights": [
        1
      ]
    },
    "expertise": [
      {
        "values": [
          {}
        ],
        "weights": [
          1
        ]
      }
    ]
  },
  "readers": [
    "text"
  ],
  "nonreaders": [
    "text"
  ],
  "writers": [
    "text"
  ],
  "signatures": [
    "text"
  ]
}
GET /profiles/search HTTP/1.1
Host: api.openreview.net
Accept: */*
[]
GET /groups HTTP/1.1
Host: api.openreview.net
Accept: */*
[]
GET /groups/edits HTTP/1.1
Host: api.openreview.net
Accept: */*
[]
{
  "id": "text",
  "invitation": "text",
  "tauthor": "text",
  "content": {},
  "cdate": 1,
  "ddate": 1,
  "mdate": 1,
  "readers": [
    "text"
  ],
  "nonreaders": [
    "text"
  ],
  "writers": [
    "text"
  ],
  "signatures": [
    "text"
  ],
  "replacement": true,
  "group": {
    "id": "text",
    "tcdate": 1,
    "tmdate": 1,
    "tauthor": "text",
    "readers": [
      "text"
    ],
    "nonreaders": [
      "text"
    ],
    "writers": [
      "text"
    ],
    "signatories": [
      "text"
    ],
    "signatures": [
      "text"
    ],
    "members": [
      "text"
    ],
    "host": "text",
    "web": "text"
  }
}
GET /notes/edits HTTP/1.1
Host: api.openreview.net
Accept: */*
[]
POST /notes/edits HTTP/1.1
Host: api.openreview.net
Content-Type: application/json
Accept: */*
Content-Length: 382

{
  "id": "text",
  "invitation": "text",
  "tauthor": "text",
  "content": {},
  "cdate": 1,
  "ddate": 1,
  "mdate": 1,
  "readers": [
    "text"
  ],
  "nonreaders": [
    "text"
  ],
  "writers": [
    "text"
  ],
  "signatures": [
    "text"
  ],
  "replacement": true,
  "note": {
    "id": "text",
    "forum": "text",
    "replyto": "text",
    "content": {},
    "cdate": 1,
    "pdate": 1,
    "ddate": 1,
    "mdate": 1,
    "readers": [
      "text"
    ],
    "nonreaders": [
      "text"
    ],
    "writers": [
      "text"
    ],
    "signatures": [
      "text"
    ]
  }
}
GET /notes HTTP/1.1
Host: api.openreview.net
Accept: */*
[]
GET /invitations/edits HTTP/1.1
Host: api.openreview.net
Accept: */*
[]
POST /invitations/edits HTTP/1.1
Host: api.openreview.net
Content-Type: application/json
Accept: */*
Content-Length: 1986

{
  "id": "text",
  "invitations": "text",
  "replacement": true,
  "content": {},
  "invitation": {
    "id": "text",
    "edge": {
      "id": "text",
      "invitation": "text",
      "head": "text",
      "tail": "text",
      "label": "text",
      "weight": 1,
      "ddate": 1,
      "readers": [
        "text"
      ],
      "nonreaders": [
        "text"
      ],
      "writers": [
        "text"
      ],
      "signatures": [
        "text"
      ]
    },
    "tag": {
      "id": "text",
      "invitation": "text",
      "forum": "text",
      "replyto": "text",
      "tag": "text",
      "cdate": 1,
      "ddate": 1,
      "readers": [
        "text"
      ],
      "nonreaders": [
        "text"
      ],
      "signatures": [
        "text"
      ]
    },
    "edit": {
      "id": "text",
      "invitations": "text",
      "replacement": true,
      "content": {},
      "invitation": {
        "id": "text",
        "edge": {
          "id": "text",
          "invitation": "text",
          "head": "text",
          "tail": "text",
          "label": "text",
          "weight": 1,
          "ddate": 1,
          "readers": [
            "text"
          ],
          "nonreaders": [
            "text"
          ],
          "writers": [
            "text"
          ],
          "signatures": [
            "text"
          ]
        },
        "tag": {
          "id": "text",
          "invitation": "text",
          "forum": "text",
          "replyto": "text",
          "tag": "text",
          "cdate": 1,
          "ddate": 1,
          "readers": [
            "text"
          ],
          "nonreaders": [
            "text"
          ],
          "signatures": [
            "text"
          ]
        },
        "edit": "[Circular Reference]",
        "bulk": true,
        "content": {},
        "cdate": 1,
        "ddate": 1,
        "duedate": 1,
        "expdate": 1,
        "maxReplies": 1,
        "minReplies": 1,
        "taskCompletionCount": 1,
        "replyForumViews": [
          {
            "id": "text",
            "label": "text",
            "filter": "text",
            "layout": 1,
            "sort": "text"
          }
        ],
        "preprocess": "text",
        "process": "text",
        "dateprocesses": [
          {
            "script": "text",
            "delay": 1
          }
        ],
        "web": "text",
        "readers": [
          "text"
        ],
        "nonreaders": [
          "text"
        ],
        "writers": [
          "text"
        ],
        "signatures": [
          "text"
        ],
        "invitees": [
          "text"
        ],
        "noninvitees": [
          "text"
        ]
      },
      "cdate": 1,
      "readers": [
        "text"
      ],
      "nonreaders": [
        "text"
      ],
      "writers": [
        "text"
      ],
      "signatures": [
        "text"
      ]
    },
    "bulk": true,
    "content": {},
    "cdate": 1,
    "ddate": 1,
    "duedate": 1,
    "expdate": 1,
    "maxReplies": 1,
    "minReplies": 1,
    "taskCompletionCount": 1,
    "replyForumViews": [
      {
        "id": "text",
        "label": "text",
        "filter": "text",
        "layout": 1,
        "sort": "text"
      }
    ],
    "preprocess": "text",
    "process": "text",
    "dateprocesses": [
      {
        "script": "text",
        "delay": 1
      }
    ],
    "web": "text",
    "readers": [
      "text"
    ],
    "nonreaders": [
      "text"
    ],
    "writers": [
      "text"
    ],
    "signatures": [
      "text"
    ],
    "invitees": [
      "text"
    ],
    "noninvitees": [
      "text"
    ]
  },
  "cdate": 1,
  "readers": [
    "text"
  ],
  "nonreaders": [
    "text"
  ],
  "writers": [
    "text"
  ],
  "signatures": [
    "text"
  ]
}
GET /invitations HTTP/1.1
Host: api.openreview.net
Accept: */*
[]
{
  "groups": {
    "id": "text",
    "message": {
      "id": "text",
      "delivered": true,
      "cdate": 1,
      "tauthor": "text",
      "referrer": "text",
      "status": "text",
      "executedOn": "text",
      "timestamp": 1,
      "content": {
        "from": "text",
        "fromname": "text",
        "to": "text",
        "replyto": "text",
        "subject": "text",
        "text": "text",
        "sendAt": 1
      },
      "logs": [
        {}
      ]
    }
  }
}

Types and Structure

The fields of an Invitation vary depending on the object that will be created with it. There are 6 different types of invitations:

  • Meta Invitations

  • Invitations for Edges

hashtag
Meta Invitations

Meta Invitations are admin Invitations which are created when the venue is deployed and are available to venue organizers. There is only 1 available per venue and should be used with care and sparingly. Meta Invitations can modify any object in the system that is associated to the venue. Therefore, before using the Meta Invitation, make sure there is no other Invitation that can be used instead. Using an Invitation other than the Meta Invitation is preferred to avoid errors when modifying an object.

circle-info

There is only 1 available per venue and should be used with care and sparingly.

circle-info

Meta Invitations can modify any object in the system that is associated to the venue.

Meta Invitations have the structure shown below. They can be identified because of the property edit: true inside the invitation field.

hashtag
Invitations for Edges

Edge Invitations are used to create Edges and contain the edge field that defines the template for the Edges. This means that when creating an Edge object with the Invitation below, the rules and structure defined inside the edge field will need to be followed.

circle-exclamation

Do NOT copy the values from this example in your venue. This example is a simplified version of an Edge Invitation and it is only used to understand its structure.

hashtag
Invitations for Tags

Tag Invitations are used to create Tags and contain the tag field that defines the template for the Tags. This means that when creating a Tag object with the Invitation below, the rules defined and structure inside the tag field will need to be followed.

circle-exclamation

Do NOT copy the values from this example in your venue. This example is a simplified version of a Tag Invitation and it is only used to understand its structure.

hashtag
Invitations for Group Edits

Group Edit Invitations are used to create Group Edits and contain the edit field that defines the template for the Group Edits. This means that when creating a Group Edit object with the Invitation below, the rules and structure defined inside the edit field will need to be followed.

circle-exclamation

Do NOT copy the values from this example in your venue. This example is a simplified version of a Group Edit Invitation and it is only used to understand its structure.

hashtag
Invitations for Note Edits

Note Edit Invitations are used to create Note Edits and contain the edit field that defines the template for the Note Edits. This means that when creating a Note Edit object with the Invitation below, the rules and structure defined inside the edit field will need to be followed.

circle-exclamation

Do NOT copy the values from this example in your venue. This example is a simplified version of a Note Edit Invitation and it is only used to understand its structure.

hashtag
Invitations for Invitation Edits

Invitation Edit Invitations are used to create Invitation Edits and contain the edit field that defines the template for the Invitation Edits. This means that when creating an Invitation Edit object with the Invitation below, the rules and structure defined inside the edit field will need to be followed.

Invitations that are used to create Invitation Edits are the most complex ones. Theoretically, they can have any depth, but you will probably hit restrictions if you try to create a very big Invitation.

circle-exclamation

Do NOT copy the values from this example in your venue. This example is a simplified version of an Invitation Edit Invitation and it is only used to understand its structure.

Invitations for Tags
Invitations for Group Edits
Invitations for Note Edits
Invitations for Invitation Edits
{
  writers: [ "OpenReview.net/Venue_Organizers" ],
  readers: [ "OpenReview.net/Venue_Organizers" ],
  signatures: [ "OpenReview.net" ],
  invitation: {
    id: "OpenReview.net/Venue_Organizers/-/Edit",
    signatures: [ "OpenReview.net" ],
    writers: [ "OpenReview.net" ],
    invitees: [ "OpenReview.net/Venue_Organizers" ],
    readers: [ "OpenReview.net/Venue_Organizers" ],
    edit: true
  }
}
{
  id: "OpenReview.net/Venue_Organizers/-/Bid",
  readers: [ "everyone" ],
  invitees: [ "OpenReview.net/Reviewers" ],
  writers: [ "OpenReview.net/Venue_Organizers" ],
  signatures: [ "OpenReview.net/Venue_Organizers" ],
  edge: {
    id: {
      param: {
        withInvitation: "OpenReview.net/Venue_Organizers/-/Bid",
        optional: true
      }
    },
    readers: { param: { regex: "~.*" } },
    writers: { param: { regex: "~.*" } },
    signatures: { param: { regex: "~.*" } },
    head: { param: { type: "note" } },
    tail: { param: { type: "profile" } },
    label: { param: { regex: ".*" } }
  }
}
{
  id: "OpenReview.net/Venue_Organizers/-/Tag",
  signatures: [ "OpenReview.net/Venue_Organizers" ],
  writers: [ "OpenReview.net/Venue_Organizers" ],
  invitees: [ "~" ],
  readers: [ "everyone" ],
  tag: {
    readers: [ "everyone" ],
    signatures: { param: { regex: ".+" } },
    writers: { param: { regex: ".+" } },
    nonreaders: { param: { regex: ".*", optional: true } },
    tag: { param: { minLength: 1, maxLength: 100 } }
  }
}
{
  id: "OpenReview.net/Venue_Organizers/-/Group",
  signatures: [ "OpenReview.net/Venue_Organizers" ],
  writers: [ "OpenReview.net/Venue_Organizers" ],
  invitees: [ "OpenReview.net/Venue_Organizers" ],
  readers: [ "OpenReview.net/Venue_Organizers" ],
  edit: {
    readers: [ "OpenReview.net/Venue_Organizers" ],
    signatures: { param: { regex: ".+" } },
    writers: { param: { regex: ".*" } },
    group: {
      id: "OpenReview.net/Reviewers",
      readers: [ "OpenReview.net/Venue_Organizers" ],
      signatures: { param: { regex: ".+" } },
      signatories: { param: { regex: ".+", optional: true } },
      writers: { param: { regex: ".*" } },
      members: { param: { regex: ".*", optional: true } }
    }
  }
}
{
  id: "OpenReview.net/Venue_Organizers/-/Note",
  signatures: [ "OpenReview.net/Venue_Organizers" ],
  writers: [ "OpenReview.net/Venue_Organizers" ],
  invitees: [ "~" ],
  readers: [ "everyone" ],
  edit: {
    readers: [ "everyone" ],
    signatures: { param: { regex: ".+" } },
    writers: { param: { regex: ".*" } },
    note: {
      readers: [ "everyone" ],
      signatures: { param: { regex: ".+" } },
      writers: { param: { regex: ".*" } },
      content: {
        title: {
          value: { param: { regex: ".*" } }
        }
      }
    }
  }
}
{
  id: "OpenReview.net/Venue_Organizers/-/Invitation",
  signatures: [ "OpenReview.net/Venue_Organizers" ],
  writers: [ "OpenReview.net/Venue_Organizers" ],
  invitees: [ "~" ],
  readers: [ "everyone" ],
  edit: {
    signatures: { param: { regex: ".+" } },
    content: {
      title: { value: { param: { type: "string", regex: ".*" } } },
      duedate: { value: { param: { type: "integer"  } } }
    },
    readers: [ "OpenReview.net/Venue_Organizers", "${2/signatures}" ],
    writers: [ "OpenReview.net/Venue_Organizers" ],
    invitation: {
      id: "OpenReview.net/-/Submission",
      signatures: [ "${3/signatures}" ],
      readers: [ "~" ],
      writers: [ "OpenReview.net/Venue_Organizers", "${3/signatures}" ],
      invitees: [ "${3/content/invitees/value}" ],
      duedate: "${2/content/duedate/value}",
      content: {
        optional: { value: { param: { type: "string", optional: true } } }
      },
      edit: {
        signatures: { param: { regex: ".*" } },
        readers: [ "OpenReview.net/Venue_Organizers", "${2/signatures}" ],
        writers: [ "OpenReview.net/Venue_Organizers", "${2/signatures}" ],
        note: {
          signatures: [ "${3/signatures}" ],
          readers: [ "OpenReview.net/Venue_Organizers", "${3/signatures}" ],
          writers: [ "OpenReview.net/Venue_Organizers", "${3/signatures}" ],
          content: {
            title: {
              value: {
                param: {
                  type: "string",
                  regex: "${8/content/title/value}"
                }
              }
            },
            authors: {
              value: { param: { type: "string[]", regex: ".*", optional: true } },
              readers: [ "OpenReview.net/Venue_Organizers", "${5/signatures}" ]
            },
            authorids: {
              value: { param: { type: "group[]", regex: ".*", optional: true } },
              readers: [ "OpenReview.net/Venue_Organizers", "${5/signatures}" ]
            }
          }
        }
      }
    }
  }
}

Inference

The process of inference combines Edits to create an entity before saving it to the database. In other words, entities such as Invitations, Groups or Notes cannot be created directly, they need to be created through Edits and the process of inference.

Edits are sorted in a fixed chronological order using the tcdate field during inference. Since the tcdate value can never be modified, Edits can never change their position in the history of changes. However, the history of changes can be modified by destructively changing an Edit. This is only possible if the user has writer permissions on the Edit.

The process of inference can add, remove and replace fields as long as the Invitation used to create the Edit allows it. To illustrate this, we will focus on inference used to create Notes, however, the same rules apply to Invitations and Groups.

For the following examples, assume that the following is used:

hashtag
Creating Notes

Suppose the following Note Edit is created:

Since this is the first an only Edit the resulting Note will only contain the fields and values inside the note field of the Edit.

You may have noticed the fields id, invitations and domain that were not included in the Edit but still appear after the inference runs. These fields are set automatically and cannot be manually modified. The invitations field shows all the different Invitations that have contributed to the modification of the Note. The field domain shows the venue that the Note belongs to and it is present in every single object created.

hashtag
Adding Fields

Let's say that we now want to add the field abstract to the Note. We can create a new Note Edit:

Notice that we now pass the field note.id to the Edit. This indicates what Note we want to modify. The resulting Note will then contain the abstract field:

hashtag
Replacing Field Values

Values can be overwritten by passing the same field with a new value. For example, if we want to update the abstract field that we just added, we can create the following Note Edit

The resulting Note will look like this:

hashtag
Removing Fields

In order to remove a field from a Note, we can pass the object { delete: true } as value to the field.

The resulting Note will look like this:

The resulting Note will look exactly the same as the first Note that was created from the first Edit. The difference is that we can see the history of changes by querying the Edits associated to the Note.

hashtag
Destructive Changes

Edits can be modified directly and alter the history of changes. This can achieved by passing the id of the Edit that we want to modify like so:

hashtag
Replacement

The field replacement can be used when we want to restart the history of changes. In other words, Edits created before the one that contains replacement: true will be ignored during inference. The ignored Edits will still exist but will not be considered for the resulting values of the entity. Consider the following Edit:

The resulting Note looks like this:

As you can see, the Edit containing the replacement: true is considered to be the first Edit during inference. If a subsequent Edit contains replacement: true then that Edit will considered to be the first Edit and the previous Edits will be ignored.

Specifiers

There are two types of specifiers: Validation Specifiers and Representation Specifiers.

Both specifiers are defined inside the param field. The Representation Specifiers define how the requested data will be rendered in the UI.

Validation Specifiers define valid values that can be assigned to the fields of the objects (Edits, Edges, Tags) that will be created using the Invitation. Most Validation Specifiers outside content do not require a type field since its type can be inferred from the field name. For instance, the readers field will always be of type group[]. However, other Validation Specifiers need to be defined for the readers field, such as regex.

circle-info
Invitation

{
  id: 'OpenReview.net/Conference/-/Submission',
  signatures: [ 'OpenReview.net' ],
  writers: [ 'OpenReview.net' ],
  invitees: [ '~' ],
  readers: [ 'everyone' ],
  domain: 'OpenReview.net/Conference'
  edit : {
    signatures: { param: { regex: '.+' } },
    readers: [ 'OpenReview.net/Conference', '${2/signatures}' ],
    writers: [ 'OpenReview.net/Conference' ],
    replacement: { param: { 'enum': [ true, false ], optional: true } },
    note: {
      id: {
        param: {
          withInvitation: 'OpenReview.net/Conference/-/Submission',
          optional: true
        }
      },
      signatures: [ '${3/signatures} ],
      readers: [ 'everyone' ],
      writers: [ 'OpenReview.net/Conference', '${3/signatures}' ],
      content: {
        title: {
          value: {
            param: {
              type: 'string',
              optional: true
            }
          }
        },
        abstract: {
          value: {
            param: {
              type: 'string',
              optional: true,
              deletable: true
            }
          }
        },
        authors: {
          value: { param: { type: 'string[]', minLength: 1, optional: true } },
          readers: [ 'OpenReview.net/Conference', '${5/signatures}' ]
        },
        authorids: {
          value: { param: { type: 'group[]', regex: '^~.+', optional: true } },
          readers: [ 'OpenReview.net/Conference', '${5/signatures}' ]
        }
      }
    }
  }
}
{
  invitation: 'OpenReview.net/Conference/-/Submission',
  signatures: [ '~Author_One1' ],
  readers: [ 'OpenReview.net/Conference', '~Author_One1' ],
  writers: [ 'OpenReview.net/Conference' ],
  domain: 'OpenReview.net/Conference'
  note: {
    signatures: [ '~Author_One1' ],
    readers: [ 'everyone' ],
    writers: [ 'OpenReview.net/Conference', '~Author_One1' ],
    content: {
      title: {
        value: 'Title'
      },
      authors: {
        value: [ 'Author One' ],
        readers: [ 'OpenReview.net/Conference', '~Author_One1' ]
      },
      authorids: {
        value: [ '~Author_One1' ],
        readers: [ 'OpenReview.net/Conference', '~Author_One1' ]
      }
    }
  }
}
{
  id: 'mIcD4PJBaU'
  invitations: [ 'OpenReview.net/Conference/-/Submission' ],
  signatures: [ '~Author_One1' ],
  readers: [ 'everyone' ],
  writers: [ 'OpenReview.net/Conference', '~Author_One1' ],
  domain: 'OpenReview.net/Conference',
  content: {
    title: {
      value: 'Title'
    },
    authors: {
      value: [ 'Author One' ],
      readers: [ 'OpenReview.net/Conference', '~Author_One1' ]
    },
    authorids: {
      value: [ '~Author_One1' ],
      readers: [ 'OpenReview.net/Conference', '~Author_One1' ]
    }
  }
}
{
  invitation: 'OpenReview.net/Conference/-/Submission',
  signatures: [ '~Author_One1' ],
  readers: [ 'OpenReview.net/Conference', '~Author_One1' ],
  writers: [ 'OpenReview.net/Conference' ],
  domain: 'OpenReview.net/Conference',
  note: {
    id: 'mIcD4PJBaU',
    signatures: [ '~Author_One1' ],
    readers: [ 'everyone' ],
    writers: [ 'OpenReview.net/Conference', '~Author_One1' ],
    content: {
      abstract: {
        value: 'Abstract'
      }
    }
  }
}
{
  id: 'mIcD4PJBaU'
  invitations: [ 'OpenReview.net/Conference/-/Submission' ],
  signatures: [ '~Author_One1' ],
  readers: [ 'everyone' ],
  writers: [ 'OpenReview.net/Conference', '~Author_One1' ],
  domain: 'OpenReview.net/Conference',
  content: {
    title: {
      value: 'Title'
    },
    abstract: {
      value: 'Abstract'
    },
    authors: {
      value: [ 'Author One' ],
      readers: [ 'OpenReview.net/Conference', '~Author_One1' ]
    },
    authorids: {
      value: [ '~Author_One1' ],
      readers: [ 'OpenReview.net/Conference', '~Author_One1' ]
    }
  }
}
{
  invitation: 'OpenReview.net/Conference/-/Submission',
  signatures: [ '~Author_One1' ],
  readers: [ 'OpenReview.net/Conference', '~Author_One1' ],
  writers: [ 'OpenReview.net/Conference' ],
  domain: 'OpenReview.net/Conference',
  note: {
    id: 'mIcD4PJBaU',
    signatures: [ '~Author_One1' ],
    readers: [ 'everyone' ],
    writers: [ 'OpenReview.net/Conference', '~Author_One1' ],
    content: {
      abstract: {
        value: 'Revised Abstract'
      }
    }
  }
}
{
  id: 'mIcD4PJBaU'
  invitations: [ 'OpenReview.net/Conference/-/Submission' ],
  signatures: [ '~Author_One1' ],
  readers: [ 'everyone' ],
  writers: [ 'OpenReview.net/Conference', '~Author_One1' ],
  domain: 'OpenReview.net/Conference',
  content: {
    title: {
      value: 'Title'
    },
    abstract: {
      value: 'Revised Abstract'
    },
    authors: {
      value: [ 'Author One' ],
      readers: [ 'OpenReview.net/Conference', '~Author_One1' ]
    },
    authorids: {
      value: [ '~Author_One1' ],
      readers: [ 'OpenReview.net/Conference', '~Author_One1' ]
    }
  }
}
{
  invitation: 'OpenReview.net/Conference/-/Submission',
  signatures: [ '~Author_One1' ],
  readers: [ 'OpenReview.net/Conference', '~Author_One1' ],
  writers: [ 'OpenReview.net/Conference' ],
  domain: 'OpenReview.net/Conference',
  note: {
    id: 'mIcD4PJBaU',
    signatures: [ '~Author_One1' ],
    readers: [ 'everyone' ],
    writers: [ 'OpenReview.net/Conference', '~Author_One1' ],
    content: {
      abstract: {
        value: { 'delete': true }
      }
    }
  }
}
{
  id: 'mIcD4PJBaU'
  invitations: [ 'OpenReview.net/Conference/-/Submission' ],
  signatures: [ '~Author_One1' ],
  readers: [ 'everyone' ],
  writers: [ 'OpenReview.net/Conference', '~Author_One1' ],
  domain: 'OpenReview.net/Conference',
  content: {
    title: {
      value: 'Title'
    },
    authors: {
      value: [ 'Author One' ],
      readers: [ 'OpenReview.net/Conference', '~Author_One1' ]
    },
    authorids: {
      value: [ '~Author_One1' ],
      readers: [ 'OpenReview.net/Conference', '~Author_One1' ]
    }
  }
}
{
  id: 'oORBZnuLKi'  // This is the id of the Edit that we want to modify. 
  invitation: 'OpenReview.net/Conference/-/Submission',
  signatures: [ 'OpenReview.net/Conference' ],
  readers: [ 'OpenReview.net/Conference' ],
  writers: [ 'OpenReview.net/Conference' ],
  domain: 'OpenReview.net/Conference',
  note: {
    id: 'mIcD4PJBaU',
    readers: [ 'everyone' ],
    writers: [ 'OpenReview.net/Conference', '~Author_One1' ],
    content: {
      abstract: {
        value: 'A different Abstract'
      }
    }
  }
}
{
  invitation: 'OpenReview.net/Conference/-/Submission',
  signatures: [ '~Author_One1' ],
  readers: [ 'OpenReview.net/Conference', '~Author_One1' ],
  writers: [ 'OpenReview.net/Conference' ],
  domain: 'OpenReview.net/Conference',
  replacement: true,
  note: {
    id: 'mIcD4PJBaU',
    signatures: [ '~Author_One1' ],
    readers: [ 'everyone' ],
    writers: [ 'OpenReview.net/Conference', '~Author_One1' ],
    content: {
      title: {
        value: 'Replacement Title'
      }
    }
  }
}
{
  id: 'mIcD4PJBaU'
  invitations: [ 'OpenReview.net/Conference/-/Submission' ],
  signatures: [ '~Author_One1' ],
  readers: [ 'everyone' ],
  writers: [ 'OpenReview.net/Conference', '~Author_One1' ],
  domain: 'OpenReview.net/Conference',
  content: {
    title: {
      value: 'Replacement Title'
    }
  }
}

Only the mandatory fields head and tail in an Edge must specify the field type even though they are not inside a content field.

Validation Specifiers inside the content field will always require a type. This is because content can have any field name and its valid values need to be specified so that the UI can render them and the backend validate them.

In most cases, you can only have one Validation Specifier. The only exceptions are value range specifiers, such as minimum, maximum, minLength and maxLength.

There is no restriction on the amount of Representation Specifiers.

hashtag
Value Pattern or Validation Specifier

The param should have one of the following specifiers needed to validate the expected value.

circle-info

Whenever param is present, the user is expected to input a value for that field. Otherwise, the value is considered to be a constant and the user cannot change it.

  • const: restricts the value of the field to whatever it's written in const. When const is present, the user does not need to pass the value, since it will be assigned by the Invitation. In the example below, the title value has to be exactly "This is a title".

circle-info

It is preferred to use the following shorthand whenever possible, which is the same as the example above:

circle-info

Fields that are specified as constants in the Invitation do NOT need to be passed when creating an object (Note Edit, Invitation Edit, Group Edit, Tag, or Edge).

  • enum: valid values must be listed in the enum array. The values in enum must be of the same type and should match the type specified in the field type. When the type of enum is string its values can be regexes too. In the example below "This is a title" and "This issss b regex" are valid values for title.

  • regex: valid values need to match the specified regex. The type of the field should be string. In the example below, "This asdf title" is a valid value.

  • range: valid values are within the range [a, b] which means a <= value <= b. The type of the field must be float or integer. In the example below, the values 0, 3, and 10 are valid.

  • withInvitation: valid values are IDs of entities that have as invitation the value specified in withInvitation.

Suppose we have the following note (this is a simplified version of the note):

Given the example below, the value "or2022" would be valid.

  • withVenueid: valid values are IDs of entities that have as venueid the value specified in withVenueid.

Suppose we have the following note (this is a simplified version of the note):

Given the example below, the value "or2023" would be valid.

  • withForum: valid values are IDs of entities that have as forum the value specified in withForum.

Suppose we have the following note (this is a simplified version of the note):

Given the example below, the value "com2024" would be valid.

  • inGroup: valid values are group IDs that are members of the group ID specified in inGroup.

Suppose we have the following group (this is a simplified version of the group):

Given the example below, the value "~Some_Reviewer1" would be valid.

hashtag
Value Range or Domain Specifiers

  • minLength: valid values are strings that have at least the length specified in minLength. In the example below, the values "title" and "long title" are valid.

  • maxLength: valid values are strings that have at most the length specified in maxLength. In the example below, the values "title" and "abc" are valid.

  • maxSize: specifies the maximum size that a file can have in megabytes. It must be used with type file. In the example below

  • extensions: specifies the valid types with the extension of the file. The extensions cannot have dots, which means that files that have the extension tar.gz are not supported.

  • minimum: valid values are numbers (floats or integers) that have at least the value specified in minimum. In the example below, 1 and 6000 are valid values.

  • maximum: valid values are numbers (floats or integers) that have at most the value specified in maximum. In the example below, 20.5 and 16.7 are valid values.

hashtag
Field attributes

  • type: define the type value that field is going to have.

circle-info

The field type is mandatory in all the fields whose type cannot be determined by the name of the field. Note how in the example below the field invitation/edit/signatures defines param/regex without a type keyword. This is because we know the type of the field signatures. We know is of type groups[], so there is no need to define it. On the other hand, the field invitation/edit/note/content/title/value has to define the type since the fields inside content can be anything.

Allowed types:

  1. string

  2. integer

  3. boolean

  4. date

  5. file

  6. profile

  7. group

  8. note

circle-info

The field types profile, group, and note ask for an ID, not the entire object.

Square brackets can be appended to each type to expect an array of values, for example:

circle-info

Not all types can become arrays. The exceptions are date and file.

type can be an optional property in some cases where it is known which type is expected, for example: readers, writers and signatures of a note.

  • optional: boolean value that indicates if the value is optional or mandatory.

  • deletable: boolean value that indicates if the value can be deleted.

circle-info

The fields optional and deletable can be used at the same time or omitted. Their behavior is defined below:

Optional
Deletable
Behavior

True

True

Field is optional and can be deleted

True

False

Field can be added but not deleted

False

True

Undefined

hashtag
Representation specifiers

circle-info

Representation specifiers are not used for validation, they are only used to correctly display the data in the UI. They are not mandatory and in case they are not present the UI will have default values for each field.

  • order: define the order in which the field is going to be rendered in the form.

  • description: short text to explain the expected value.

  • input: type of widget to use when requesting data.

    • text

    • select

    • checkbox

  • default: value that is going to be shown when the widget is initialized.

  • markdown: boolean value that enables the use of markdown.

  • scroll: boolean value that specifies whether a textarea input will be scrollable.

"title": { "value": "This is a title" }
"title": {
    "value": {
        "param": {
            "type": "string"
            "const": "This is a title"
        }
    }
}
"title": {
    "value": {
        "param": {
            "type": "string"
            "enum": ["This is a title", "This is{3,5} [a|b] regex"]
        }
    }
}
"title": {
    "value": {
        "param": {
            "type": "string"
            "regex": "^This .+ title$"
        }
    }
}
"grade": {
    "value": {
        "param": {
            "type": "integer"
            "range": [0, 10]
        }
    }
}
{
    "id": "or2022",
    "invitations": ["OpenReview.net/2022/Conference/-/Submission"],
    "readers": ["everyone"],
    "writers": ["~Some_Author1"],
    "signatures": ["~Some_Author1"],
    "content": {
        "title": {
            "value": "Title"
        }
    }
}
"id": {
    "param": {
        "withInvitation": "OpenReview.net/2022/Conference/-/Submission"
    }
}
{
    "id": "or2023",
    "invitations": ["OpenReview.net/2023/Conference/-/Submission"],
    "readers": ["everyone"],
    "writers": ["~Some_Author1"],
    "signatures": ["~Some_Author1"],
    "content": {
        "title": {
            "value": "Title"
        },
        "venueid": {
            "value": "OpenReview.net/2023/Conference"
        }
    }
}
"id": {
    "param": {
        "withVenueid": "OpenReview.net/2023/Conference"
    }
}
{
    "id": "com2024",
    "invitations": ["OpenReview.net/2024/Conference/-/Submission"],
    "readers": ["everyone"],
    "writers": ["~Some_Author1"],
    "signatures": ["~Some_Author1"],
    "forum": "or2024",
    "content": {
        "title": {
            "value": "Title"
        }
    }
}
"id": {
    "param": {
        "withForum": "or2024"
    }
}
{
    "id": "OpenReview.net/2022/Conference/Reviewers",
    "readers": ["OpenReview/2022/Conference"],
    "writers": ["OpenReview/2022/Conference"],
    "signatures": ["OpenReview/2022/Conference"],
    "members": ["~Some_Reviewer1", "~Some_Reviewer2"]
}
"tail": {
    "param": {
        "type": "profile",
        "inGroup": "OpenReview.net/2022/Conference/Reviewers"
    }
}
"some_field": {
    "param": {
        "type": "string",
        "minLength": 5
    }
}
"some_field": {
    "param": {
        "type": "string",
        "maxLength": 5
    }
}
"supplemtary_material": {
    "param": {
        "type": "file",
        "maxSize": 5,
        "extensions": ["pdf", "zip"]
    }
}
"some_number": {
    "param": {
        "type": "integer",
        "minimum": 1
    }
}
"some_number": {
    "param": {
        "type": "float",
        "maximum": 20.5
    }
}
"invitation": {
    "id": "OpenReview.net/2022/Conference/-/Submission",
    "signatures": [ "~Super_User1" ],
    "readers": [ "~" ],
    "writers": [ "groupId" ],
    "invitees": [ "~" ],
    "edit": {
        "signatures": { "param": { "regex": ".*" } },
        "readers": [ "groupId" ],
        "writers": [ "groupId" ],
        "note": {
            "signatures": [ "~Super_User1" ],
            "readers": [ "groupId" ],
            "writers": [ "groupId" ],
            "content": {
                "title": {
                    "value": { "param": { "type": "string", "regex": ".*" } }
                }
            }
        }
    }
}
"keywords": {
    "type" "string[]"
}
textarea
  • radio

  • False

    False

    Field is mandatory and cannot be deleted

    True

    undefined

    Field can be added but not deleted

    undefined

    True

    Field is optional and can be deleted

    undefined

    undefined

    Field is mandatory and cannot be deleted