Package Documentation

Client

class openreview.Client(baseurl=None, username=None, password=None, token=None, tokenExpiresIn=None)[source]
Parameters:
  • baseurl (str, optional) – URL to the host, example: https://api.openreview.net (should be replaced by ‘host’ name). If none is provided, it defaults to the environment variable OPENREVIEW_API_BASEURL

  • username (str, optional) – OpenReview username. If none is provided, it defaults to the environment variable OPENREVIEW_USERNAME

  • password (str, optional) – OpenReview password. If none is provided, it defaults to the environment variable OPENREVIEW_PASSWORD

  • token (str, optional) – Session token. This token can be provided instead of the username and password if the user had already logged in

  • tokenExpiresIn – Time in seconds before the token expires. This parameter only works when providing a username and a password. If none is set, the value will be set automatically to one day. The max value that it can be set to is 1 week.

activate_user(token, content)[source]

Activates a newly registered user

Parameters:
  • token (str) – Activation token. If running in localhost, use email as token

  • content (dict) – Content of the profile to activate

Returns:

Dictionary containing user information and the authentication token

Return type:

dict

Example:

>>> res = client.activate_user('new@user.com', {
    'names': [
            {
                'fullname': 'New User',
                'username': '~New_User1'
            }
        ],
    'emails': ['new@user.com'],
    'preferredEmail': 'new@user.com'
    })
add_members_to_group(group, members)[source]

Adds members to a group

Parameters:
  • group (Group or str) – Group (or Group’s id) to which the members will be added

  • members (str, list, unicode) – Members that will be added to the group. Members should be in a string, unicode or a list format

Returns:

Group with the members added

Return type:

Group

delete_edges(invitation, id=None, label=None, head=None, tail=None, wait_to_finish=False, soft_delete=False)[source]

Deletes edges by a combination of invitation id and one or more of the optional filters.

Parameters:
  • invitation (str) – an invitation ID

  • label (str, optional) – a matching label ID

  • head (str, optional) – id of the edge head (head type defined by the edge invitation)

  • tail (str, optional) – id of the edge tail (tail type defined by the edge invitation)

  • wait_to_finish (bool, optional) – True if execution should pause until deletion of edges is finished

Returns:

a {status = ‘ok’} in case of a successful deletion and an OpenReview exception otherwise

Return type:

dict

delete_group(group_id)[source]

Deletes the group

Parameters:

group_id (str) – ID of Group to be deleted

Returns:

a {status = ‘ok’} in case of a successful deletion and an OpenReview exception otherwise

Return type:

dict

delete_institution(institution_id)[source]

Deletes the institution

Parameters:

institution_id (str) – ID of Institution to be deleted

Returns:

a {status = ‘ok’} in case of a successful deletion and an OpenReview exception otherwise

Return type:

dict

delete_note(note_id)[source]

Deletes the note

Parameters:

note_id (str) – ID of Note to be deleted

Returns:

a {status = ‘ok’} in case of a successful deletion and an OpenReview exception otherwise

Return type:

dict

delete_profile_reference(reference_id)[source]

Deletes the Profile Reference specified by reference_id.

Parameters:

reference_id (str) – ID of the Profile Reference to be deleted.

Returns:

a {status = ‘ok’} in case of a successful deletion and an OpenReview exception otherwise

Return type:

dict

get_all_edges(id=None, invitation=None, head=None, tail=None, label=None, limit=None, offset=None, sort=None, with_count=False, trash=None)[source]

Get all Edge objects based on the filters provided, with automatic pagination.

Repeatedly calls get_edges() to retrieve every matching Edge, handling pagination internally via tools.concurrent_get.

Parameters:
  • id (str, optional) – An Edge ID. If provided, returns the Edge whose ID matches.

  • invitation (str, optional) – An Invitation ID. If provided, returns Edges whose invitation field matches.

  • head (str, optional) – ID (profile or note) used in the head position of the Edge.

  • tail (str, optional) – ID (profile or note) used in the tail position of the Edge.

  • label (str, optional) – A label value. If provided, returns Edges whose label matches.

  • limit (int, optional) – Maximum number of Edges to return per page.

  • offset (int, optional) – Starting position for pagination.

  • sort (str, optional) – Field to sort by.

  • with_count (bool, optional) – If True, return a tuple (edges, count).

  • trash (bool, optional) – If True, include soft-deleted Edges.

Returns:

List of all matching Edge objects.

Return type:

list[Edge]

get_all_groups(id=None, parent=None, regex=None, member=None, signatory=None, web=None, sort=None, with_count=False)[source]

Gets list of Group objects based on the filters provided. The Groups that will be returned match all the criteria passed in the parameters.

Parameters:
  • id (str, optional) – id of the Group

  • parent (str, optional) – id of the parent Group

  • regex (str, optional) – Regex that matches several Group ids

  • member (str, optional) – Groups that contain this member

  • signatory (str, optional) – Groups that contain this signatory

  • web (bool, optional) – Groups that contain a web field value

  • after (str, optional) – Group id to start getting the list of groups from.

Returns:

List of Groups

Return type:

list[Group]

get_all_invitations(id=None, ids=None, invitee=None, replytoNote=None, replyForum=None, signature=None, note=None, regex=None, tags=None, minduedate=None, duedate=None, pastdue=None, replyto=None, details=None, expired=None, super=None, sort=None, with_count=False, type=None)[source]

Gets list of Invitation objects based on the filters provided. The Invitations that will be returned match all the criteria passed in the parameters.

Parameters:
  • id (str, optional) – id of the Invitation

  • ids (str, optional) – Comma separated Invitation IDs. If provided, returns invitations whose “id” value is any of the passed Invitation IDs.

  • invitee (str, optional) – Invitations that contain this invitee

  • replytoNote (str, optional) – Invitations that contain this replytoNote

  • replyForum (str, optional) – Invitations that contain this replyForum

  • signature (optional) – Invitations that contain this signature

  • note (str, optional) – Invitations that contain this note

  • regex (str, optional) – Invitation ids that match this regex

  • tags (Tag, optional) – Invitations that contain these tags

  • minduedate (int, optional) – Invitations that have at least this value as due date

  • duedate (int, optional) – Invitations that contain this due date

  • pastdue (bool, optional) – Invitaions that are past due

  • replyto (optional) – Invitations that contain this replyto

  • details (dict, optional) – TODO: What is a valid value for this field?

  • expired (bool, optional) – If true, retrieves the Invitations that have expired, otherwise, the ones that have not expired

Returns:

List of Invitations

Return type:

list[Invitation]

get_all_notes(id=None, paperhash=None, forum=None, original=None, invitation=None, replyto=None, tauthor=None, signature=None, signatures=None, writer=None, trash=None, number=None, content=None, mintcdate=None, details=None, sort=None, select=None, with_count=False)[source]

Gets list of Note objects based on the filters provided. The Notes that will be returned match all the criteria passed in the parameters.

Parameters:
  • id (str, optional) – a Note ID. If provided, returns Notes whose ID matches the given ID.

  • paperhash (str, optional) – A “paperhash” for a note. If provided, returns Notes whose paperhash matches this argument. (A paperhash is a human-interpretable string built from the Note’s title and list of authors to uniquely identify the Note)

  • forum (str, optional) – A Note ID. If provided, returns Notes whose forum matches the given ID.

  • invitation (str, optional) – An Invitation ID. If provided, returns Notes whose “invitation” field is this Invitation ID.

  • replyto (str, optional) – A Note ID. If provided, returns Notes whose replyto field matches the given ID.

  • signature (str, optional) – A Group ID. If provided, returns Notes whose signatures field contains the given Group ID.

  • signatures (list[str], optional) – Group IDs. If provided, returns Notes whose signatures field contains the given Group IDs.

  • writer (str, optional) – A Group ID. If provided, returns Notes whose writers field contains the given Group ID.

  • trash (bool, optional) – If True, includes Notes that have been deleted (i.e. the ddate field is less than the current date)

  • number (int, optional) – If present, includes Notes whose number field equals the given integer.

  • content (dict, optional) – If present, includes Notes whose each key is present in the content field and it is equals the given value.

  • after (str, optional) – Note id to start getting the list of notes from.

  • mintcdate (int, optional) – Represents an Epoch time timestamp, in milliseconds. If provided, returns Notes whose “true creation date” (tcdate) is at least equal to the value of mintcdate.

  • details (optional) – Comma separated values of fields to add to details. Valid values are: replyCount: Number of replies in a forum. Only available if the Note is a forum. original: Include original Note if available. revisions: Boolean indicating whether the Note has revisions. writable: Boolean indicating whether the Note is writable by the user. originalWritable: Boolean indicating whether the original Note is writable by the user. tags: Tags of the Note. invitation: Invitation of the Note. originalInvitation: Invitation of the original Note. directReplyCount: Number of direct replies to the Note. directReplies: Direct replies to the Note. replies: Replies to the Note. Only available if the Note is a forum.

  • sort (str, optional) – Sorts the output by field depending on the string passed. Possible values: number, cdate, ddate, tcdate, tmdate, replyCount (Invitation id needed in the invitation field).

Returns:

List of Notes

Return type:

list[Note]

get_all_references(referent=None, invitation=None, content=None, mintcdate=None, limit=None, offset=None, original=False, trash=None, with_count=False)[source]

Gets a list of revisions for a note. The revisions that will be returned match all the criteria passed in the parameters.

Refer to the section of Mental Models and then click on Blind Submissions for more information.

Parameters:
  • referent (str, optional) – A Note ID. If provided, returns references whose “referent” value is this Note ID.

  • invitation (str, optional) – An Invitation ID. If provided, returns references whose “invitation” field is this Invitation ID.

  • mintcdate (int, optional) – Represents an Epoch time timestamp, in milliseconds. If provided, returns references whose “true creation date” (tcdate) is at least equal to the value of mintcdate.

  • original (bool, optional) – If True then get_references will additionally return the references to the original note.

Returns:

List of revisions

Return type:

list[Note]

get_all_tags(id=None, invitation=None, forum=None, signature=None, tag=None, limit=None, offset=None, with_count=False)[source]

Gets a list of Tag objects based on the filters provided. The Tags that will be returned match all the criteria passed in the parameters.

Parameters:
  • id (str, optional) – A Tag ID. If provided, returns Tags whose ID matches the given ID.

  • forum (str, optional) – A Note ID. If provided, returns Tags whose forum matches the given ID.

  • invitation (str, optional) – An Invitation ID. If provided, returns Tags whose “invitation” field is this Invitation ID.

Returns:

List of tags

Return type:

list[Tag]

get_attachment(id, field_name)[source]

Gets the binary content of a attachment using the provided note id If the pdf is not found then this returns an error message with “status”:404.

Parameters:
  • id (str) – Note id or Reference id of the pdf

  • field_name (str) – name of the field associated with the attachment file

Returns:

The binary content of a pdf

Return type:

bytes

Example:

>>> f = get_attachment(id='Place Note-ID here', field_name='pdf')
>>> with open('output.pdf','wb') as op: op.write(f)
get_edge(id)[source]

Get a single Edge by id if available

Parameters:

id (str) – id of the Edge

return: Edge object with its information :rtype: Edge

get_edges(id=None, invitation=None, head=None, tail=None, label=None, limit=None, offset=None, sort=None, with_count=False, trash=None)[source]

Get a list of Edge objects based on the filters provided.

Returns edges matching all the criteria passed in the parameters. When with_count=True and offset is not set, returns a tuple of (edges, count) instead of just the list.

Parameters:
  • id (str, optional) – An Edge ID. If provided, returns the Edge whose ID matches.

  • invitation (str, optional) – An Invitation ID. If provided, returns Edges whose invitation field matches.

  • head (str, optional) – ID (profile or note) used in the head position of the Edge.

  • tail (str, optional) – ID (profile or note) used in the tail position of the Edge.

  • label (str, optional) – A label value. If provided, returns Edges whose label matches.

  • limit (int, optional) – Maximum number of Edges to return (0–1000).

  • offset (int, optional) – Starting position for pagination.

  • sort (str, optional) – Field to sort by.

  • with_count (bool, optional) – If True and offset is None, return a tuple (edges, count).

  • trash (bool, optional) – If True, include soft-deleted Edges.

Returns:

List of Edge objects, or (list[Edge], int) when with_count=True.

Return type:

list[Edge] | tuple[list[Edge], int]

get_edges_count(id=None, invitation=None, head=None, tail=None, label=None)[source]

Return the count of Edge objects matching the given filters.

Parameters:
  • id (str, optional) – An Edge ID. If provided, counts only the Edge whose ID matches.

  • invitation (str, optional) – An Invitation ID. If provided, counts Edges whose invitation field matches.

  • head (str, optional) – ID (profile or note) used in the head position of the Edge.

  • tail (str, optional) – ID (profile or note) used in the tail position of the Edge.

  • label (str, optional) – A label value. If provided, counts Edges whose label matches.

Returns:

Number of matching edges.

Return type:

int

get_group(id, details=None)[source]

Get a single Group by id if available

Parameters:

id (str) – id of the group

Returns:

Dictionary with the group information

Return type:

Group

Example:

>>> group = client.get_group('your-email@domain.com')
get_grouped_edges(invitation=None, head=None, tail=None, label=None, groupby='head', select='tail', limit=None, offset=None)[source]

Get edges grouped by a specified field.

Returns a list of JSON objects where each one represents a group of edges. For example, with the defaults groupby='head' and select='tail', each group has the form:

{"id": {"head": "paper-1"}, "values": [{"tail": "user-1"}, {"tail": "user-2"}]}

Note: limit applies to the number of groups returned, not the number of edges within each group.

Parameters:
  • invitation (str, optional) – Invitation ID to filter edges by.

  • head (str, optional) – ID to filter by the head position.

  • tail (str, optional) – ID to filter by the tail position.

  • label (str, optional) – Label value to filter edges by.

  • groupby (str, optional) – Edge field to group by.

  • select (str, optional) – Edge field to include in each group’s values list.

  • limit (int, optional) – Maximum number of groups to return.

  • offset (int, optional) – Starting position for group pagination.

Returns:

List of grouped-edge JSON objects.

Return type:

list[dict]

get_groups(id=None, ids=None, parent=None, regex=None, member=None, members=None, signatory=None, web=None, limit=None, offset=None, after=None, stream=None, sort=None, with_count=False, select=None)[source]

Gets list of Group objects based on the filters provided. The Groups that will be returned match all the criteria passed in the parameters.

Parameters:
  • id (list, optional) – id of the Group

  • ids – Group ids

  • regex (str, optional) – Regex that matches several Group ids

  • member (str, optional) – Groups that contain this member

  • signatory (str, optional) – Groups that contain this signatory

  • web (bool, optional) – Groups that contain a web field value

  • limit (int, optional) – Maximum amount of Groups that this method will return. The limit parameter can range between 0 and 1000 inclusive. If a bigger number is provided, only 1000 Groups will be returned

  • offset (int, optional) – Indicates the position to start retrieving Groups. For example, if there are 10 Groups and you want to obtain the last 3, then the offset would need to be 7.

  • select (str, optional) – Specific field of the group. Only this field would be returned for all the groups

Returns:

List of Groups

Return type:

list[Group]

get_institutions(id=None, domain=None)[source]

