- April 22, 2025
by Akshay Bedre - Oracle DBA Introduction
An effective solution for exposing your Oracle Database data as RESTful web services is Oracle REST Data Services (ORDS). By serving as a link between your Oracle database and the modern web, it enables developers to use common HTTP methods, such as GET, POST, PUT, and DELETE, to communicate with the database.
Developing RESTful endpoints without writing complex backend code is easy with ORDS, whether you're building a web app, mobile app, or just need lightweight API access to your data. DBAs, full-stack groups, and APEX developers who want to modernize legacy systems might find it extremely useful.
We will walk through each step of ORDS installation in this blog so you can implement RESTful services in your Oracle environment immediately.

1. Prerequisites
- Oracle database: An Oracle Database instance (11 gR2 or later recommended). You should have SYS or DBA privileges for configuration.
- Java Development Kit (JDK): ORDS requires Java 17 or later. Make sure java is in your system's PATH.
- ORDS Software : Download the latest ORDS .zip from Oracle’s official site Unzip to your desired location.
- Web Server (Optional): You can run ORDS in standalone mode, or deploy it using:Apache Tomcat (common in production) Oracle WebLogic (optional, enterprise use)
- Network and Port Access : Default ports 8080 for standalone 8443 for HTTPS (if enabled). Ensure your firewall allows traffic on these ports.
- Create ORDS Configuration Directory and home (Optional but Recommended)
Create a separate configuration directory to manage ORDS files cleanly:
2. Steps for installing
- Download and Extract ORDS:
Go to the Oracle website: ORDS Downloads - Extract the file:
Unzip the package in the ORDS_HOME directory:
You will see files like
- Export path:
- Start Installation:
You will need the following information regarding the database
Once all the details are entered, the output looks like this :
[oracle@prod config]$ ords --config /u01/ords/config/ install
ORDS: Release 24.4 Production on Sun Apr 06 21:02:38 2025
Copyright (c) 2010, 2025, Oracle.
Configuration:
/u01/ords/configThe configuration folder /u01/ords/config does not contain any configuration files.
Oracle REST Data Services - Interactive Install
Enter a number to select the database connection type to use
[1] Basic (host name, port, service name)
[2] TNS (TNS alias, TNS directory)
[3] Custom database URL
Choose [1]: 1
Enter the database host name [localhost]: prod.database.com
Enter the database listen port [1521]:
Enter the database service name [orcl]: PROD
Provide database user name with administrator privileges.
Enter the administrator username: SYS
Enter the database password for SYS AS SYSDBA:Retrieving information.
ORDS is not installed in the database. ORDS installation is required.Enter a number to update the value or select option A to Accept and Continue
[1] Connection Type: Basic
[2] Basic Connection: HOST=prod.database.com PORT=1521 SERVICE_NAME=PROD
Administrator User: SYS AS SYSDBA
[3] Database password for ORDS runtime user (ORDS_PUBLIC_USER):
[4] ORDS runtime user and schema tablespaces: Default: SYSAUX Temporary TEMP
[5] Additional Feature: Database Actions
[6] Configure and start ORDS in Standalone Mode: Yes
[7] Protocol: HTTP
[8] HTTP Port: 8080
[9] APEX static resources location:
[A] Accept and Continue - Create configuration and Install ORDS in the database
[Q] Quit - Do not proceed. No changes
Choose [A]: A
The setting named: db.connectionType was set to: basic in configuration: default
The setting named: db.hostname was set to: prod.database.com in configuration: default
The setting named: db.port was set to: 1521 in configuration: default
The setting named: db.servicename was set to: PROD in configuration: default
The setting named: plsql.gateway.mode was set to: proxied in configuration: default
The setting named: db.username was set to: ORDS_PUBLIC_USER in configuration: default
The setting named: db.password was set to: ****** in configuration: default
The setting named: feature.sdw was set to: true in configuration: default
The global setting named: database.api.enabled was set to: true
The setting named: restEnabledSql.active was set to: true in configuration: default
The global setting named: standalone.http.port was set to: 8080
The global setting named: standalone.doc.root was set to: /u01/ords/config/global/doc_root
The setting named: security.requestValidationFunction was set to: ords_util.authorize_plsql_gateway in configuration: default
2025-04-06T21:04:03.566Z INFO Created folder /u01/ords/config/logs
2025-04-06T21:04:03.581Z INFO The log file is defaulted to the current working directory located at /u01/ords/config/logs
2025-04-06T21:04:04.724Z INFO Installing Oracle REST Data Services version 24.4.0.r3451601 in NON_CDB
2025-04-06T21:04:12.745Z INFO ... Verified database prerequisites
2025-04-06T21:04:16.465Z INFO ... Created Oracle REST Data Services proxy user
2025-04-06T21:04:20.469Z INFO ... Created Oracle REST Data Services schema
2025-04-06T21:04:27.075Z INFO ... Granted privileges to Oracle REST Data Services
2025-04-06T21:05:14.024Z INFO ... Created Oracle REST Data Services database objects
2025-04-06T21:07:28.497Z INFO Completed installation for Oracle REST Data Services version 24.4.0.r3451601. Elapsed time: 00:03:23.3572025-04-06T21:07:28.782Z INFO Completed configuring PL/SQL gateway user for Oracle REST Data Services version 24.4.0.r3451601. Elapsed time: 00:00:00.272
2025-04-06T21:07:28.818Z INFO Log file written to /u01/ords/config/logs/ords_install_2025-04-06_210403_58574.log
2025-04-06T21:07:30.824Z INFO HTTP and HTTP/2 cleartext listening on host: 0.0.0.0 port: 8080
2025-04-06T21:07:30.988Z INFO Disabling document root because the specified folder does not exist: /u01/ords/config/global/doc_root
2025-04-06T21:07:30.990Z INFO Default forwarding from / to contextRoot configured.
2025-04-06T21:08:00.573Z INFO Configuration properties for: |default|lo|
db.servicename=PROD
db.hostname=prod.database.com
db.password=******
conf.use.wallet=true
security.requestValidationFunction=ords_util.authorize_plsql_gateway
database.api.enabled=true
db.username=ORDS_PUBLIC_USER
standalone.http.port=8080
restEnabledSql.active=true
resource.templates.enabled=false
plsql.gateway.mode=proxied
db.port=1521
feature.sdw=true
config.required=true
db.connectionType=basic
standalone.doc.root=/u01/ords/config/global/doc_root2025-04-06T21:08:00.606Z WARNING *** jdbc.MaxLimit in configuration |default|lo| is using a value of 10, this setting may not be sized adequately for a production environment ***
2025-04-06T21:08:04.801Z INFO
Mapped local pools from /u01/ords/config/databases:
/ords/ => default => VALID
2025-04-06T21:08:05.274Z INFO Oracle REST Data Services initialized
Oracle REST Data Services version : 24.4.0.r3451601
Oracle REST Data Services server info: jetty/12.0.13
Oracle REST Data Services java info: Java HotSpot(TM) 64-Bit Server VM (build: 17.0.12+8-LTS-286 mixed mode, sharing) - Verify:
Conclusion:
Oracle REST Data Services (ORDS) simplifies exposing your Oracle Database objects as RESTful web services, facilitating modern, API-based access to your data.
In this blog, we ran through the simple steps to have ORDS running:
• Downloading and unpacking the ORDS package
• Configuring ORDS against your database with the advanced install optionWith this configuration in place, you're now positioned to proceed—whether you elect to operate ORDS in standalone mode, run it on a web server, or integrate with Oracle APEX.