Relay API
Overview
The Relay API provides a unified way to submit and manage different types of objects for validation and storage. Some of the supported use cases include document integrity checks, reviewer matching and author verification, with the flexibility to support additional workflows as needed.
Clients interact with the API through a POST request containing a JSON payload with the relevant details. Each request is validated against predefined constraints before the data is stored and made available for future retrieval.
Recommended Integration Workflow
The preferred pattern for a Relay-based integration is event-driven rather than polling-based. Rather than continuously querying ScholarOne Manuscripts for new documents, an integrator should subscribe to the relevant notification service event (for example, a new submission or a revision event) and wait for ScholarOne Manuscripts to push a notification when that event occurs. The notification payload includes, at minimum, the site_name and documentId for the affected submission, which together uniquely identify the document across the ScholarOne Manuscripts instance.
Upon receiving the notification, the integrator should use these two values to call the appropriate ScholarOne Manuscripts API to retrieve the metadata it needs, for example, getSubmissionInfoFull is by far the most commonly used call for this purpose, though other endpoints may apply depending on the use case. With this metadata in hand, the integrator runs its check or report generation process on its own infrastructure, outside of ScholarOne Manuscripts.
Once the results are ready, the integrator posts its findings back to ScholarOne Manuscripts by submitting a Relay API request to /api/s1m/v2/system/addJSONData, using the same documentId to associate the report with the correct submission. This notification-triggered, metadata-pull, report-push cycle keeps integrator systems synchronized with S1M in near real time while minimizing unnecessary API traffic, and is the recommended approach for any new Relay integration.
Method: POST
Resource
/api/s1m/v2/system/addJSONData
Request Parameters
| Element | Type | Description | Required | Example or Default Value |
|---|---|---|---|---|
| addJSONData | Root | Yes | ||
| username | String | Profile User Name. This is the user name used by the API, not a ScholarOne Manuscripts user. This is from the Caller’s profile. | Yes | sample_user |
| password | String | The API Key. Encrypted value uniquely identifying and authenticating Caller | Yes | SRU4DQ5WOJ2PX8CA |
| site_name | String | Site short name. The short name is the abbreviated or truncated name of the journal, society, publisher, or family. | Yes | salesdemoplus |
| url | String | The Web Service URL, which identifies the specific service to handle the request. | Yes | v2/system/addJSONData |
| external_id | String | An id value that can be set by the client for call tracking. Caller supplied Text string to be stored with Audit History information. | No | 123456 |
Request Body Elements
- The request body must be in JSON format.
Request Body Elements for Integrity Check example
{
"data": {
"type": 2,
"payload": {
"documentId": 12345,
"content": "<p>Sample content</p>",
"checkType": 1111,
"url": "https://example.com",
"effectiveDate": "2025-03-17",
"score": 45,
"alert": "false"
}
}
}Request Body Elements Description
| Request Body Elements/Example Relay API | Type | Description | Req |
|---|---|---|---|
| data | Object | Root object that defines the request structure | Yes |
type
| Integer | This field specifies the request type: set 2 to submit a Research Integrity report, or set 3 to submit a Technical Check report. | Yes |
| payload | Object | Contains the specific details relevant to the request. | Yes |
documentId
| Integer | Unique identifier of the document. | Yes |
checkType
| Integer | A unique identifier assigned to each vendor that ScholarOne uses to distinguish one vendor from another. Assigned by S1 | Yes |
content
| String | The document content. It supports basic HTML tags, inline CSS, and has a maximum length of 2000 characters. The content field allows the following HTML tags: Text formatting: Images: | Yes |
url
| String | The URL providing additional information related to the Integrity Check request. Max length: 500 characters. | Yes |
effectiveDate
| date | The expiration date of the check. The value must be provided in standard date format. | Yes |
score
| Integer | A numeric representation ot the integrity check score. Must be between 0 and 100. Note: This feature is still under development and may be subject to change. | Yes(for Research Integrity use) |
alert
| String | Indicates whether an alert was triggered during the integrity check. Note: This feature is still under development and may be subject to change. | Yes(for Research Integrity use) |
Updated about 2 months ago