Get a single Institution by id or domain if available

Parameters:
  • id (str) – id of the Institution as saved in the database

  • domain (str) – domain of the Institution

Returns:

Dictionary with the Institution information

Return type:

dict

Example:

>>> institution = client.get_institutions(domain='umass.edu')
get_invitation(id)[source]

Get a single invitation by id if available

Parameters:

id (str) – id of the invitation

Returns:

Invitation matching the passed id

Return type:

Invitation

get_invitations(id=None, ids=None, invitee=None, replytoNote=None, replyForum=None, signature=None, note=None, regex=None, tags=None, limit=None, offset=None, after=None, minduedate=None, duedate=None, pastdue=None, replyto=None, details=None, expired=None, sort=None, super=None, with_count=False, select=None, type=None)[source]

Gets list of Invitation objects based on the filters provided. The Invitations that will be returned match all the criteria passed in the parameters.

Parameters:
  • id (str, optional) – id of the Invitation

  • ids (str, optional) – Comma separated Invitation IDs. If provided, returns invitations whose “id” value is any of the passed Invitation IDs.

  • invitee (str, optional) – Invitations that contain this invitee

  • replytoNote (str, optional) – Invitations that contain this replytoNote

  • replyForum (str, optional) – Invitations that contain this replyForum

  • signature (optional) – Invitations that contain this signature

  • note (str, optional) – Invitations that contain this note

  • regex (str, optional) – Invitation ids that match this regex

  • tags (Tag, optional) – Invitations that contain these tags

  • limit (int, optional) – Maximum amount of Invitations that this method will return. The limit parameter can range between 0 and 1000 inclusive. If a bigger number is provided, only 1000 Invitations will be returned

  • offset (int, optional) – Indicates the position to start retrieving Invitations. For example, if there are 10 Invitations and you want to obtain the last 3, then the offset would need to be 7.

  • after (str, optional) – Invitation id to start getting the list of invitations from.

  • minduedate (int, optional) – Invitations that have at least this value as due date

  • duedate (int, optional) – Invitations that contain this due date

  • pastdue (bool, optional) – Invitaions that are past due

  • replyto (optional) – Invitations that contain this replyto

  • details (dict, optional) – TODO: What is a valid value for this field?

  • expired (bool, optional) – If true, retrieves the Invitations that have expired, otherwise, the ones that have not expired

  • select (str, optional) – Specific field of the group. Only this field would be returned for all the groups

Returns:

List of Invitations

Return type:

list[Invitation]

get_jobs_status()[source]

Only for Super User. Retrieves the jobs status of the queue

Returns:

Jobs status

Return type:

dict

get_messages(to=None, subject=None, status=None, offset=None, limit=None, with_count=False)[source]

Only for Super User. Retrieves all the messages sent to a list of usernames or emails and/or a particular e-mail subject

Parameters:
  • to (list[str], optional) – Tilde user names or emails

  • subject (str, optional) – Subject of the e-mail

  • status (str, optional) – Commad separated list of status values corresponding to the message: delivered, bounce, droppped, etc

Returns:

Messages that match the passed parameters

Return type:

dict

get_note(id)[source]

Get a single Note by id if available

Parameters:

id (str) – id of the note

Returns:

Note matching the passed id

Return type:

Note

get_notes(id=None, paperhash=None, forum=None, original=None, invitation=None, replyto=None, tauthor=None, signature=None, signatures=None, writer=None, trash=None, number=None, content=None, limit=None, offset=None, after=None, mintcdate=None, details=None, sort=None, with_count=False, select=None)[source]

Gets list of Note objects based on the filters provided. The Notes that will be returned match all the criteria passed in the parameters.

Parameters:
  • id (str, optional) – a Note ID. If provided, returns Notes whose ID matches the given ID.

  • paperhash (str, optional) – A “paperhash” for a note. If provided, returns Notes whose paperhash matches this argument. (A paperhash is a human-interpretable string built from the Note’s title and list of authors to uniquely identify the Note)

  • forum (str, optional) – A Note ID. If provided, returns Notes whose forum matches the given ID.

  • original (str, optional) – A Note ID. If provided, returns Notes whose original matches the given ID.

  • invitation (str, optional) – An Invitation ID. If provided, returns Notes whose “invitation” field is this Invitation ID.

  • replyto (str, optional) – A Note ID. If provided, returns Notes whose replyto field matches the given ID.

  • tauthor (bool, optional) – If provided, returns Notes whose true author is the user requesting the Notes.

  • signature (str, optional) – A Group ID. If provided, returns Notes whose signatures field contains the given Group ID.

  • signatures (list[str], optional) – Group IDs. If provided, returns Notes whose signatures field contains the given Group IDs.

  • writer (str, optional) – A Group ID. If provided, returns Notes whose writers field contains the given Group ID.

  • trash (bool, optional) – If True, includes Notes that have been deleted (i.e. the ddate field is less than the current date)

  • number (int, optional) – If present, includes Notes whose number field equals the given integer.

  • content (dict, optional) – If present, includes Notes whose each key is present in the content field and it is equals the given value.

  • limit (int, optional) – Maximum amount of Notes that this method will return. The limit parameter can range between 0 and 1000 inclusive. If a bigger number is provided, only 1000 Notes will be returned

  • offset (int, optional) – Indicates the position to start retrieving Notes. For example, if there are 10 Notes and you want to obtain the last 3, then the offset would need to be 7.

  • after (str, optional) – Note id to start getting the list of notes from.

  • mintcdate (int, optional) – Represents an Epoch time timestamp, in milliseconds. If provided, returns Notes whose “true creation date” (tcdate) is at least equal to the value of mintcdate.

  • details (str, optional) – Comma separated values of fields to add to details. Valid values are: replyCount: Number of replies in a forum. Only available if the Note is a forum. original: Include original Note if available. revisions: Boolean indicating whether the Note has revisions. writable: Boolean indicating whether the Note is writable by the user. originalWritable: Boolean indicating whether the original Note is writable by the user. tags: Tags of the Note. invitation: Invitation of the Note. originalInvitation: Invitation of the original Note. directReplyCount: Number of direct replies to the Note. directReplies: Direct replies to the Note. replies: Replies to the Note. Only available if the Note is a forum.

  • sort (str, optional) – Sorts the output by field depending on the string passed. Possible values: number, cdate, ddate, tcdate, tmdate, replyCount (Invitation id needed in the invitation field).

  • select (str, optional) – Specific field of the group. Only this field would be returned for all the groups

Returns:

List of Notes

Return type:

list[Note]

get_pdf(id, is_reference=False)[source]

Gets the binary content of a pdf using the provided note/reference id If the pdf is not found then this returns an error message with “status”:404.

Use the note id when trying to get the latest pdf version and reference id when trying to get a previous version of the pdf

Parameters:
  • id (str) – Note id or Reference id of the pdf

  • is_reference (bool, optional) – Indicates that the passed id is a reference id instead of a note id

Returns:

The binary content of a pdf

Return type:

bytes

Example:

>>> f = get_pdf(id='Place Note-ID here')
>>> with open('output.pdf','wb') as op: op.write(f)
get_process_logs(id=None, invitation=None, status=None)[source]

Retrieve process function execution logs. Requires Super User permissions.

Parameters:
  • id (str, optional) – Note ID that triggered the process function.

  • invitation (str, optional) – Invitation ID whose process function produced the logs.

  • status (str, optional) – Filter by execution status (e.g. 'ok', 'error').

Returns:

List of log entry dictionaries.

Return type:

list[dict]

get_profile(email_or_id=None)[source]

Get a single Profile by id, if available

Parameters:

email_or_id (str, optional) – e-mail confirmed or id of the profile

Returns:

Profile object with its information

Return type:

Profile

get_reference(id)[source]

Get a single reference by id if available

Parameters:

id (str) – id of the reference

Returns:

reference matching the passed id

Return type:

Note

get_references(referent=None, invitation=None, content=None, mintcdate=None, limit=None, offset=None, original=False, trash=None, with_count=False)[source]

Gets a list of revisions for a note. The revisions that will be returned match all the criteria passed in the parameters.

Refer to the section of Mental Models and then click on Blind Submissions for more information.

Parameters:
  • referent (str, optional) – A Note ID. If provided, returns references whose “referent” value is this Note ID.

  • invitation (str, optional) – An Invitation ID. If provided, returns references whose “invitation” field is this Invitation ID.

  • mintcdate (int, optional) – Represents an Epoch time timestamp, in milliseconds. If provided, returns references whose “true creation date” (tcdate) is at least equal to the value of mintcdate.

  • original (bool, optional) – If True then get_references will additionally return the references to the original note.

Returns:

List of revisions

Return type:

list[Note]

get_tag(id)[source]

Get a single Tag by id if available

Parameters:

id (str) – id of the Tag

Returns:

Tag with the Tag information

Return type:

Tag

get_tags(id=None, invitation=None, forum=None, signature=None, tag=None, limit=None, offset=None, with_count=False)[source]

Get a list of Tag objects based on the filters provided.

Returns tags matching all the criteria passed in the parameters. When with_count=True and offset is not set, returns a tuple of (tags, count) instead of just the list.

Parameters:
  • id (str, optional) – A Tag ID. If provided, returns Tags whose ID matches the given ID.

  • invitation (str, optional) – An Invitation ID. If provided, returns Tags whose invitation field matches.

  • forum (str, optional) – A Note ID. If provided, returns Tags whose forum matches the given ID.

  • signature (str, optional) – A group ID. If provided, returns Tags signed by this group.

  • tag (str, optional) – A tag value string. If provided, returns Tags whose tag field matches.

  • limit (int, optional) – Maximum number of Tags to return (0–1000).

  • offset (int, optional) – Starting position for pagination.

  • with_count (bool, optional) – If True and offset is None, return a tuple (tags, count).

Returns:

List of Tag objects, or (list[Tag], int) when with_count=True.

Return type:

list[Tag] | tuple[list[Tag], int]

get_tildeusername(fullname)[source]

Gets next possible tilde user name corresponding to the specified full name

Parameters:

fullname (str) – Full name of the user

Returns:

next possible tilde user name corresponding to the specified full name

Return type:

dict

get_venues(id=None, ids=None, invitations=None)[source]

Get a list of venues based on the filters provided.

Returns venues matching all the criteria passed in the parameters.

Parameters:
  • id (str, optional) – A Venue ID. If provided, returns the venue whose ID matches.

  • ids (list, optional) – A list of Venue IDs. If provided, returns venues with these IDs.

  • invitations (list, optional) – A list of Invitation IDs. If provided, returns venues whose “invitation” field matches.

Returns:

List of venues.

Return type:

list[dict]

impersonate(group_id)[source]

Impersonate a group, updating the client’s authentication token.

Obtains a new auth token that represents the given group. After this call, subsequent API requests made by this client will be authorized as the impersonated group. The client’s token, profile, and user fields are replaced with the values from the impersonation response.

Parameters:

group_id (str) – ID of the group to impersonate (e.g. a venue or user group).

Returns:

Dictionary containing the new token and user information.

Return type:

dict

infer_note(note_id)[source]

Trigger server-side inference on an existing Note.

Sends the Note to the server’s inference endpoint, which populates computed fields (e.g. extracting metadata from a PDF attachment).

Parameters:

note_id (str) – ID of the Note to run inference on.

Returns:

The Note updated with inferred fields.

Return type:

Note

login_user(username=None, password=None, expiresIn=None)[source]

Logs in a registered user. If MFA is enabled for the account, this method will attempt to complete MFA verification automatically using the configured an interactive terminal prompt.

Parameters:
  • username (str, optional) – OpenReview username

  • password (str, optional) – OpenReview password

  • expiresIn (number, optional) – Time in seconds before the token expires. If none is set the value will be set automatically to one hour. The max value that it can be set to is 1 week.

Returns:

Dictionary containing user information and the authentication token

Return type:

dict

merge_profiles(profileTo, profileFrom)[source]

Merges two Profiles

Parameters:
  • profileTo (Profile) – Profile object to merge to

  • profileFrom – Profile object to merge from (this profile will be deleted)

Type:

profileFrom: Profile

Returns:

The new updated Profile

Return type:

Profile

moderate_profile(profile_id, decision)[source]

Apply a moderation decision to a profile.

Accepts or rejects a profile that is pending moderation. This is used by administrators to review newly created or updated profiles.

Parameters:
  • profile_id (str) – The tilde ID of the profile to moderate.

  • decision (str) – The moderation decision, e.g. 'accept' or 'reject'.

Returns:

The moderated Profile.

Return type:

Profile

post_direct_message(subject, recipients, message, sender=None)[source]

Posts a message to the recipients and consequently sends them emails

Parameters:
  • subject (str) – Subject of the e-mail

  • recipients (list[str]) – Recipients of the e-mail. Valid inputs would be tilde username or emails registered in OpenReview

  • message (str) – Message in the e-mail

Returns:

Contains the message that was sent to each Group

Return type:

dict

post_edge(edge)[source]

Post an Edge to the server.

Creates or updates an Edge. Upon success, returns the posted Edge object with server-assigned fields (e.g. id, cdate).

Parameters:

edge (Edge) – Edge to be posted.

Returns:

The posted Edge.

Return type:

Edge

post_edges(edges)[source]

Posts the list of Edges. Returns a list Edge objects updated with their ids.

post_group(group, overwrite=True)[source]

Posts the group. If the group is unsigned, signs it using the client’s default signature.

Parameters:
  • group (Group) – Group to be posted

  • overwrite (bool, optional) – Determines whether to overwrite an existing group or not

Returns:

The posted Group

Return type:

Group

post_institution(institution)[source]

Requires Super User permission. Adds an institution if the institution id is not found in the database, otherwise, the institution is updated.

Parameters:

institution (dict) – institution to be posted

Returns:

The posted institution

Return type:

dict

post_invitation(invitation)[source]

Posts the invitation. If the invitation is unsigned, signs it using the client’s default signature.

Parameters:

invitation (Invitation) – Invitation to be posted

Returns:

The posted Invitation

Return type:

Invitation

post_message(subject, recipients, message, ignoreRecipients=None, sender=None, replyTo=None, parentGroup=None, useJob=False)[source]

Posts a message to the recipients and consequently sends them emails

Parameters:
  • subject (list[str]) – Subject of the e-mail

  • recipients (list[str]) – Recipients of the e-mail. Valid inputs would be tilde username or emails registered in OpenReview

  • message (str) – Message in the e-mail

  • ignoreRecipients – List of groups ids to be ignored from the recipient list

  • sender (dict) – Specify the from address and name of the email, the dictionary should have two keys: ‘name’ and ‘email’

  • replyTo (str) – e-mail address used when recipients reply to this message

  • parentGroup (str) – parent group recipients of e-mail belong to

Returns:

Contains the message that was sent to each Group

Return type:

dict

post_note(note)[source]

Posts the note. If the note is unsigned, signs it using the client’s default signature.

Parameters:

note (Note) – Note to be posted

Returns:

The posted Note

Return type:

Note

post_profile(profile)[source]

Updates a Profile

Parameters:

profile (Profile) – Profile object

Returns:

The new updated Profile

Return type:

Profile

post_tag(tag)[source]

