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:
- Returns:
Dictionary containing user information and the authentication token
- Return type:
Example:
>>> res = client.activate_user('new@user.com', { 'names': [ { 'fullname': 'New User', 'username': '~New_User1' } ], 'emails': ['new@user.com'], 'preferredEmail': 'new@user.com' })
- 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:
- delete_profile_reference(reference_id)[source]
Deletes the Profile Reference specified by reference_id.
- 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 viatools.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:
- 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:
- 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:
- 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:
- 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:
- 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:
- Returns:
The binary content of a pdf
- Return type:
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=Trueandoffsetis 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)whenwith_count=True.- Return type:
- 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:
- 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:
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'andselect='tail', each group has the form:{"id": {"head": "paper-1"}, "values": [{"tail": "user-1"}, {"tail": "user-2"}]}
Note:
limitapplies 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:
- 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:
- get_institutions(id=None, domain=None)[source]
Get a single Institution by id or domain if available
- Parameters:
- Returns:
Dictionary with the Institution information
- Return type:
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:
- 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:
- get_jobs_status()[source]
Only for Super User. Retrieves the jobs status of the queue
- Returns:
Jobs status
- Return type:
- 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:
- Returns:
Messages that match the passed parameters
- Return type:
- 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:
- 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:
- Returns:
The binary content of a pdf
- Return type:
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:
- Returns:
List of log entry dictionaries.
- Return type:
- 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:
- 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=Trueandoffsetis 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)whenwith_count=True.- Return type:
- get_tildeusername(fullname)[source]
Gets next possible tilde user name corresponding to the specified full name
- 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:
- Returns:
List of venues.
- Return type:
- 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.
- 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).
- 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:
- Returns:
Dictionary containing user information and the authentication token
- Return type:
- 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.
- post_direct_message(subject, recipients, message, sender=None)[source]
Posts a message to the recipients and consequently sends them emails
- 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.
- 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.
- 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:
- 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:
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:
- post_note(note)[source]
Posts the note. If the note is unsigned, signs it using the client’s default signature.
- 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
- put_attachment(file_path, invitation, name)[source]
Upload a file attachment to the OpenReview server.
- register_user(email=None, fullname=None, password=None)[source]
Registers a new user
- Parameters:
- Returns:
Dictionary containing the new user information including his id, username, email(s), readers, writers, etc.
- Return type:
- 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:
- 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 usenew_idinstead. This is typically called after a profile tilde ID is renamed.
- 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_Last1to~First_Last2).
- 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:
- 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:
- 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
- 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
- post(client)[source]
Posts a group to OpenReview
- Parameters:
client (Client) – Client that will post the Group
- 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:
- 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
- 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
nonreaders (list[str], optional) – List of nonreaders in the Invitation, each nonreader is a Group id
- 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
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_user(token, content)[source]
Activates a newly registered user
- Parameters:
- Returns:
Dictionary containing user information and the authentication token
- Return type:
Example:
>>> res = client.activate_user('new@user.com', { 'names': [ { 'first': 'New', 'last': 'User', 'username': '~New_User1' } ], 'emails': ['new@user.com'], 'preferredEmail': 'new@user.com' })
- confirm_alternate_email(profile_id, alternate_email, activation_token=None)[source]
Confirms an alternate email address
- 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:
- delete_profile_reference(reference_id)[source]
Deletes the Profile Reference specified by reference_id.
- 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:
- Returns:
a {status = ‘ok’} in case of a successful deletion and an OpenReview exception otherwise
- Return type:
- 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()withstream=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
invitationfield 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:
- 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:
- 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:
- 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:
- 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:
- Returns:
The binary content of a pdf
- Return type:
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_countis True andoffsetis 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
invitationfield 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)whenwith_countis True andoffsetis None.- Return type:
- 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
domainis not provided butinvitationis, 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
invitationfield 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:
- 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:
Example:
>>> group = client.get_group('your-email@domain.com')
- 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.
- 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}]}. Thelimitapplies 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
invitationfield 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
idandvalueskeys.- Return type:
- 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:
- get_institutions(id=None, domain=None)[source]
Get a single Institution by id or domain if available
- Parameters:
- Returns:
Dictionary with the Institution information
- Return type:
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:
- 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.
- 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:
- get_jobs_status()[source]
Only for Super User. Retrieves the jobs status of the queue
- Returns:
Jobs status
- Return type:
- get_message_requests(id=None, invitation=None)[source]
Posts a message to the recipients and consequently sends them emails
- 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:
- Returns:
Messages that match the passed parameters
- Return type:
- 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_countis 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)whenwith_countis True.- Return type:
- 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:
- 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:
- Returns:
The binary content of a pdf
- Return type:
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
idreturned by apost_*_editcall) 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:
- 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:
- 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_countis True andoffsetis 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
notefield matches.invitation (str, optional) – An Invitation ID. If provided, returns Tags whose
invitationfield 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
forumfield 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)whenwith_countis True andoffsetis None.- Return type:
- get_tildeusername(fullname)[source]
Gets next possible tilde user name corresponding to the specified full name
- 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
invitationfield matches one of these IDs.
- Returns:
List of Venues.
- Return type:
- 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.
- 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.
- moderate_profile(profile_id, decision, reason=None)[source]
Moderates a Profile
- Parameters:
- Returns:
The new updated Profile
- Return type:
- post_direct_message(subject, recipients, message, sender=None)[source]
Posts a message to the recipients and consequently sends them emails
- 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, orinvitationkeys and POSTs to the corresponding edits endpoint (/notes/edits,/groups/edits, or/invitations/edits).
- 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_cacheis 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.idto 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:
- 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.
- 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.idto 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:
- 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:
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:
- 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:
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:
- 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.idto 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.idto 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
idand thenotewith itsid.- Return type:
- 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-Tokenheader instead of the standardAuthorizationheader.- 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:
- post_tag(tag)[source]
Posts the tag.
- Parameters:
tag (Tag) – Tag to be posted
- Return Tag:
The posted Tag
- put_attachment(file_path, invitation, name)[source]
Upload a file attachment to the OpenReview server.
- Parameters:
- Returns:
A relative URL for the uploaded file, to be used as the field value in a Note.
- Return type:
- register_user(email=None, fullname=None, password=None)[source]
Registers a new user
- Parameters:
- Returns:
Dictionary containing the new user information including his id, username, email(s), readers, writers, etc.
- Return type:
- 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:
- rename_edges(current_id, new_id)[source]
Rename all Edges that reference a given ID, replacing it with a new ID.
Updates the
headandtailfields of all Edges that containcurrent_id, replacing occurrences withnew_id.
- 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:
- 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:
- 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:
- 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:
- 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:
- restrict(venue_id)[source]
Restricts a domain/venue, preventing non-authorized users from accessing its data.
- 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:
- 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:
- 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
- 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
- post(client)[source]
Posts a group to OpenReview
- Parameters:
client (Client) – Client that will post the Group
- 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:
- 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 parallelauthors/authoridsarrays (legacy schema).
- 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
Tools
- openreview.tools.concurrent_get(client, get_function, **params)[source]
Given a function that takes a single parameter, returns a list of results.
- 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:
- 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.
- 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:
- 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:
- openreview.tools.get_comprehensive_profile_info(profile, n_years=None)[source]
Gets all the domains, emails, relations associated with a Profile
- 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:
- openreview.tools.get_current_submissions_profile_info(profile, n_years=None, submission_venueid=None)[source]
Gets only submissions submitted to the current venue
- openreview.tools.get_invitation(client, id)[source]
Get a single Invitation by id if available
- Parameters:
- Returns:
Invitation that matches the passed id or None if it does not exist or it is expired
- Return type:
- openreview.tools.get_neurips_profile_info(profile, n_years=None)[source]
Gets all the domains, emails, relations associated with a Profile
- openreview.tools.get_paperhash(first_author, title)[source]
Returns the paperhash of a paper, given the title and first author.
- Parameters:
- Returns:
paperhash, see example
- Return type:
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
- openreview.tools.get_profile(client, value, with_publications=False)[source]
Get a single profile (a note) by id, if available
- openreview.tools.get_profile_info(profile, n_years=None)[source]
Gets all the domains, emails, relations associated with a Profile
- 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
invitationis provided, returns a JWT token encoding the user and invitation. Otherwise, returns an HMAC-SHA256 hex digest keyed byhash_seed.- Parameters:
- Returns:
JWT token string (if invitation is given) or HMAC-SHA256 hex digest.
- Return type:
- 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:
- 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:
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:
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:
- 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:
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:
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:
- 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_sizeand posts each chunk viaclient.post_edges(). Returns all posted Edge objects.
- 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_sizeand posts each chunk viaclient.post_tags(). Returns all posted Tag objects.
- 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 sentbaseurl (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 viaclient.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.
- 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:
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:
- Returns:
Number of milliseconds between the passed date and Epoch Time (Jan 1, 1970)
- Return type:
>>> timestamp_GMT(1990, 12, 20, hour=12, minute=30, second=24) 661696224000