Skip to content

Oxton Research Identifier · persistent identifiers and open metadata for scholarly publications

ORI — Oxton Research Identifier Oxton Research Identifier
Menu

Guide

OJS integration guide

How journals that use Open Journal Systems (OJS) register their articles in ORI. The ORI Connector for OJS plugin registers published articles automatically; journals can also use the ORI API, the ORI dashboard, or import their back catalogue from a spreadsheet. ORI is the institutional identifier of Oxton; it is not a DOI.

Updated outubro 16, 2026

Ways to connect

OptionBest for
ORI Connector for OJS (plugin)Most journals: articles are registered when they are published, the identifier appears on the article page and the PDF is deposited. Downloaded free of charge in the ORI dashboard (Downloads).
ORI dashboardA few articles per issue: editors fill in the record form and deposit the PDF by hand.
ORI APIAutomatic registration from OJS, built by your developer or provider with a journal credential.
Spreadsheet importThe back catalogue: export your articles to CSV and import them in Dashboard › Publisher Hub (when your plan includes ORI Publisher Hub).

ORI Connector for OJS

A generic plugin for OJS 3.4 and 3.5, available in the ORI dashboard, Downloads, once your organization’s plan is paid. It is activated with the subscription key shown in the same place.

  1. Download the plugin (.tar.gz) in the ORI dashboard, Downloads, and copy the subscription key.
  2. Upload it in OJS: Settings › Website › Plugins › Upload a new plugin. Enable ORI Connector in the generic plugins.
  3. Open its Settings and enter the subscription key (ORIK-XXXXX-XXXXX-XXXXX-XXXXX), the ORI address https://oriregistry.org and the journal credential. Without a valid key no article is sent.
  4. Open Articles in ORI, use Test connection, then Register all published articles.
  5. From then on, articles are sent when they are published (alone or with their issue), edited articles are updated every hour, and the ORI identifier is shown in the details of the article page.
  • The article reference in ORI is ojs-submission-{id}, the same used by Oxton Journals for articles migrated from OJS, so moving platform never creates a second record.
  • The subscription key and the credential are stored encrypted; the key is checked every 12 hours. If the plan lapses, new articles wait until it is renewed; identifiers already issued keep working.
  • The PDF galley is deposited in the ORI repository with its SHA-256 checksum.
  • Updates: a new version appears in the list of plugins, in the connector screens and as a notice to managers; the site administrator clicks Update now in “Articles in ORI” and OJS installs it, with nothing to download by hand (from version 1.1.0 on).

Requirements

  • Your organization and journal are approved in ORI (see Request membership).
  • A journal credential issued by an institutional administrator in the ORI dashboard (Credentials) with the scopes registrations:write and registrations:read. The secret is shown only once.
  • For the API: the OJS server can make HTTPS requests to https://oriregistry.org.

Automatic registration with the API

  1. An article is published in OJS. Your integration reads its metadata (from the OJS database, its REST API or its OAI-PMH endpoint).
  2. Send a registration request: POST /wp-json/ori/v1/registrations with the record and "target_status": "published". Use the OJS submission id as source_ref and as the Idempotency-Key header.
  3. Read the outcome. The answer is 200 with the identifier, or 202 while the journal reviews registrations; follow it with GET /wp-json/ori/v1/registrations/{id}.
  4. Store and show the ORI in OJS, for example in a custom field shown on the article page, with the link https://oriregistry.org/10001/2026.0001.
  5. Deposit the PDF (optional): POST /wp-json/ori/v1/records/{ORI}/files with the galley file (multipart, field file).
curl -X POST https://oriregistry.org/wp-json/ori/v1/registrations \
  -H "Authorization: Bearer ori_…" -H "Idempotency-Key: ojs-1234" -H "Content-Type: application/json" \
  -d '{"target_status":"published","record":{"source_ref":"ojs-1234","publication_type":"research-article","language":"en","title":"…","contributors":[{"given_names":"Ana","family_name":"Souza","orcid":"0000-0002-1825-0097"}],"published_date":"2026-10-01","article_url":"https://journal.example.org/index.php/j/article/view/1234"}}'

Updates and corrections

  • Send the same request again with the same source_ref when the article changes in OJS: ORI updates the record and keeps a new version in its history. The identifier never changes.
  • A request repeated with the same Idempotency-Key returns the first answer and never creates a second record.
  • Withdrawals and retractions are made in the ORI dashboard, with the reason shown publicly.

Mapping OJS data to ORI

OJSORI field
Title, subtitle, abstract (primary locale)title, subtitle, abstract; other locales go to translated_titles and translated_abstracts
Authors: given name, family name, ORCID, affiliation, RORcontributors (with orcid and affiliations)
Keywordskeywords, with language
Issue volume, number; pagesvolume, issue, first_page, last_page
Date publishedpublished_date (YYYY-MM-DD)
DOIexternal_ids (scheme doi)
License URLlicense_code (e.g. CC-BY-4.0) or license_url
Article page URL; PDF galley URLarticle_url; fulltext_url
References (one per line)references, each with optional DOI or URL
Submission idsource_ref (e.g. ojs-1234)

Errors

  • 422: invalid metadata; the answer lists each field and its message.
  • 401 / 403: missing, revoked or out-of-scope credential.
  • 402: the plan of the organization does not cover new identifiers.
  • 409: the article is already registered (the message gives its ORI) or another record uses the same DOI or address.
  • 429: too many requests; wait and retry.

Other guides