Posts the tag. If the tag is unsigned, signs it using the client’s default signature.

Parameters:

tag (Tag) – Tag to be posted

Return Tag:

The posted Tag

post_venue(venue)[source]

Posts the venue. Upon success, returns the posted Venue object.

put_attachment(file_path, invitation, name)[source]

Upload a file attachment to the OpenReview server.

Parameters:
  • file_path (str) – Path to the local file to upload.

  • invitation (str) – Invitation ID of the note that requires the attachment.

  • name (str) – Name of the note content field where the attachment URL will be stored.

Returns:

A relative URL for the uploaded file.

Return type:

str

register_user(email=None, fullname=None, password=None)[source]

Registers a new user

Parameters:
  • email (str, optional) – email that will be used as id to log in after the user is registered

  • fullname (str, optional) – Full name of the user

  • password (str, optional) – Password used to log into OpenReview

Returns:

Dictionary containing the new user information including his id, username, email(s), readers, writers, etc.

Return type:

dict

remove_members_from_group(group, members)[source]

Removes members from a group

Parameters:
  • group (Group or str) – Group (or Group’s id) from which the members will be removed

  • members (str, list, unicode) – Members that will be removed. Members should be in a string, unicode or a list format

Returns:

Group without the members that were removed

Type:

Group

rename_domain(old_domain, new_domain)[source]

Updates the domain for an entire venue

Parameters:
  • old_domain – Current domain

  • new_domain – New domain

Returns:

Status of the request. The process can be tracked in the queue.

Return type:

dict

rename_edges(current_id, new_id)[source]

Rename a profile ID across all edges that reference it.

Updates every Edge that references current_id (in head or tail) to use new_id instead. This is typically called after a profile tilde ID is renamed.

Parameters:
  • current_id (str) – The existing profile ID to replace in edges.

  • new_id (str) – The new profile ID to substitute.

Returns:

List of Edge objects that were updated.

Return type:

list[Edge]

rename_profile(current_id, new_id)[source]

Rename a profile’s tilde ID.

Replaces the profile’s current tilde ID with a new one. This is typically used to correct or update a user’s tilde identifier (e.g. ~First_Last1 to ~First_Last2).

Parameters:
  • current_id (str) – The existing tilde ID to be renamed.

  • new_id (str) – The new tilde ID to assign.

Returns:

The updated Profile with the new tilde ID.

Return type:

Profile

search_notes(term, content='all', group='all', source='all', limit=None, offset=None)[source]

Searches notes based on term, content, group and source as the criteria. Unlike get_notes(), this method uses Elasticsearch to retrieve the Notes

Parameters:
  • term (str) – Term used to look for the Notes

  • content (str, optional) – Specifies whether to look in all the content, authors, or keywords. Valid inputs: ‘all’, ‘authors’, ‘keywords’

  • group (str, optional) – Specifies under which Group to look. E.g. ‘all’, ‘ICLR’, ‘UAI’, etc.

  • source (str, optional) – Whether to look in papers, replies or all

  • limit (int, optional) – Maximum amount of Notes that this method will return. The limit parameter can range between 0 and 1000 inclusive. If a bigger number is provided, only 1000 Notes will be returned

  • offset (int, optional) – Indicates the position to start retrieving Notes. For example, if there are 10 Notes and you want to obtain the last 3, then the offset would need to be 7.

Returns:

List of notes

Return type:

list[Note]

search_profiles(confirmedEmails=None, emails=None, ids=None, term=None, first=None, middle=None, last=None, fullname=None, relation=None, use_ES=False)[source]

Gets a list of profiles using either their ids or corresponding emails

Parameters:
  • confirmedEmails (list, optional) – List of confirmed emails registered in OpenReview

  • emails (list, optional) – List of emails registered in OpenReview

  • ids (list, optional) – List of OpenReview username ids

  • term (str, optional) – Substring in the username or e-mail to be searched

  • first (str, optional) – First name of user

  • middle (str, optional) – Middle name of user

  • last (str, optional) – Last name of user

Returns:

List of profiles, if emails is present then a dictionary of { email: profiles } is returned. If confirmedEmails is present then a dictionary of { email: profile } is returned

Return type:

list[Profile]

class openreview.Group(id, readers, writers, signatories, signatures, invitation=None, parent=None, cdate=None, ddate=None, tcdate=None, tmdate=None, members=None, nonreaders=None, impersonators=None, web=None, web_string=None, anonids=None, deanonymizers=None, host=None, domain=None, details=None)[source]

When a user is created, it is automatically assigned to certain groups that give him different privileges. A username is also a group, therefore, groups can be members of other groups.

Parameters:
  • id (str) – id of the Group

  • readers (list[str]) – List of readers in the Group, each reader is a Group id

  • writers (list[str]) – List of writers in the Group, each writer is a Group id

  • signatories (list[str]) – List of signatories in the Group, each writer is a Group id

  • signatures (list[str]) – List of signatures in the Group, each signature is a Group id

  • cdate (int, optional) – Creation date of the Group

  • ddate (int, optional) – Deletion date of the Group

  • tcdate (int, optional) – true creation date of the Group

  • tmdate (int, optional) – true modification date of the Group

  • members (list[str], optional) – List of members in the Group, each member is a Group id

  • nonreaders (list[str], optional) – List of nonreaders in the Group, each nonreader is a Group id

  • web (optional) – Path to a file that contains the webfield

  • web_string (str, optional) – String containing the webfield for this Group

  • details (optional)

add_member(member)[source]

Adds a member to the group. This is done only on the object not in OpenReview. Another method like post() is needed for the change to show in OpenReview

Parameters:

member (str) – Member to add to the group

Returns:

Group with the new member added

Return type:

Group

add_webfield(web)[source]

Adds a webfield to the group

Parameters:

web (str) – Path to the file that contains the webfield

classmethod from_json(g)[source]

Creates a Group object from a dictionary that contains keys values equivalent to the name of the instance variables of the Group class

Parameters:

g (dict) – Dictionary containing key-value pairs, where the keys values are equivalent to the name of the instance variables in the Group class

Returns:

Group whose instance variables contain the values from the dictionary

Return type:

Group

post(client)[source]

Posts a group to OpenReview

Parameters:

client (Client) – Client that will post the Group

remove_member(member)[source]

Removes a member from the group. This is done only on the object not in OpenReview. Another method like post() is needed for the change to show in OpenReview

Parameters:

member (str) – Member to remove from the group

Returns:

Group after the member was removed

Return type:

Group

to_json()[source]

Converts Group instance to a dictionary. The instance variable names are the keys and their values the values of the dictinary.

Returns:

Dictionary containing all the parameters of a Group instance

Return type:

dict

class openreview.Invitation(id=None, readers=None, writers=None, invitees=None, signatures=None, reply=None, edit=None, super=None, noninvitees=None, nonreaders=None, web=None, web_string=None, process=None, process_string=None, preprocess=None, duedate=None, expdate=None, cdate=None, ddate=None, tcdate=None, tmdate=None, multiReply=None, taskCompletionCount=None, transform=None, bulk=None, reply_forum_views=[], responseArchiveDate=None, details=None)[source]
Parameters:
  • id (str) – Invitation id

  • readers (list[str], optional) – List of readers in the Invitation, each reader is a Group id

  • writers (list[str], optional) – List of writers in the Invitation, each writer is a Group id

  • invitees (list[str], optional) – List of invitees in the Invitation, each invitee is a Group id

  • signatures (list[str], optional) – List of signatures in the Invitation, each signature is a Group id

  • reply (dict, optional) – Template of the Note that will be created

  • super (str, optional) – Parent Invitation id

  • noninvitees (list[str], optional) – List of noninvitees in the Invitation, each noninvitee is a Group id

  • nonreaders (list[str], optional) – List of nonreaders in the Invitation, each nonreader is a Group id

  • web (str, optional) – Path to a file containing a webfield

  • web_string (str, optional) – String containing the webfield

  • process (str, optional) – Path to a file containing the process function

  • process_string (str, optional) – String containing the process function

  • duedate (int, optional) – Due date

  • expdate (int, optional) – Expiration date

  • cdate (int, optional) – Creation date

  • ddate (int, optional) – Deletion date

  • tcdate (int, optional) – True creation date

  • tmdate (int, optional) – Modification date

  • multiReply (bool, optional) – If true, allows for multiple Notes created from this Invitation (e.g. comments in a forum), otherwise, only one Note may be created (e.g. paper submission)

  • taskCompletionCount (int, optional) – Keeps count of the number of times the Invitation has been used

  • transform (str, optional) – Path to a file that contains the transform function

  • details (dict, optional)

classmethod from_json(i)[source]

Creates an Invitation object from a dictionary that contains keys values equivalent to the name of the instance variables of the Invitation class

Parameters:

i (dict) – Dictionary containing key-value pairs, where the keys values are equivalent to the name of the instance variables in the Invitation class

Returns:

Invitation whose instance variables contain the values from the dictionary

Return type:

Invitation

to_json()[source]

Converts Invitation instance to a dictionary. The instance variable names are the keys and their values the values of the dictinary.

Returns:

Dictionary containing all the parameters of a Invitation instance

Return type:

dict

class openreview.Note(invitation, readers, writers, signatures, content, id=None, original=None, number=None, cdate=None, pdate=None, odate=None, mdate=None, tcdate=None, tmdate=None, ddate=None, forum=None, referent=None, replyto=None, nonreaders=None, details=None, tauthor=None)[source]
Parameters:
  • invitation (str) – Invitation id

  • readers (list[str]) – List of readers in the Invitation, each reader is a Group id

  • writers (list[str]) – List of writers in the Invitation, each writer is a Group id

  • signatures (list[str]) – List of signatures in the Invitation, each signature is a Group id

  • content (dict) – Content of the Note

  • id (str, optional) – Note id

  • original (str, optional) – If this Note is a blind copy of a Note, then this contains the id of that Note

  • number (int, optional) – Note number. E.g. when the Note is a paper submission, this value is the paper number

  • cdate (int, optional) – Creation date

  • pdate (int, optional) – Publication date

  • tcdate (int, optional) – True creation date

  • tmdate (int, optional) – Modification date

  • ddate (int, optional) – Deletion date

  • forum (str, optional) – Forum id

  • referent (str, optional) – If this Note is used as a ref, this field points to the Profile

  • replyto (str, optional) – A Note ID. If provided, returns Notes whose replyto field matches the given ID

  • nonreaders (list[str], optional) – List of nonreaders in the Invitation, each nonreader is a Group id

  • details (dict, optional)

  • tauthor (str, optional) – True author

classmethod from_json(n)[source]

Creates a Note object from a dictionary that contains keys values equivalent to the name of the instance variables of the Note class :param n: Dictionary containing key-value pairs, where the keys values are equivalent to the name of the instance variables in the Note class :type n: dict :return: Note whose instance variables contain the values from the dictionary :rtype: Note

to_json()[source]

Converts Note instance to a dictionary. The instance variable names are the keys and their values the values of the dictinary. :return: Dictionary containing all the parameters of a Note instance :rtype: dict

class openreview.Tag(tag, invitation, readers, signatures, id=None, cdate=None, tcdate=None, ddate=None, forum=None, replyto=None, nonreaders=None)[source]
Parameters:
  • tag (str) – Content of the tag

  • invitation (str) – Invitation id

  • readers (list[str]) – List of readers in the Invitation, each reader is a Group id

  • signatures (list[str]) – List of signatures in the Invitation, each signature is a Group id

  • id (str, optional) – Tag id

  • cdate (int, optional) – Creation date

  • tcdate (int, optional) – True creation date

  • ddate (int, optional) – Deletion date

  • forum (str, optional) – Forum id

  • replyto (list[str], optional) – Note id

  • nonreaders (list[str], optional) – List of nonreaders in the Invitation, each nonreader is a Group id

classmethod from_json(t)[source]

Creates a Tag object from a dictionary that contains keys values equivalent to the name of the instance variables of the Tag class

Parameters:

n (dict) – Dictionary containing key-value pairs, where the keys values are equivalent to the name of the instance variables in the Tag class

Returns:

Tag whose instance variables contain the values from the dictionary

Return type:

Tag

to_json()[source]

Converts Tag instance to a dictionary. The instance variable names are the keys and their values the values of the dictinary.

Returns:

Dictionary containing all the parameters of a Tag instance

Return type:

dict

class openreview.Profile(id=None, active=None, password=None, number=None, tcdate=None, tmdate=None, referent=None, packaging=None, invitation=None, readers=None, nonreaders=None, signatures=None, writers=None, content=None, metaContent=None, tauthor=None, state=None, lastLogIn=None)[source]
Parameters:
  • id (str, optional) – Profile id

  • tcdate (int, optional) – True creation date

  • tmdate (int, optional) – Modification date

  • referent (str, optional) – If this is a ref, it contains the Profile id that it points to

  • packaging (dict, optional) – Contains previous versions of this Profile

  • invitation (str, optional) – Invitation id

  • readers (str, optional) – List of readers in the Invitation, each reader is a Group id

  • nonreaders (str, optional) – List of nonreaders in the Invitation, each nonreader is a Group id

  • signatures (str, optional) – List of signatures in the Invitation, each signature is a Group id

  • writers (str, optional) – List of writers in the Invitation, each writer is a Group id

  • content (dict, optional) – Dictionary containing the information of the Profile

  • metaContent (dict, optional) – Contains information of the entities that have changed the Profile

  • active (bool, optional) – If true, the Profile is active in OpenReview

  • password (bool, optional) – If true, the Profile has a password, otherwise, it was automatically created and the person that it belongs to has not set a password yet

  • tauthor (str, optional) – True author

classmethod from_json(n)[source]

Creates a Profile object from a dictionary that contains keys values equivalent to the name of the instance variables of the Profile class

Parameters:

i (dict) – Dictionary containing key-value pairs, where the keys values are equivalent to the name of the instance variables in the Profile class

Returns:

Profile whose instance variables contain the values from the dictionary

Return type:

Profile

to_json()[source]

Converts Profile instance to a dictionary. The instance variable names are the keys and their values the values of the dictinary.

Returns:

Dictionary containing all the parameters of a Profile instance

Return type:

dict

API 2 Client

class openreview.api.OpenReviewClient(baseurl=None, username=None, password=None, token=None, tokenExpiresIn=None)[source]
Parameters:
  • baseurl (str, optional) – URL to the host, example: https://api.openreview.net (should be replaced by ‘host’ name). If none is provided, it defaults to the environment variable OPENREVIEW_API_BASEURL_V2

  • username (str, optional) – OpenReview username. If none is provided, it defaults to the environment variable OPENREVIEW_USERNAME

  • password (str, optional) – OpenReview password. If none is provided, it defaults to the environment variable OPENREVIEW_PASSWORD

  • token (str, optional) – Session token. This token can be provided instead of the username and password if the user had already logged in

  • expiresIn (number, optional) – Time in seconds before the token expires. If none is set the value will be set automatically to one hour. The max value that it can be set to is 1 week.

activate_email_with_token(email, token, activation_token=None)[source]

Activates an email address

Parameters:
  • email (str) – email address to activate

  • token (str) – token to activate the email

Returns:

Dictionary containing the profile information

Return type:

dict

activate_user(token, content)[source]

Activates a newly registered user

Parameters:
  • token (str) – Activation token. If running in localhost, use email as token

  • content (dict) – Content of the profile to activate

Returns:

Dictionary containing user information and the authentication token

Return type:

dict

Example:

>>> res = client.activate_user('new@user.com', {
    'names': [
            {
                'first': 'New',
                'last': 'User',
                'username': '~New_User1'
            }
        ],
    'emails': ['new@user.com'],
    'preferredEmail': 'new@user.com'
    })
add_members_to_group(group, members)[source]

Adds members to a group

Parameters:
  • group (Group or str) – Group (or Group’s id) to which the members will be added

  • members (str, list, unicode) – Members that will be added to the group. Members should be in a string, unicode or a list format

Returns:

Group with the members added

Return type:

Group

confirm_alternate_email(profile_id, alternate_email, activation_token=None)[source]

Confirms an alternate email address

Parameters:
  • profile_id (str) – id of the profile

  • alternate_email (str) – email address to confirm

Returns:

Dictionary containing the profile information

Return type:

dict

delete_edges(invitation, id=None, label=None, head=None, tail=None, wait_to_finish=False, soft_delete=False)[source]

Deletes edges by a combination of invitation id and one or more of the optional filters.

Parameters:
  • invitation (str) – an invitation ID

  • label (str, optional) – a matching label ID

  • head (str, optional) – id of the edge head (head type defined by the edge invitation)

  • tail (str, optional) – id of the edge tail (tail type defined by the edge invitation)

  • wait_to_finish (bool, optional) – True if execution should pause until deletion of edges is finished

Returns:

a {status = ‘ok’} in case of a successful deletion and an OpenReview exception otherwise

Return type:

dict

delete_group(group_id)[source]

Deletes the group

Parameters:

group_id (str) – ID of Group to be deleted

Returns:

a {status = ‘ok’} in case of a successful deletion and an OpenReview exception otherwise

Return type:

dict

delete_institution(institution_id)[source]

Deletes the institution

Parameters:

institution_id (str) – ID of Institution to be deleted

Returns:

a {status = ‘ok’} in case of a successful deletion and an OpenReview exception otherwise

Return type:

dict

delete_note(note_id)[source]

Deletes the note

Parameters:

note_id (str) – ID of Note to be deleted

Returns:

a {status = ‘ok’} in case of a successful deletion and an OpenReview exception otherwise

Return type:

dict

delete_profile_reference(reference_id)[source]

Deletes the Profile Reference specified by reference_id.

Parameters:

reference_id (str) – ID of the Profile Reference to be deleted.

Returns:

a {status = ‘ok’} in case of a successful deletion and an OpenReview exception otherwise

Return type:

dict

delete_tags(invitation, id=None, label=None, wait_to_finish=False, soft_delete=False)[source]

Deletes tags by a combination of invitation id and one or more of the optional filters.

Parameters:
  • invitation (str) – an invitation ID

  • label (str, optional) – a matching label ID

  • wait_to_finish (bool, optional) – True if execution should pause until deletion of tags is finished

  • soft_delete (bool, optional) – True if the tag should be soft deleted, False if it should be hard deleted

Returns:

a {status = ‘ok’} in case of a successful deletion and an OpenReview exception otherwise

Return type:

dict

flush_members_cache(group_id=None)[source]

Flushes the members cache for a group

Parameters:

group_id (str, optional) – id of the group to flush the cache for

Returns:

Dictionary containing the status of the request

Return type:

dict

get_all_edges(id=None, invitation=None, head=None, tail=None, label=None, trash=None, select=None, domain=None)[source]

Get all Edge objects matching the filters using server-side streaming.

Convenience wrapper around get_edges() with stream=True, which retrieves all matching Edges without manual pagination.

Parameters:
  • id (str, optional) – An Edge ID. If provided, returns the Edge whose ID matches.

  • invitation (str, optional) – An Invitation ID. If provided, returns Edges whose invitation field matches.

  • head (str, optional) – ID of the Edge head entity.

  • tail (str, optional) – ID of the Edge tail entity.

  • label (str, optional) – Label value to filter Edges by.

  • trash (bool, optional) – If True, includes soft-deleted Edges in the results.

  • select (str, optional) – Comma-separated list of fields to include in the response.

  • domain (str, optional) – Venue domain ID; improves query efficiency when the caller is a venue organizer.

Returns:

List of all matching Edge objects.

Return type:

list[Edge]

get_all_groups(id=None, invitation=None, parent=None, prefix=None, member=None, members=None, domain=None, signatory=None, web=None, sort=None, with_count=None)[source]

Gets list of Group objects based on the filters provided. The Groups that will be returned match all the criteria passed in the parameters.

Parameters:
  • id (str, optional) – id of the Group

  • parent (str, optional) – id of the parent Group

  • prefix (str, optional) – Prefix that matches several Group ids

  • member (str, optional) – Groups that that are trasitive members of the member value

  • members (str, optional) – Groups that contain the value members in the members field

  • signatory (str, optional) – Groups that contain this signatory

  • web (bool, optional) – Groups that contain a web field value

  • limit (int, optional) – Maximum amount of Groups that this method will return. The limit parameter can range between 0 and 1000 inclusive. If a bigger number is provided, only 1000 Groups will be returned

  • offset (int, optional) – Indicates the position to start retrieving Groups. For example, if there are 10 Groups and you want to obtain the last 3, then the offset would need to be 7.

  • after (str, optional) – Group id to start getting the list of groups from.

Returns:

List of Groups

Return type:

list[Group]

get_all_invitations(id=None, ids=None, invitee=None, replytoNote=None, replyForum=None, signature=None, note=None, prefix=None, tags=None, minduedate=None, duedate=None, pastdue=None, replyto=None, expired=None, sort=None, type=None, invitation=None, trash=None, domain=None)[source]

Gets list of Invitation objects based on the filters provided. The Invitations that will be returned match all the criteria passed in the parameters.

Parameters:
  • id (str, optional) – id of the Invitation

  • ids (str, optional) – Comma separated Invitation IDs. If provided, returns invitations whose “id” value is any of the passed Invitation IDs.

  • invitee (str, optional) – Invitations that contain this invitee

  • replytoNote (str, optional) – Invitations that contain this replytoNote

  • replyForum (str, optional) – Invitations that contain this replyForum

  • signature (optional) – Invitations that contain this signature

  • note (str, optional) – Invitations that contain this note

  • prefix (str, optional) – Invitation ids that match this prefix

  • tags (Tag, optional) – Invitations that contain these tags

  • minduedate (int, optional) – Invitations that have at least this value as due date

  • duedate (int, optional) – Invitations that contain this due date

  • pastdue (bool, optional) – Invitaions that are past due

  • replyto (optional) – Invitations that contain this replyto

  • details (dict, optional) – TODO: What is a valid value for this field?

  • expired (bool, optional) – If true, retrieves the Invitations that have expired, otherwise, the ones that have not expired

Returns:

List of Invitations

Return type:

list[Invitation]

get_all_notes(id=None, paperhash=None, forum=None, invitation=None, parent_invitations=None, replyto=None, signature=None, transitive_members=None, signatures=None, writer=None, trash=None, number=None, content=None, mintcdate=None, details=None, select=None, sort=None, domain=None)[source]

Gets list of Note objects based on the filters provided. The Notes that will be returned match all the criteria passed in the parameters.

Parameters:
  • id (str, optional) – a Note ID. If provided, returns Notes whose ID matches the given ID.

  • paperhash (str, optional) – A “paperhash” for a note. If provided, returns Notes whose paperhash matches this argument. (A paperhash is a human-interpretable string built from the Note’s title and list of authors to uniquely identify the Note)

  • forum (str, optional) – A Note ID. If provided, returns Notes whose forum matches the given ID.

  • invitation (str, optional) – An Invitation ID. If provided, returns Notes whose “invitation” field is this Invitation ID.

  • parent_invitations (str, optional) – An Invitation ID. If provided, returns Notes whose parentInvitations field contains the given Invitation ID.

  • replyto (str, optional) – A Note ID. If provided, returns Notes whose replyto field matches the given ID.

  • signature (str, optional) – A Group ID. If provided, returns Notes whose signatures field contains the given Group ID.

  • transitive_members (bool, optional) – If true, returns Notes whose tauthor field is a transitive member of the Group represented by the given Group ID.

  • signatures (list[str], optional) – Group IDs. If provided, returns Notes whose signatures field contains the given Group IDs.

  • writer (str, optional) – A Group ID. If provided, returns Notes whose writers field contains the given Group ID.

  • trash (bool, optional) – If True, includes Notes that have been deleted (i.e. the ddate field is less than the current date)

  • number (int, optional) – If present, includes Notes whose number field equals the given integer.

  • content (dict, optional) – If present, includes Notes whose each key is present in the content field and it is equals the given value.

  • after (str, optional) – Note id to start getting the list of notes from.

  • mintcdate (int, optional) – Represents an Epoch time timestamp, in milliseconds. If provided, returns Notes whose “true creation date” (tcdate) is at least equal to the value of mintcdate.

  • details (optional) – TODO: What is a valid value for this field?

  • sort (str, optional) – Sorts the output by field depending on the string passed. Possible values: number, cdate, ddate, tcdate, tmdate, replyCount (Invitation id needed in the invitation field).

Returns:

List of Notes

Return type:

list[Note]

get_all_tags(id=None, invitation=None, parent_invitations=None, forum=None, note=None, profile=None, signature=None, tag=None, domain=None)[source]

Gets a list of Tag objects based on the filters provided. The Tags that will be returned match all the criteria passed in the parameters.

Parameters:
  • id (str, optional) – A Tag ID. If provided, returns Tags whose ID matches the given ID.

  • forum (str, optional) – A Note ID. If provided, returns Tags whose forum matches the given ID.

  • invitation (str, optional) – An Invitation ID. If provided, returns Tags whose “invitation” field is this Invitation ID.

Returns:

List of tags

Return type:

list[Tag]

get_archived_edges(invitation)[source]

Returns a list of Edge objects based on the filters provided.

Parameters:

invitation – an Invitation ID. If provided, returns Edges whose “invitation” field is this Invitation ID.

get_attachment(field_name, id=None, ids=None, group_id=None, invitation_id=None)[source]

Gets the binary content of a attachment using the provided note id If the pdf is not found then this returns an error message with “status”:404.

Parameters:
  • field_name (str) – name of the field associated with the attachment file

  • id (list[str]) – Note id or Reference id of the pdf

  • ids – List of Note ids or Reference ids. The max number of ids is 50

  • group_id (str) – Id of group where attachment is stored

  • invitation_id (str) – Id of invitation where attachment is stored

Returns:

The binary content of a pdf

Return type:

bytes

Example:

>>> f = get_attachment(id='Place Note-ID here', field_name='pdf')
>>> with open('output.pdf','wb') as op: op.write(f)
get_edge(id, trash=False)[source]

Get a single Edge by id if available

Parameters:

id (str) – id of the Edge

return: Edge object with its information :rtype: Edge

get_edges(id=None, invitation=None, head=None, tail=None, label=None, limit=None, offset=None, with_count=None, trash=None, select=None, stream=None, domain=None)[source]

Get a list of Edge objects based on the filters provided.

Returns Edges matching all the criteria passed in the parameters. When with_count is True and offset is not set, returns a tuple of (edges, count).

Parameters:
  • id (str, optional) – An Edge ID. If provided, returns the Edge whose ID matches.

  • invitation (str, optional) – An Invitation ID. If provided, returns Edges whose invitation field matches.

  • head (str, optional) – ID of the Edge head entity (type defined by the edge invitation, e.g., a Note ID or Profile ID).

  • tail (str, optional) – ID of the Edge tail entity (type defined by the edge invitation, e.g., a Note ID or Profile ID).

  • label (str, optional) – Label value to filter Edges by.

  • limit (int, optional) – Maximum number of Edges to return. Default is determined by the server.

  • offset (int, optional) – Number of Edges to skip (for pagination).

  • with_count (bool, optional) – If True, also returns the total count of matching Edges.

  • trash (bool, optional) – If True, includes soft-deleted Edges in the results.

  • select (str, optional) – Comma-separated list of fields to include in the response (e.g., id,head,tail).

  • stream (bool, optional) – If True, returns all matching Edges using server-side streaming (ignores limit/offset).

  • domain (str, optional) – Venue domain ID; improves query efficiency when the caller is a venue organizer.

Returns:

List of Edge objects, or a tuple (list[Edge], int) when with_count is True and offset is None.

Return type:

list[Edge] | tuple[list[Edge], int]

get_edges_count(id=None, invitation=None, head=None, tail=None, label=None, domain=None)[source]

Return the count of Edge objects matching the filters provided.

If domain is not provided but invitation is, the method attempts to infer the domain from the invitation for more efficient querying.

Parameters:
  • id (str, optional) – An Edge ID. If provided, counts only the Edge whose ID matches.

  • invitation (str, optional) – An Invitation ID. If provided, counts Edges whose invitation field matches.

  • head (str, optional) – ID of the Edge head entity.

  • tail (str, optional) – ID of the Edge tail entity.

  • label (str, optional) – Label value to filter Edges by.

  • domain (str, optional) – Venue domain ID; improves query efficiency when the caller is a venue organizer.

Returns:

Number of Edges matching the filters.

Return type:

int

get_group(id, details=None)[source]

Get a single Group by id if available

Parameters:

id (str) – id of the group

Returns:

Dictionary with the group information

Return type:

Group

Example:

>>> group = client.get_group('your-email@domain.com')
get_group_edit(id)[source]

Get a single edit by id if available

Parameters:

id (str) – id of the edit

Returns:

edit matching the passed id

Return type:

Group

get_group_edits(group_id=None, invitation=None, with_count=False, sort=None, trash=None)[source]

Gets a list of edits for a group. The edits that will be returned match all the criteria passed in the parameters.

Returns:

List of edits

Return type:

list[Edit]

get_grouped_edges(invitation=None, head=None, tail=None, label=None, groupby='head', select=None, limit=None, offset=None, trash=None, domain=None)[source]

Get Edges grouped by a specified field.

Returns a list of JSON objects where each one represents a group of Edges. For example, with groupby='head' each group has the form: {id: {head: paper-1}, values: [{tail: user-1}, {tail: user-2}]}. The limit applies to the number of groups returned, not the number of Edges within each group.

Parameters:
  • invitation (str, optional) – An Invitation ID. If provided, returns Edges whose invitation field matches.

  • head (str, optional) – ID of the Edge head entity to filter by.

  • tail (str, optional) – ID of the Edge tail entity to filter by.

  • label (str, optional) – Label value to filter Edges by.

  • groupby (str, optional) – Field to group Edges by. Defaults to head.

  • select (str, optional) – Comma-separated list of fields to include in each group’s values.

  • limit (int, optional) – Maximum number of groups to return.

  • offset (int, optional) – Number of groups to skip (for pagination).

  • trash (bool, optional) – If True, includes soft-deleted Edges in the results.

  • domain (str, optional) – Venue domain ID; improves query efficiency when the caller is a venue organizer.

Returns:

List of grouped edge dictionaries, each containing id and values keys.

Return type:

list[dict]

get_groups(id=None, invitation=None, prefix=None, member=None, members=None, signatory=None, web=None, limit=None, offset=None, after=None, stream=None, sort=None, with_count=None, domain=None)[source]

Gets list of Group objects based on the filters provided. The Groups that will be returned match all the criteria passed in the parameters.

Parameters:
  • id (str, optional) – id of the Group

  • prefix (str, optional) – Prefix that matches several Group ids

  • member (str, optional) – Groups that that are transitive members of the member value

  • members (str, optional) – Groups that contain the value members in the members field

  • signatory (str, optional) – Groups that contain this signatory

  • web (bool, optional) – Groups that contain a web field value

  • limit (int, optional) – Maximum amount of Groups that this method will return. The limit parameter can range between 0 and 1000 inclusive. If a bigger number is provided, only 1000 Groups will be returned

  • offset (int, optional) – Indicates the position to start retrieving Groups. For example, if there are 10 Groups and you want to obtain the last 3, then the offset would need to be 7.

Returns:

List of Groups

Return type:

list[Group]

get_institutions(id=None, domain=None)[source]

Get a single Institution by id or domain if available

Parameters:
  • id (str) – id of the Institution as saved in the database

  • domain (str) – domain of the Institution

Returns:

Dictionary with the Institution information

Return type:

dict

Example:

>>> institution = client.get_institutions(domain='umass.edu')
get_invitation(id)[source]

Get a single invitation by id if available

Parameters:

id (str) – id of the invitation

Returns:

Invitation matching the passed id

Return type:

Invitation

get_invitation_edit(id)[source]

Get a single edit by id if available

Parameters:

id (str) – id of the edit

Returns:

edit matching the passed id

Return type:

Note

get_invitation_edits(invitation_id=None, invitation=None, with_count=None, sort=None)[source]

Gets a list of edits for a note. The edits that will be returned match all the criteria passed in the parameters.

Returns:

List of edits

Return type:

list[Edit]

get_invitations(id=None, ids=None, invitee=None, replytoNote=None, replyForum=None, signature=None, note=None, prefix=None, tags=None, limit=None, offset=None, after=None, minduedate=None, duedate=None, pastdue=None, replyto=None, details=None, expired=None, sort=None, type=None, with_count=None, invitation=None, trash=None, stream=None, domain=None)[source]

Gets list of Invitation objects based on the filters provided. The Invitations that will be returned match all the criteria passed in the parameters.

Parameters:
  • id (str, optional) – id of the Invitation

  • ids (str, optional) – Comma separated Invitation IDs. If provided, returns invitations whose “id” value is any of the passed Invitation IDs.

  • invitee (str, optional) – Invitations that contain this invitee

  • replytoNote (str, optional) – Invitations that contain this replytoNote

  • replyForum (str, optional) – Invitations that contain this replyForum

  • signature (optional) – Invitations that contain this signature

  • note (str, optional) – Invitations that contain this note

  • prefix (str, optional) – Invitation ids that match this prefix

  • tags (Tag, optional) – Invitations that contain these tags

  • limit (int, optional) – Maximum amount of Invitations that this method will return. The limit parameter can range between 0 and 1000 inclusive. If a bigger number is provided, only 1000 Invitations will be returned

  • offset (int, optional) – Indicates the position to start retrieving Invitations. For example, if there are 10 Invitations and you want to obtain the last 3, then the offset would need to be 7.

  • after (str, optional) – Invitation id to start getting the list of invitations from.

  • minduedate (int, optional) – Invitations that have at least this value as due date

  • duedate (int, optional) – Invitations that contain this due date

  • pastdue (bool, optional) – Invitaions that are past due

  • replyto (optional) – Invitations that contain this replyto

  • details (dict, optional) – TODO: What is a valid value for this field?

  • expired (bool, optional) – If true, retrieves the Invitations that have expired, otherwise, the ones that have not expired

  • trash (bool, optional) – If true, retrieves the Invitations that have been trashed, otherwise, the ones that have not been trashed

Returns:

List of Invitations

Return type:

list[Invitation]

get_jobs_status()[source]

Only for Super User. Retrieves the jobs status of the queue

Returns:

Jobs status

Return type:

dict

get_message_requests(id=None, invitation=None)[source]

Posts a message to the recipients and consequently sends them emails

Parameters:
  • id (str) – ID of the message request

  • invitation (str) – Invitation ID of the invitation that allows to send the message

Returns:

Contains the message request used to send the messages

Return type:

dict

get_messages(to=None, subject=None, status=None, offset=None, limit=None)[source]

Only for Super User. Retrieves all the messages sent to a list of usernames or emails and/or a particular e-mail subject

Parameters:
  • to (list[str], optional) – Tilde user names or emails

  • subject (str, optional) – Subject of the e-mail

  • status (str, optional) – Commad separated list of status values corresponding to the message: delivered, bounce, droppped, etc

Returns:

Messages that match the passed parameters

Return type:

dict

get_note(id, details=None)[source]

Get a single Note by id if available

Parameters:

id (str) – id of the note

Returns:

Note matching the passed id

Return type:

Note

get_note_edit(id, trash=None)[source]

Get a single edit by id if available

Parameters:

id (str) – id of the edit

Returns:

edit matching the passed id

Return type:

Note

get_note_edits(note_id=None, invitation=None, with_count=None, sort=None, trash=None, limit=None)[source]

Get a list of Edit objects for a Note matching the filters provided.

Returns edits that match all the criteria passed in the parameters. When with_count is True, returns a tuple of (edits, count).

Parameters:
  • note_id (str, optional) – ID of the Note whose edits to retrieve.

  • invitation (str, optional) – Invitation ID to filter edits by.

  • with_count (bool, optional) – If True, also returns the total count of matching edits.

  • sort (str, optional) – Field to sort results by (e.g., tcdate, tmdate).

  • trash (bool, optional) – If True, includes soft-deleted edits in the results.

  • limit (int, optional) – Maximum number of edits to return.

Returns:

List of Edit objects, or a tuple (list[Edit], int) when with_count is True.

Return type:

list[Edit] | tuple[list[Edit], int]

get_notes(id=None, external_id=None, paperhash=None, forum=None, invitation=None, parent_invitations=None, replyto=None, tauthor=None, signature=None, transitive_members=None, signatures=None, writer=None, trash=None, number=None, content=None, limit=None, offset=None, after=None, mintcdate=None, domain=None, paper_hash=None, details=None, sort=None, with_count=None, stream=None)[source]

Gets list of Note objects based on the filters provided. The Notes that will be returned match all the criteria passed in the parameters.

Parameters:
  • id (str, optional) – a Note ID. If provided, returns Notes whose ID matches the given ID.

  • paperhash (str, optional) – A “paperhash” for a note. If provided, returns Notes whose paperhash matches this argument. (A paperhash is a human-interpretable string built from the Note’s title and list of authors to uniquely identify the Note)

  • forum (str, optional) – A Note ID. If provided, returns Notes whose forum matches the given ID.

  • invitation (str, optional) – An Invitation ID. If provided, returns Notes whose “invitation” field is this Invitation ID.

  • replyto (str, optional) – A Note ID. If provided, returns Notes whose replyto field matches the given ID.

  • tauthor (str, optional) – A Group ID. If provided, returns Notes whose tauthor field (“true author”) matches the given ID, or is a transitive member of the Group represented by the given ID.

  • signature (str, optional) – A Group ID. If provided, returns Notes whose signatures field contains the given Group ID.

  • transitive_members (bool, optional) – If true, returns Notes whose tauthor field is a transitive member of the Group represented by the given Group ID.

  • signatures (list[str], optional) – Group IDs. If provided, returns Notes whose signatures field contains the given Group IDs.

  • writer (str, optional) – A Group ID. If provided, returns Notes whose writers field contains the given Group ID.

  • trash (bool, optional) – If True, includes Notes that have been deleted (i.e. the ddate field is less than the current date)

  • number (int, optional) – If present, includes Notes whose number field equals the given integer.

  • content (dict, optional) – If present, includes Notes whose each key is present in the content field and it is equals the given value.

  • limit (int, optional) – Maximum amount of Notes that this method will return. The limit parameter can range between 0 and 1000 inclusive. If a bigger number is provided, only 1000 Notes will be returned

  • offset (int, optional) – Indicates the position to start retrieving Notes. For example, if there are 10 Notes and you want to obtain the last 3, then the offset would need to be 7.

  • after (str, optional) – Note id to start getting the list of notes from.

  • mintcdate (int, optional) – Represents an Epoch time timestamp, in milliseconds. If provided, returns Notes whose “true creation date” (tcdate) is at least equal to the value of mintcdate.

  • domain – If provided, returns Notes whose domain field matches the given domain.

  • details (optional) – TODO: What is a valid value for this field?

  • sort (str, optional) – Sorts the output by field depending on the string passed. Possible values: number, cdate, ddate, tcdate, tmdate, replyCount (Invitation id needed in the invitation field).

Returns:

List of Notes

Return type:

list[Note]

get_pdf(id, is_reference=False)[source]

Gets the binary content of a pdf using the provided note/reference id If the pdf is not found then this returns an error message with “status”:404.

Use the note id when trying to get the latest pdf version and reference id when trying to get a previous version of the pdf

Parameters:
  • id (str) – Note id or Reference id of the pdf

  • is_reference (bool, optional) – Indicates that the passed id is a reference id instead of a note id

Returns:

The binary content of a pdf

Return type:

bytes

Example:

>>> f = get_pdf(id='Place Note-ID here')
>>> with open('output.pdf','wb') as op: op.write(f)
get_process_logs(id=None, invitation=None, status=None, min_sdate=None)[source]

Retrieve process function execution logs.

Only for Super User. Returns log entries for process functions triggered by edits or invitation date processes.

Parameters:
  • id (str, optional) – Edit ID (the id returned by a post_*_edit call) that triggered the process function.

  • invitation (str, optional) – Invitation ID to filter logs by the invitation whose process function produced them.

  • status (str, optional) – Filter by execution status (e.g., ok, error, running).

  • min_sdate (int, optional) – Minimum start date in epoch milliseconds. Returns logs started on or after this time.

Returns:

List of process log entry dictionaries, each containing id, status, log, and timestamp fields.

Return type:

list[dict]

get_profile(email_or_id=None)[source]

Get a single Profile by id, if available

Parameters:

email_or_id (str, optional) – e-mail or id of the profile

Returns:

Profile object with its information

Return type:

Profile

get_profiles(id=None, trash=None, with_blocked=None, state=None, offset=None, limit=None, sort=None)[source]

Get a list of Profiles

Parameters:
  • trash (bool, optional) – Indicates if the returned profiles are trashed

  • with_blocked (bool, optional) – Indicates if the returned profiles are blocked

  • state (str, optional) – Filter profiles by state (e.g. ‘Needs Moderation’, ‘Active’, ‘Rejected’)

  • offset (int, optional) – Indicates the position to start retrieving Profiles

  • limit (int, optional) – Maximum amount of Profiles that this method will return

Returns:

List of Profile objects

Return type:

list[Profile]

get_tag(id)[source]

Get a single Tag by id if available

Parameters:

id (str) – id of the Tag

Returns:

Tag with the Tag information

Return type:

Tag

get_tags(id=None, note=None, invitation=None, parent_invitations=None, forum=None, profile=None, signature=None, tag=None, limit=None, offset=None, with_count=None, mintmdate=None, stream=None, domain=None)[source]

Get a list of Tag objects based on the filters provided.

Returns Tags matching all the criteria passed in the parameters. When with_count is True and offset is not set, returns a tuple of (tags, count).

Parameters:
  • id (str, optional) – A Tag ID. If provided, returns the Tag whose ID matches.

  • note (str, optional) – A Note ID. If provided, returns Tags whose note field matches.

  • invitation (str, optional) – An Invitation ID. If provided, returns Tags whose invitation field matches.

  • parent_invitations (list[str], optional) – A list of parent Invitation IDs to filter Tags by.

  • forum (str, optional) – A Note ID. If provided, returns Tags whose forum field matches.

  • profile (str, optional) – A Profile ID. If provided, returns Tags associated with this profile.

  • signature (str, optional) – A group ID. If provided, returns Tags signed by this group.

  • tag (str, optional) – Tag value to filter by.

  • limit (int, optional) – Maximum number of Tags to return.

  • offset (int, optional) – Number of Tags to skip (for pagination).

  • with_count (bool, optional) – If True, also returns the total count of matching Tags.

  • mintmdate (int, optional) – Minimum modification timestamp (in epoch milliseconds). Returns Tags modified on or after this time.

  • stream (bool, optional) – If True, returns all matching Tags using server-side streaming (ignores limit/offset).

  • domain (str, optional) – Venue domain ID; improves query efficiency when the caller is a venue organizer.

Returns:

List of Tag objects, or a tuple (list[Tag], int) when with_count is True and offset is None.

Return type:

list[Tag] | tuple[list[Tag], int]

get_tildeusername(fullname)[source]

Gets next possible tilde user name corresponding to the specified full name

Parameters:

fullname (str) – Full name of the user

Returns:

next possible tilde user name corresponding to the specified full name

Return type:

dict

get_venues(id=None, ids=None, invitations=None)[source]

Get a list of Venue objects based on the filters provided.

Returns Venues matching all the criteria passed in the parameters.

Parameters:
  • id (str, optional) – A Venue ID. If provided, returns the Venue whose ID matches the given ID.

  • ids (list[str], optional) – A list of Venue IDs. If provided, returns Venues whose IDs are in this list.

  • invitations (list[str], optional) – A list of Invitation IDs. If provided, returns Venues whose invitation field matches one of these IDs.

Returns:

List of Venues.

Return type:

list[dict]

impersonate(group_id)[source]

Impersonate a group by obtaining a new authentication token scoped to the given group.

Replaces the current client session token with a token that authorizes requests as the specified group. The client’s profile and authorization headers are updated in place.

Parameters:

group_id (str) – ID of the group to impersonate (e.g., a venue ID such as ICML.cc/2024/Conference).

Returns:

Dictionary containing the new authentication token and user information.

Return type:

dict

login_user(username=None, password=None, expiresIn=None)[source]

Logs in a registered user. If MFA is enabled for the account, this method will attempt to complete MFA verification automatically using the configured an interactive terminal prompt.

Parameters:
  • username (str, optional) – OpenReview username

  • password (str, optional) – OpenReview password

Returns:

Dictionary containing user information and the authentication token

Return type:

dict

merge_profiles(profileTo, profileFrom)[source]

Merges two Profiles

Parameters:
  • profileTo (Profile) – Profile object to merge to

  • profileFrom – Profile object to merge from (this profile will be deleted)

Type:

profileFrom: Profile

Returns:

The new updated Profile

Return type:

Profile

moderate_profile(profile_id, decision, reason=None)[source]

Moderates a Profile

Parameters:
  • profile_id (str) – Profile id to moderate

  • decision (str) – Moderation decision (accept, reject, block, unblock, delete, restore, limit)

  • reason (str, optional) – Reason for the decision. When rejecting, this text is emailed to the user.

Returns:

The new updated Profile

Return type:

Profile

post_direct_message(subject, recipients, message, sender=None)[source]

Posts a message to the recipients and consequently sends them emails

Parameters:
  • subject (str) – Subject of the e-mail

  • recipients (list[str]) – Recipients of the e-mail. Valid inputs would be tilde username or emails registered in OpenReview

  • message (str) – Message in the e-mail

Returns:

Contains the message that was sent to each Group

Return type:

dict

post_edge(edge)[source]

Post a single Edge to the server.

Creates or updates an Edge. Upon success, returns the posted Edge object with its server-assigned id.

Parameters:

edge (Edge) – Edge object to post.

Returns:

The posted Edge object.

Return type:

Edge

post_edges(edges)[source]

Posts the list of Edges. Returns a list Edge objects updated with their ids.

post_edit(edit)[source]

Post an Edit object, routing it to the correct endpoint based on its contents.

Inspects the serialized edit for the presence of note, group, or invitation keys and POSTs to the corresponding edits endpoint (/notes/edits, /groups/edits, or /invitations/edits).

Parameters:

edit (Edit) – Edit object to post. Must contain exactly one of note, group, or invitation.

Returns:

Dictionary containing the posted edit, including the assigned edit id.

Return type:

dict

post_group_edit(invitation, signatures=None, group=None, readers=None, writers=None, content=None, replacement=None, await_process=False, flush_members_cache=True)[source]

Create or update a Group via the edit system.

Posts an edit that creates a new Group or modifies an existing one. The edit is validated against the specified invitation’s schema. When the edit modifies group members and the signature matches the domain, the members cache is automatically flushed unless flush_members_cache is False.

Parameters:
  • invitation (str) – Invitation ID that defines the schema and permissions for this edit.

  • signatures (list[str], optional) – List of group IDs signing this edit.

  • group (Group, optional) – Group object containing the fields to create or update. Use group.id to target an existing Group.

  • readers (list[str], optional) – List of group IDs that can read this edit.

  • writers (list[str], optional) – List of group IDs that can modify this edit.

  • content (dict, optional) – Additional content fields for the edit itself.

  • replacement (bool, optional) – If True, the edit fully replaces the existing Group rather than merging fields.

  • await_process (bool, optional) – If True, blocks until the server-side process function completes; raises OpenReviewException on error.

  • flush_members_cache (bool, optional) – If True (default), flushes the members cache for affected members when the domain signs the edit.

Returns:

Dictionary containing the posted edit, including the assigned edit id.

Return type:

dict

post_institution(institution)[source]

Requires Super User permission. Adds an institution if the institution id is not found in the database, otherwise, the institution is updated.

Parameters:

institution (dict) – institution to be posted

Returns:

The posted institution

Return type:

dict

post_invitation_edit(invitations, readers=None, writers=None, signatures=None, invitation=None, content=None, replacement=None, domain=None, await_process=False)[source]

Create or update an Invitation via the edit system.

Posts an edit that creates a new Invitation or modifies an existing one. The edit is validated against the parent invitation(s) specified by invitations.

Parameters:
  • invitations (str) – Parent invitation ID that authorizes this edit (e.g., venue/-/Edit).

  • readers (list[str], optional) – List of group IDs that can read this edit.

  • writers (list[str], optional) – List of group IDs that can modify this edit.

  • signatures (list[str], optional) – List of group IDs signing this edit.

  • invitation (Invitation, optional) – Invitation object containing the fields to create or update. Use invitation.id to target an existing Invitation.

  • content (dict, optional) – Additional content fields for the edit itself.

  • replacement (bool, optional) – If True, the edit fully replaces the existing Invitation rather than merging fields.

  • domain (str, optional) – Domain (venue ID) that this edit belongs to.

  • await_process (bool, optional) – If True, blocks until the server-side process function completes; raises OpenReviewException on error.

Returns:

Dictionary containing the posted edit, including the assigned edit id.

Return type:

dict

post_message(subject, recipients, message, invitation=None, signature=None, ignoreRecipients=None, sender=None, replyTo=None, parentGroup=None, use_job=None)[source]

Posts a message to the recipients and consequently sends them emails

Parameters:
  • subject (list[str]) – Subject of the e-mail

  • recipients (list[str]) – Recipients of the e-mail. Valid inputs would be tilde username or emails registered in OpenReview

  • message (str) – Message in the e-mail

  • invitation (str) – Invitation ID of the invitation that allows to send the message

  • signature (str) – Signature of the user sending the message

  • ignoreRecipients – List of groups ids to be ignored from the recipient list

  • sender (dict) – Specify the from address and name of the email, the dictionary should have two keys: ‘name’ and ‘email’

  • replyTo (str) – e-mail address used when recipients reply to this message

  • parentGroup (str) – parent group recipients of e-mail belong to

  • use_job (bool) – If True, the message will be sent using the job queue

Returns:

Contains the message that was sent to each Group

Return type:

dict

post_message_request(subject, recipients, message, invitation=None, signature=None, ignoreRecipients=None, sender=None, replyTo=None, parentGroup=None, use_job=None)[source]

Posts a message to the recipients and consequently sends them emails

Parameters:
  • subject (list[str]) – Subject of the e-mail

  • recipients (list[str]) – Recipients of the e-mail. Valid inputs would be tilde username or emails registered in OpenReview

  • message (str) – Message in the e-mail

  • invitation (str) – Invitation ID of the invitation that allows to send the message

  • signature (str) – Signature of the user sending the message

  • ignoreRecipients – List of groups ids to be ignored from the recipient list

  • sender (dict) – Specify the from address and name of the email, the dictionary should have two keys: ‘name’ and ‘email’

  • replyTo (str) – e-mail address used when recipients reply to this message

  • parentGroup (str) – parent group recipients of e-mail belong to

  • use_job (bool) – If True, the message will be sent using the job queue

Returns:

Contains the message that was sent to each Group

Return type:

dict

post_note_edit(invitation, signatures, note=None, readers=None, writers=None, nonreaders=None, content=None, await_process=False)[source]

Create or update a Note via the edit system.

Posts an edit that creates a new Note or modifies an existing one. The edit is validated against the specified invitation’s schema. To update an existing Note, set note.id to the target Note’s ID.

Parameters:
  • invitation (str) – Invitation ID that defines the schema and permissions for this edit (e.g., venue/-/Submission).

  • signatures (list[str]) – List of group IDs signing this edit.

  • note (Note, optional) – Note object containing the fields to create or update. Use note.id to target an existing Note.

  • readers (list[str], optional) – List of group IDs that can read this edit.

  • writers (list[str], optional) – List of group IDs that can modify this edit.

  • nonreaders (list[str], optional) – List of group IDs excluded from reading this edit.

  • content (dict, optional) – Additional content fields for the edit itself (not the Note).

  • await_process (bool, optional) – If True, blocks until the server-side process function completes; raises OpenReviewException on error.

Returns:

Dictionary containing the posted edit, including the assigned edit id and the note with its id.

Return type:

dict

post_note_edit_as_guest(token, edit)[source]

Post a note edit as a guest user using a guest token.

Submits a note edit without requiring a logged-in session. The guest token is sent via the X-Guest-Token header instead of the standard Authorization header.

Parameters:
  • token (str) – Guest authentication token (e.g., provided via an invitation link).

  • edit (dict) – Dictionary representing the note edit to post, following the same schema as post_note_edit().

Returns:

Dictionary containing the posted edit, including the assigned edit id.

Return type:

dict

post_profile(profile)[source]

Updates a Profile

Parameters:

profile (Profile) – Profile object

Returns:

The new updated Profile

Return type:

Profile

post_tag(tag)[source]

Posts the tag.

Parameters:

tag (Tag) – Tag to be posted

Return Tag:

The posted Tag

post_tags(tags)[source]

Posts the list of Tags. Returns a list Tag objects updated with their ids.

post_venue(venue)[source]

Posts the venue. Upon success, returns the posted Venue object.

put_attachment(file_path, invitation, name)[source]

Upload a file attachment to the OpenReview server.

Parameters:
  • file_path (str) – Path to the local file to upload.

  • invitation (str) – Invitation ID of the note that requires the attachment.

  • name (str) – Name of the note content field where the attachment URL will be stored (e.g., pdf, supplementary_material).

Returns:

A relative URL for the uploaded file, to be used as the field value in a Note.

Return type:

str

register_user(email=None, fullname=None, password=None)[source]

Registers a new user

Parameters:
  • email (str, optional) – email that will be used as id to log in after the user is registered

  • fullname (str, optional) – Full name of the user

  • password (str, optional) – Password used to log into OpenReview

Returns:

Dictionary containing the new user information including his id, username, email(s), readers, writers, etc.

Return type:

dict

remove_members_from_group(group, members)[source]

Removes members from a group

Parameters:
  • group (Group or str) – Group (or Group’s id) from which the members will be removed

  • members (str, list, unicode) – Members that will be removed. Members should be in a string, unicode or a list format

Returns:

Group without the members that were removed

Type:

Group

rename_domain(old_domain, new_domain, request_form, additional_renames=None)[source]

Updates the domain for an entire venue

Parameters:
  • old_domain – Current domain

  • new_domain – New domain

Returns:

Status of the request. The process can be tracked in the queue.

Return type:

dict

rename_edges(current_id, new_id)[source]

Rename all Edges that reference a given ID, replacing it with a new ID.

Updates the head and tail fields of all Edges that contain current_id, replacing occurrences with new_id.

Parameters:
  • current_id (str) – The current ID to find in Edge head/tail fields (e.g., a profile tilde ID).

  • new_id (str) – The new ID to replace it with.

Returns:

List of updated Edge objects.

Return type:

list[Edge]

rename_profile(current_id, new_id)[source]

Rename a Profile by changing its tilde ID.

Parameters:
  • current_id (str) – Current profile ID (e.g., ~Old_Name1).

  • new_id (str) – New profile ID (e.g., ~New_Name1).

Returns:

The updated Profile with the new ID.

Return type:

Profile

rename_tags(current_id, new_id)[source]

Updates a Tag

rename_venue(old_venue_id, new_venue_id, request_form=None, additional_renames=None)[source]

Updates the domain for an entire venue

Parameters:
  • old_domain – Current domain

  • new_domain – New domain

Returns:

Status of the request. The process can be tracked in the queue.

Return type:

dict

request_paper_similarity(name, venue_id=None, alternate_venue_id=None, invitation=None, alternate_invitation=None, submissions=None, alternate_submissions=None, model='specter2+scincl', sparse_value=400, baseurl=None)[source]

Call to the Expertise API to compute paper-to-paper similarity scores. This can be between 2 different venues or between submissions of the same venue.

Parameters:
  • name (str) – name of the job

  • venue_id (str, optional) – paper venue id for entity A, e.g. venue_id/Submission for active papers

  • alternate_venue_id (str, optional) – paper venue id for entity B, e.g. venue_id/Submission for active papers

  • invitation (str, optional) – invitation to retrieve papers for entity A, e.g. venue_id/-/Submission

  • alternate_invitation (str, optional) – invitation to retrieve papers for entity B, e.g. venue_id/-/Submission

  • submissions (list) – list of submission notes for entity A

  • alternate_submissions (list) – list of submission notes for entity B

  • model (str, optional) – model used to compute scores, e.g. “specter2+scincl”

  • sparse_value (int, optional) – number of top scores to retain per paper. Default and max is 400.

  • baseurl (str, optional) – URL to the host, example: https://api.openreview.net (should be replaced by ‘host’ name). If none is provided, it defaults to the environment variable OPENREVIEW_API_BASEURL_V2

Returns:

Dictionary containing the job id

Return type:

dict

request_paper_subset_expertise(name, submissions, group_id, expertise_selection_id=None, model='specter2+scincl', weight=None, baseurl=None)[source]

Call to the Expertise API to compute scores for a subset of papers to a group.

Parameters:
  • name (str) – name of the job

  • submissions (list) – list of submission notes

  • group_id (str) – id of group to compute scores against

  • expertise_selection_id (str, optional) – id of expertise selection invitation for group

  • model (str, optional) – model used to compute scores, e.g. “specter2+scincl”

  • weight (list[dict], optional) – list of dictionaries that specify weights for publications

  • baseurl (str, optional) – URL to the host, example: https://api.openreview.net (should be replaced by ‘host’ name). If none is provided, it defaults to the environment variable OPENREVIEW_API_BASEURL_V2

Returns:

Dictionary containing the job id

Return type:

dict

request_raw_expertise(expertise_request, baseurl=None)[source]

Calls the Expertise API with a raw expertise request.

Parameters:
  • expertise_request (dict) – Dictionary containing the expertise request to be sent to the Expertise API

  • baseurl (str, optional) – URL to the host, example: https://api.openreview.net (should be replaced by ‘host’ name). If none is provided, it defaults to the environment variable OPENREVIEW_API_BASEURL_V2

Returns:

Dictionary containing the response from the Expertise API

Return type:

dict

request_user_subset_expertise(name, members, expertise_selection_id=None, venue_id=None, invitation=None, model='specter2+scincl', weight=None, baseurl=None)[source]

Call to the Expertise API to compute scores for a subset of users to papers.

Parameters:
  • name (str) – name of the job

  • members (list[str]) – list of profile IDs for which to compute scores

  • expertise_selection_id (str, optional) – id of expertise selection invitation for members

  • venue_id (str, optional) – paper venue id used to retrieve papers, e.g. venue_id/Submission for active papers

  • invitation (str, optional) – invitation used to retrieve papers, e.g. venue_id/-/Submission

  • model (str, optional) – model used to compute scores, e.g. “specter2+scincl”

  • weight (list[dict], optional) – list of dictionaries that specify weights for publications

  • baseurl (str, optional) – URL to the host, example: https://api.openreview.net (should be replaced by ‘host’ name). If none is provided, it defaults to the environment variable OPENREVIEW_API_BASEURL_V2

Returns:

Dictionary containing the job id

Return type:

dict

restrict(venue_id)[source]

Restricts a domain/venue, preventing non-authorized users from accessing its data.

Parameters:

venue_id (str) – the domain/venue ID to restrict

Returns:

the API response

Return type:

dict

search_notes(term, content='all', group='all', source='all', limit=None, offset=None)[source]

Searches notes based on term, content, group and source as the criteria. Unlike get_notes(), this method uses Elasticsearch to retrieve the Notes

Parameters:
  • term (str) – Term used to look for the Notes

  • content (str, optional) – Specifies whether to look in all the content, authors, or keywords. Valid inputs: ‘all’, ‘authors’, ‘keywords’

  • group (str, optional) – Specifies under which Group to look. E.g. ‘all’, ‘ICLR’, ‘UAI’, etc.

  • source (str, optional) – Whether to look in papers, replies or all

  • limit (int, optional) – Maximum amount of Notes that this method will return. The limit parameter can range between 0 and 1000 inclusive. If a bigger number is provided, only 1000 Notes will be returned

  • offset (int, optional) – Indicates the position to start retrieving Notes. For example, if there are 10 Notes and you want to obtain the last 3, then the offset would need to be 7.

Returns:

List of notes

Return type:

list[Note]

search_profiles(confirmedEmails=None, emails=None, ids=None, term=None, first=None, middle=None, last=None, fullname=None, relation=None, use_ES=False)[source]

Gets a list of profiles using either their ids or corresponding emails

Parameters:
  • confirmedEmails (list, optional) – List of confirmed emails registered in OpenReview

  • emails (list, optional) – List of emails registered in OpenReview

  • ids (list, optional) – List of OpenReview username ids

  • term (str, optional) – Substring in the username or e-mail to be searched

  • first (str, optional) – First name of user

  • middle (str, optional) – Middle name of user

  • last (str, optional) – Last name of user

Returns:

List of profiles, if emails is present then a dictionary of { emails: profiles } is returned. If confirmedEmails is present then a dictionary of { confirmedEmails: profile } is returned

Return type:

list[Profile]

unrestrict(venue_id)[source]

Removes the restriction from a domain/venue, restoring normal data access.

Parameters:

venue_id (str) – the domain/venue ID to unrestrict

Returns:

the API response

Return type:

dict

update_relation_readers(update)[source]

Updates the relation readers available in the profile. This is an admin method.

Parameters:

update (dict) – Dictionary that accepts the keys append or remove with a list of group ids.

Returns:

The new list of relation readers

Return type:

list

class openreview.api.Group(id=None, content=None, readers=None, writers=None, signatories=None, signatures=None, invitation=None, invitations=None, parent_invitations=None, cdate=None, ddate=None, tcdate=None, tmdate=None, members=None, nonreaders=None, impersonators=None, web=None, anonids=None, deanonymizers=None, host=None, domain=None, parent=None, details=None, description=None)[source]

When a user is created, it is automatically assigned to certain groups that give him different privileges. A username is also a group, therefore, groups can be members of other groups.

Parameters:
  • id (str) – id of the Group

  • readers (list[str]) – List of readers in the Group, each reader is a Group id

  • writers (list[str]) – List of writers in the Group, each writer is a Group id

  • signatories (list[str]) – List of signatories in the Group, each writer is a Group id

  • signatures (list[str]) – List of signatures in the Group, each signature is a Group id

  • cdate (int, optional) – Creation date of the Group

  • ddate (int, optional) – Deletion date of the Group

  • tcdate (int, optional) – true creation date of the Group

  • tmdate (int, optional) – true modification date of the Group

  • members (list[str], optional) – List of members in the Group, each member is a Group id

  • nonreaders (list[str], optional) – List of nonreaders in the Group, each nonreader is a Group id

  • web (optional) – Path to a file that contains the webfield

  • web_string (str, optional) – String containing the webfield for this Group

  • details (optional)

add_member(member)[source]

Adds a member to the group. This is done only on the object not in OpenReview. Another method like post() is needed for the change to show in OpenReview

Parameters:

member (str) – Member to add to the group

Returns:

Group with the new member added

Return type:

Group

add_webfield(web)[source]

Adds a webfield to the group

Parameters:

web (str) – Path to the file that contains the webfield

classmethod from_json(g)[source]

Creates a Group object from a dictionary that contains keys values equivalent to the name of the instance variables of the Group class

Parameters:

g (dict) – Dictionary containing key-value pairs, where the keys values are equivalent to the name of the instance variables in the Group class

Returns:

Group whose instance variables contain the values from the dictionary

Return type:

Group

post(client)[source]

Posts a group to OpenReview

Parameters:

client (Client) – Client that will post the Group

remove_member(member)[source]

Removes a member from the group. This is done only on the object not in OpenReview. Another method like post() is needed for the change to show in OpenReview

Parameters:

member (str) – Member to remove from the group

Returns:

Group after the member was removed

Return type:

Group

to_json()[source]

Converts Group instance to a dictionary. The instance variable names are the keys and their values the values of the dictinary.

Returns:

Dictionary containing all the parameters of a Group instance

Return type:

dict

class openreview.api.Invitation(id=None, invitations=None, parent_invitations=None, domain=None, readers=None, writers=None, invitees=None, signatures=None, edit=None, edge=None, tag=None, message=None, type='Note', noninvitees=None, nonreaders=None, web=None, process=None, preprocess=None, date_processes=None, post_processes=None, duedate=None, expdate=None, cdate=None, ddate=None, tcdate=None, tmdate=None, minReplies=None, maxReplies=None, bulk=None, content=None, reply_forum_views=[], responseArchiveDate=None, details=None, description=None, instructions=None, guestPosting=None, secret=None, humanVerificationRequired=None)[source]
classmethod from_json(i)[source]

Creates an Invitation object from a dictionary that contains keys values equivalent to the name of the instance variables of the Invitation class

Parameters:

i (dict) – Dictionary containing key-value pairs, where the keys values are equivalent to the name of the instance variables in the Invitation class

Returns:

Invitation whose instance variables contain the values from the dictionary

Return type:

Invitation

to_json()[source]

Converts Invitation instance to a dictionary. The instance variable names are the keys and their values the values of the dictinary.

Returns:

Dictionary containing all the parameters of a Invitation instance

Return type:

dict

class openreview.api.Note(invitations=None, parent_invitations=None, readers=None, writers=None, signatures=None, content=None, id=None, external_id=None, external_ids=None, number=None, cdate=None, pdate=None, odate=None, mdate=None, tcdate=None, tmdate=None, ddate=None, forum=None, replyto=None, nonreaders=None, domain=None, details=None, license=None)[source]

TODO: write docs

property authors

Returns the authors as a canonical list of {'fullname', 'username'} dicts, regardless of whether the underlying content stores them as a list of objects (current schema) or as parallel authors/authorids arrays (legacy schema).

classmethod from_json(n)[source]

Creates a Note object from a dictionary that contains keys values equivalent to the name of the instance variables of the Note class

Parameters:

n (dict) – Dictionary containing key-value pairs, where the keys values are equivalent to the name of the instance variables in the Note class

Returns:

Note whose instance variables contain the values from the dictionary

Return type:

Note

to_json()[source]

Converts Note instance to a dictionary. The instance variable names are the keys and their values the values of the dictinary.

Returns:

Dictionary containing all the parameters of a Note instance

Return type:

dict

class openreview.api.Edit(id=None, domain=None, invitations=None, readers=None, writers=None, signatures=None, content=None, note=None, group=None, invitation=None, nonreaders=None, cdate=None, tcdate=None, tmdate=None, ddate=None, tauthor=None)[source]
Parameters:
  • id (str) – Edit id

  • readers (list[str], optional) – List of readers in the Edit, each reader is a Group id

  • writers (list[str], optional) – List of writers in the Edit, each writer is a Group id

  • signatures (list[str], optional) – List of signatures in the Edit, each signature is a Group id

  • note (dict, optional) – Template of the Note that will be created

  • invitation (dict, optional) – Template of the Invitation that will be created

  • nonreaders (list[str], optional) – List of nonreaders in the Edit, each nonreader is a Group id

  • cdate (int, optional) – Creation date

  • ddate (int, optional) – Deletion date

  • tcdate (int, optional) – True creation date

  • tmdate (int, optional) – Modification date

classmethod from_json(e)[source]

Creates an Edit object from a dictionary that contains keys values equivalent to the name of the instance variables of the Edit class

Parameters:

i (dict) – Dictionary containing key-value pairs, where the keys values are equivalent to the name of the instance variables in the Edit class

Returns:

Edit whose instance variables contain the values from the dictionary

Return type:

Edit

to_json()[source]

Converts Edit instance to a dictionary. The instance variable names are the keys and their values the values of the dictinary.

Returns:

Dictionary containing all the parameters of a Edit instance

Return type:

dict

Tools

openreview.tools.concurrent_get(client, get_function, **params)[source]

Given a function that takes a single parameter, returns a list of results.

Parameters:
  • client – Client used to make requests

  • get_function (function) – Function that takes a that performs the request

  • params (dict) – Parameters to pass to the get_function

Returns:

List of results

Return type:

list

openreview.tools.concurrent_requests(request_func, params, desc='Gathering Responses', max_workers=None)[source]

Returns a list of results given for each request_func param execution. It shows a progress bar to know the progress of the task.

Parameters:
  • request_func (function) – a function to execute for each value of the list.

  • params (list) – a list of values to be executed by request_func.

  • desc (str) – description to show in the progress bar.

  • max_workers (int) – number of workers to use in the ThreadPoolExecutor, default value is min(16, cpu_count() * 5).

Returns:

A list of results given for each func value execution

Return type:

list

openreview.tools.create_profile(client, email, fullname, super_user='openreview.net')[source]

Given email, first name, last name, and middle name (optional), creates a new profile.

Parameters:
  • client (Client) – User that will create the Profile

  • email (str) – Preferred e-mail in the Profile

  • fullname (str) – Full name of the user

  • super_user (str) – Super user of the system

Returns:

The created Profile

Return type:

Profile

openreview.tools.datetime_millis(dt)[source]

Converts a datetime to milliseconds.

Parameters:

dt (datetime) – A date that want to be converted to milliseconds

Returns:

The time from Jan 1, 1970 to the passed date in milliseconds

Return type:

int

openreview.tools.decision_to_venue(venue_id, decision_option, accept_options=None)[source]

Returns the venue for a submission based on its decision

Parameters:
  • venue_id (string) – venue’s short name (i.e., ICLR 2022)

  • decision_option (string) – paper decision (i.e., Accept, Reject)

  • accept_options (list) – accept decisions (i.e., [ Accept (Best Paper), Invite to Archive ])

class openreview.tools.efficient_iterget(get_function, desc='Gathering Responses', **params)[source]

This class can create an iterator from a getter method that returns a list. Below all the iterators that can be created from a getter method:

openreview.Client.get_tags() –> tools.iterget_tags()

openreview.Client.get_notes() –> tools.iterget_notes()

openreview.Client.get_references() –> tools.iterget_references()

openreview.Client.get_invitations() –> tools.iterget_invitations()

openreview.Client.get_groups() –> tools.iterget_groups()

Parameters:
  • get_function (function) – Any of the aforementioned methods

  • params (dict) – Dictionary containing parameters for the corresponding method. Refer to the passed method documentation for details

openreview.tools.generate_bibtex(note, venue_fullname, year, url_forum=None, paper_status='under review', anonymous=True, names_reversed=False, baseurl='https://openreview.net', editor=None)[source]

Generates a bibtex field for a given Note.

Parameters:
  • note (Note) – Note from which the bibtex is generated

  • venue_fullname (str) – Full name of the venue to be placed in the book title field

  • year (str) – Note year

  • url_forum (str, optional) – Forum id, if none is provided, it is obtained from the note parameter: note.forum

  • paper_status (string, optional) – Used to indicate the status of a paper: [“accepted”, “rejected” or “under review”]

  • anonymous (bool, optional) – Used to indicate whether or not the paper’s authors should be revealed

  • names_reversed (bool, optional) – If true, it indicates that the last name is written before the first name

  • baseurl (str, optional) – Base url where the bibtex is from. Default https://openreview.net

Returns:

Note bibtex

Return type:

str

openreview.tools.get_all_venues(client)[source]

Returns a list of all the venues

Parameters:

client (Client) – Client used to get all the venues

Returns:

List of all the venues represented by a their corresponding Group id

Return type:

list[str]

openreview.tools.get_comprehensive_profile_info(profile, n_years=None)[source]

Gets all the domains, emails, relations associated with a Profile

Parameters:
  • profile (Profile) – Profile from which all the relations will be obtained

  • n_years (int, optional) – Number of years to consider when getting the profile information

Returns:

Dictionary with the domains, emails, and relations associated with the passed Profile

Return type:

dict

openreview.tools.get_conflicts(author_profiles, user_profile, policy='default', n_years=None)[source]

Finds conflicts between the passed user Profile and the author Profiles passed as arguments

Parameters:
  • author_profiles (list[Profile]) – List of Profiles for which an association is to be found

  • user_profile (Profile) – Profile for which the conflicts will be found

  • policy (str or function, optional) – Policy can be either a function or a string. If it is a function, it will be called with the user Profile and the author Profile as arguments. If it is a string, it will be used to find the corresponding function in the default policy dictionary. If no policy is passed, the default policy will be used.

  • n_years (int, optional) – Number of years to be considered for conflict detection.

Returns:

List containing all the conflicts between the user Profile and the author Profiles

Return type:

list[str]

openreview.tools.get_current_submissions_profile_info(profile, n_years=None, submission_venueid=None)[source]

Gets only submissions submitted to the current venue

Parameters:
  • profile (Profile) – Profile from which all publications will be obtained

  • submission_venue_id (str) – venue_id of submissions we want to obtain

Returns:

Dictionary with the current publications associated with the passed Profile

Return type:

dict

openreview.tools.get_group(client, id)[source]

Get a single Group by id if available

Parameters:
  • client (Client) – User that will retrieve the group

  • id (str) – id of the group

Returns:

Group that matches the passed id

Return type:

Group

openreview.tools.get_invitation(client, id)[source]

Get a single Invitation by id if available

Parameters:
  • client (Client) – User that will retrieve the invitation

  • id (str) – id of the invitation

Returns:

Invitation that matches the passed id or None if it does not exist or it is expired

Return type:

Invitation

openreview.tools.get_neurips_profile_info(profile, n_years=None)[source]

Gets all the domains, emails, relations associated with a Profile

Parameters:
  • profile (Profile) – Profile from which all the relations will be obtained

  • n_years (int, optional) – Number of years to consider when getting the profile information

Returns:

Dictionary with the domains, emails, and relations associated with the passed Profile

Return type:

dict

openreview.tools.get_note(client, id)[source]

Get a single Note by id if available

Parameters:
  • client (Client) – User that will retrieve the note

  • id (str) – id of the note

Returns:

Note that matches the passed id

Return type:

Note

openreview.tools.get_paperhash(first_author, title)[source]

Returns the paperhash of a paper, given the title and first author.

Parameters:
  • first_author (str) – First author that appears on the paper

  • title (str) – Title of the paper

Returns:

paperhash, see example

Return type:

str

Example:

>>> get_paperhash('David Soergel', 'Open Scholarship and Peer Review: a Time for Experimentation')
u'soergel|open_scholarship_and_peer_review_a_time_for_experimentation'
openreview.tools.get_preferred_name(profile, last_name_only=False)[source]

Accepts openreview.Profile object

Parameters:

profile (Profile) – Profile from which the preferred name will be retrieved

Returns:

User’s preferred name, if available, or the first listed name if not available.

Return type:

str

openreview.tools.get_profile(client, value, with_publications=False)[source]

Get a single profile (a note) by id, if available

Parameters:
  • client (Client) – User that will retrieve the profile

  • value (str) – e-mail or id of the profile

Returns:

Profile with that matches the value passed as parameter

Return type:

Profile

openreview.tools.get_profile_info(profile, n_years=None)[source]

Gets all the domains, emails, relations associated with a Profile

Parameters:
  • profile (Profile) – Profile from which all the relations will be obtained

  • n_years (int, optional) – Number of years to consider when getting the profile information

Returns:

Dictionary with the domains, emails, and relations associated with the passed Profile

Return type:

dict

openreview.tools.get_profiles(client, ids_or_emails, with_publications=False, with_relations=False, with_preferred_emails=None, as_dict=False)[source]

Helper function that repeatedly queries for profiles, given IDs and emails. Useful for getting more Profiles than the server will return by default (1000)

Parameters:

with_preferred_emails (str) – invitation id to get the edges where the preferred emails are stored

openreview.tools.get_user_hash_key(user, hash_seed, invitation=None)[source]

Generate a hash key for a user’s recruitment or authentication link.

When invitation is provided, returns a JWT token encoding the user and invitation. Otherwise, returns an HMAC-SHA256 hex digest keyed by hash_seed.

Parameters:
  • user (str) – Email address or group ID of the user.

  • hash_seed (str) – Secret seed used for HMAC hashing or JWT signing.

  • invitation (str, optional) – Invitation ID. If provided, a JWT is returned instead of an HMAC hash.

Returns:

JWT token string (if invitation is given) or HMAC-SHA256 hex digest.

Return type:

str

openreview.tools.is_accept_decision(decision, accept_options=None)[source]

Checks if decision is an accept decision

Parameters:
  • decision (string) – paper decision (i.e., Accept, Reject)

  • accept_options (list) – accept decisions (i.e., [ Accept (Best Paper), Invite to Archive ])

class openreview.tools.iterget(get_function, **params)[source]

This class can create an iterator from a getter method that returns a list. Below all the iterators that can be created from a getter method:

openreview.Client.get_tags() –> tools.iterget_tags()

openreview.Client.get_notes() –> tools.iterget_notes()

openreview.Client.get_references() –> tools.iterget_references()

openreview.Client.get_invitations() –> tools.iterget_invitations()

openreview.Client.get_groups() –> tools.iterget_groups()

Parameters:
  • get_function (function) – Any of the aforementioned methods

  • params (dict) – Dictionary containing parameters for the corresponding method. Refer to the passed method documentation for details

openreview.tools.iterget_edges(client, invitation=None, head=None, tail=None, label=None, limit=None, trash=None)[source]

Return an iterator over Edges, bypassing API pagination limits.

Fetches all matching edges across multiple API pages transparently. Use this instead of client.get_edges() when the result set may exceed the single-request limit.

Parameters:
  • client (Client) – Client used to get the Edges.

  • invitation (str, optional) – An Invitation ID. If provided, returns Edges whose invitation field matches.

  • head (str, optional) – A head entity ID. If provided, returns Edges whose head field matches.

  • tail (str, optional) – A tail entity ID. If provided, returns Edges whose tail field matches.

  • label (str, optional) – If provided, returns Edges whose label field matches.

  • limit (int, optional) – Maximum number of Edges to return. If None, returns all matching Edges.

  • trash (bool, optional) – If True, includes Edges that have been deleted.

Returns:

Iterator over Edge objects matching the provided filters.

Return type:

iterget

openreview.tools.iterget_grouped_edges(client, invitation=None, groupby='head', select='id,tail,label,weight', logger=None)[source]

Helper function for retrieving and parsing all edges in bulk

openreview.tools.iterget_groups(client, id=None, regex=None, member=None, host=None, signatory=None, web=None)[source]

Returns an iterator over groups filtered by the provided parameters ignoring API limit.

Parameters:
  • client (Client) – Client used to get the Groups

  • id (str, optional) – a Note ID. If provided, returns groups whose “id” value is this Group ID.

  • regex (str, optional) – a regular expression string to match Group IDs. If provided, returns groups whose “id” value matches the given regex.

  • member (str, optional) – Essentially, members field contains Group Ids that are members of this Group object. If provided, returns groups whose “members” field contains the given string.

  • host (str, optional)

  • signatory (str, optional) – a Group ID. If provided, returns Groups whose signatory field contains the given Group ID.

  • web (bool, optional) – Groups that contain a web field value

Returns:

Iterator over Groups filtered by the provided parameters

Return type:

iterget

Deprecated since version 1.52.6: Use client.get_all_groups() instead

openreview.tools.iterget_invitations(client, id=None, ids=None, invitee=None, regex=None, tags=None, minduedate=None, duedate=None, pastdue=None, replytoNote=None, replyForum=None, signature=None, note=None, replyto=None, details=None, expired=None, super=None, sort=None)[source]

Returns an iterator over invitations, filtered by the provided parameters, ignoring API limit.

Parameters:
  • client (Client) – Client used to get the Invitations

  • id (str, optional) – an Invitation ID. If provided, returns invitations whose “id” value is this Invitation ID.

  • ids (str, optional) – Comma separated Invitation IDs. If provided, returns invitations whose “id” value is any of the passed Invitation IDs.

  • invitee (str, optional) – Essentially, invitees field in an Invitation object contains Group Ids being invited using the invitation. If provided, returns invitations whose “invitee” field contains the given string.

  • regex (str, optional) – a regular expression string to match Invitation IDs. If provided, returns invitations whose “id” value matches the given regex.

  • tags (list[str], optional) – If provided, returns Invitations whose Tags field contains the given Tag IDs.

  • minduedate (int, optional) – Represents an Epoch time timestamp in milliseconds. If provided, returns Invitations whose duedate is at least equal to the value of minduedate.

  • duedate (int, optional) – Represents an Epoch time timestamp in milliseconds. If provided, returns Invitations whose duedate field matches the given duedate.

  • pastdue (bool, optional)

  • replytoNote (str, optional) – a Note ID. If provided, returns Invitations whose replytoNote field contains the given Note ID.

  • replyForum (str, optional) – a forum ID. If provided, returns Invitations whose forum field contains the given forum ID.

  • signature (str, optional) – a Group ID. If provided, returns Invitations whose signature field contains the given Group ID.

  • note (str, optional) – a Note ID. If provided, returns Invitations whose note field contains the given Note ID.

  • replyto (str, optional) – a Note ID. If provided, returns Invitations whose replyto field matches the given Note ID.

  • details (str, optional)

  • expired (bool, optional) – get also expired invitions, by default returns ‘active’ invitations.

Returns:

Iterator over Invitations filtered by the provided parameters

Return type:

iterget

Deprecated since version 1.52.6: Use client.get_all_invitations() instead

openreview.tools.iterget_messages(client, to=None, subject=None, status=None)[source]

Returns an iterator over Messages ignoring API limit.

Example:

>>> iterget_messages(client, to='melisa@mail.com')
Returns:

Iterator over Messages filtered by the provided parameters

Return type:

iterget

openreview.tools.iterget_notes(client, id=None, paperhash=None, forum=None, invitation=None, replyto=None, tauthor=None, signature=None, writer=None, trash=None, number=None, mintcdate=None, content=None, details=None, sort=None)[source]

Returns an iterator over Notes filtered by the provided parameters ignoring API limit.

Parameters:
  • client (Client) – Client used to get the Notes

  • id (str, optional) – a Note ID. If provided, returns Notes whose ID matches the given ID.

  • paperhash (str, optional) – a “paperhash” for a note. If provided, returns Notes whose paperhash matches this argument. (A paperhash is a human-interpretable string built from the Note’s title and list of authors to uniquely identify the Note)

  • forum (str, optional) – a Note ID. If provided, returns Notes whose forum matches the given ID.

  • invitation (str, optional) – an Invitation ID. If provided, returns Notes whose “invitation” field is this Invitation ID.

  • replyto (str, optional) – a Note ID. If provided, returns Notes whose replyto field matches the given ID.

  • tauthor (str, optional) – a Group ID. If provided, returns Notes whose tauthor field (“true author”) matches the given ID, or is a transitive member of the Group represented by the given ID.

  • signature (str, optional) – a Group ID. If provided, returns Notes whose signatures field contains the given Group ID.

  • writer (str, optional) – a Group ID. If provided, returns Notes whose writers field contains the given Group ID.

  • trash (bool, optional) – If True, includes Notes that have been deleted (i.e. the ddate field is less than the current date)

  • number (int, optional) – If present, includes Notes whose number field equals the given integer.

  • mintcdate (int, optional) – Represents an Epoch time timestamp in milliseconds. If provided, returns Notes whose “true creation date” (tcdate) is at least equal to the value of mintcdate.

  • content (dict, optional) – If present, includes Notes whose each key is present in the content field and it is equals the given value.

  • details (str, optional) – TODO: What is a valid value for this field?

Returns:

Iterator over Notes filtered by the provided parameters

Return type:

iterget

Deprecated since version 1.52.6: Use client.get_all_notes() instead

openreview.tools.iterget_references(client, referent=None, invitation=None, mintcdate=None)[source]

Returns an iterator over references filtered by the provided parameters ignoring API limit.

Parameters:
  • client (Client) – Client used to get the references

  • referent (str, optional) – a Note ID. If provided, returns references whose “referent” value is this Note ID.

  • invitation (str, optional) – an Invitation ID. If provided, returns references whose “invitation” field is this Invitation ID.

  • mintcdate (int, optional) – Represents an Epoch time timestamp in milliseconds. If provided, returns references whose “true creation date” (tcdate) is at least equal to the value of mintcdate.

Returns:

Iterator over references filtered by the provided parameters

Return type:

iterget

Deprecated since version 1.52.6: Use client.get_all_references() instead

openreview.tools.iterget_tags(client, id=None, invitation=None, forum=None, signature=None, tag=None)[source]

Returns an iterator over Tags ignoring API limit.

Example:

>>> iterget_tags(client, invitation='MyConference.org/-/Bid_Tags')
Parameters:
  • client (Client) – Client used to get the Tags

  • id (str, optional) – a Tag ID. If provided, returns Tags whose ID matches the given ID.

  • forum (str, optional) – a Note ID. If provided, returns Tags whose forum matches the given ID.

  • invitation (str, optional) – an Invitation ID. If provided, returns Tags whose “invitation” field is this Invitation ID.

Returns:

Iterator over Tags filtered by the provided parameters

Return type:

iterget

openreview.tools.overwrite_pdf(client, note_id, file_path)[source]

Overwrite all the references of a note with the new pdf file. If the note has an original note then update original references

openreview.tools.percentile(data, percent)[source]

Return the percentile value from data using linear interpolation, matching the behaviour of numpy.percentile with the default ‘linear’ method.

percent may be an int or float in [0, 100]. data must be a non-empty sequence of numbers.

openreview.tools.post_bulk_edges(client, edges, batch_size=50000)[source]

Post a large list of Edges in batches with a progress bar.

Splits the edge list into chunks of batch_size and posts each chunk via client.post_edges(). Returns all posted Edge objects.

Parameters:
  • client (Client) – Client used to post the Edges.

  • edges (list[Edge]) – List of Edge objects to post.

  • batch_size (int, optional) – Number of edges per batch. Default: 50000.

Returns:

List of all posted Edge objects across all batches.

Return type:

list[Edge]

openreview.tools.post_bulk_tags(client, tags, batch_size=50000)[source]

Post a large list of Tags in batches with a progress bar.

Splits the tag list into chunks of batch_size and posts each chunk via client.post_tags(). Returns all posted Tag objects.

Parameters:
  • client (Client) – Client used to post the Tags.

  • tags (list[Tag]) – List of Tag objects to post.

  • batch_size (int, optional) – Number of tags per batch. Default: 50000.

Returns:

List of all posted Tag objects across all batches.

Return type:

list[Tag]

openreview.tools.recruit_reviewer(client, user, first, hash_seed, recruit_reviewers_id, recruit_message, recruit_message_subj, reviewers_invited_id, contact_info='info@openreview.net', verbose=True, replyTo=None, invitation=None, signature=None)[source]

Recruit a reviewer. Sends an email to the reviewer with a link to accept or reject the recruitment invitation.

Parameters:
  • client (Client) – Client used to send the e-mail

  • user (str) – User to whom the e-mail will be sent

  • first (str) – First name of the person to whom e-mail will be sent

  • hash_seed (int) – a random number for seeding the hash.

  • recruit_message (str) – a formattable string containing the following string variables: (name, accept_url, decline_url)

  • recruit_message_subj (str) – subject line for the recruitment email

  • reviewers_invited_id (str) – group ID for the “Reviewers Invited” group, often used to keep track of which reviewers have already been emailed. str

  • contact_info (str) – The information used to contact support for questions

  • verbose (bool, optional) – Shows response of openreview.Client.post_message() and shows the body of the message sent

  • baseurl (str, optional) – Use this baseUrl instead of client.baseurl to create recruitment links

openreview.tools.recruit_user(client, user, hash_seed, recruitment_message_subject, recruitment_message_content, recruitment_invitation_id, comittee_invited_id, contact_email, message_invitation, message_signature, name=None)[source]

Send a recruitment email to a user with a personalized acceptance link.

Generates an HMAC-based hash key for the user, builds a unique recruitment URL, personalizes the message template by replacing {{fullname}}, {{invitation_url}}, and {{contact_info}} placeholders, and sends the email via client.post_message().

Parameters:
  • client (Client) – Client used to send the recruitment email.

  • user (str) – Email address or profile ID of the user to recruit.

  • hash_seed (str) – Secret seed used to generate the HMAC hash key for the recruitment link.

  • recruitment_message_subject (str) – Subject line for the recruitment email.

  • recruitment_message_content (str) – Message body template. Supports {{fullname}}, {{invitation_url}}, and {{contact_info}} placeholders.

  • recruitment_invitation_id (str) – Invitation ID used in the recruitment URL.

  • comittee_invited_id (str) – Group ID for the invited committee group, used as parentGroup for the message. (Note: parameter name is a legacy misspelling of “committee”.)

  • contact_email (str) – Contact email address substituted into {{contact_info}} and used as the replyTo address.

  • message_invitation (str) – Invitation ID for the message invitation.

  • message_signature (str) – Signature used when posting the message.

  • name (str, optional) – Full name of the user, used to replace {{fullname}} in the message.

openreview.tools.replace_members_with_ids(client, group)[source]

Given a Group object, iterates through the Group’s members and, for any member represented by an email address, attempts to find a profile associated with that email address. If a profile is found, replaces the email with the profile id.

Parameters:
  • client (Client) – Client used to get the Profiles and to post the new Group

  • group (Group) – Group for which the profiles will be updated

Returns:

Group with the emails replaced by Profile ids

Return type:

Group

openreview.tools.run_once(f)[source]

Decorator to run a function only once and return its output for any subsequent call to the function without running it again

openreview.tools.should_match_invitation_source(client, invitation, submission, note=None, domain=None)[source]

Checks if the invitation source matches the submission and note.

openreview.tools.subdomains(domain)[source]

Given an email address, returns a list with the domains and subdomains.

Parameters:

domain (str) – e-mail address or domain of the e-mail address

Returns:

List of domains and subdomains

Return type:

list[str]

Example:

>>> subdomains('johnsmith@iesl.cs.umass.edu')
[u'iesl.cs.umass.edu', u'cs.umass.edu', u'umass.edu']
openreview.tools.timestamp_GMT(year, month, day, hour=0, minute=0, second=0)[source]

Given year, month, day, and (optionally) hour, minute, second in GMT time zone: returns the number of milliseconds between this date and Epoch Time (Jan 1, 1970).

Parameters:
  • year (int) – year >= 1970

  • month (int) – value from 1 to 12

  • day (int) – value from 1 to 28, 29, 30, or 31; depending on the month value.

  • hour (int, optional) – value from 0 to 23

  • minute (int, optional) – value from 0 to 59

  • second (int, optional) – value from 0 to 59

Returns:

Number of milliseconds between the passed date and Epoch Time (Jan 1, 1970)

Return type:

int

>>> timestamp_GMT(1990, 12, 20, hour=12, minute=30, second=24)
661696224000