openapi: 3.1.0 info: title: Oracle REST Data Services (ORDS) REST AutoREST Handlers API description: REST API for managing Oracle REST Data Services (ORDS) RESTful service definitions including modules, templates, handlers, privileges, roles, OAuth clients, and AutoREST-enabled objects. ORDS provides a mid-tier Java application that maps HTTP requests to database transactions, enabling RESTful access to Oracle Database resources. This specification covers the ORDS REST Services Management endpoints available through the Database API stable interface. version: '25.4' contact: name: Oracle APEX Support url: https://apex.oracle.com/community email: apex-info_us@oracle.com license: name: Oracle Technology Network License url: https://www.oracle.com/downloads/licenses/distribution-license.html servers: - url: https://{host}:{port}/ords/_/db-api/stable description: ORDS Database API stable endpoint variables: host: default: localhost description: Hostname of the ORDS instance port: default: '8443' description: Port number for the ORDS instance - url: https://{host}/ords/_/db-api/stable description: ORDS Database API stable endpoint (default port) variables: host: default: example.com description: Hostname of the ORDS instance security: - basicAuth: [] - oauth2: [] tags: - name: Handlers description: REST template handler management. A handler implements an HTTP method on a template with source code. paths: /ords/rest/handlers/: get: operationId: listHandlers summary: Get all REST template handlers description: Retrieves a paginated list of all REST template handlers defined in the current schema. tags: - Handlers parameters: - $ref: '#/components/parameters/offset' - $ref: '#/components/parameters/limit' responses: '200': description: Paginated list of REST handlers content: application/json: schema: $ref: '#/components/schemas/ItemsCollection' post: operationId: createHandler summary: Create a REST template handler description: Creates a new REST template handler that implements a specific HTTP method on a template. The handler contains the source code (SQL query or PL/SQL block) that will be executed when the template URI is accessed with the specified HTTP method. tags: - Handlers requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/HandlerCreate' responses: '201': description: REST handler created successfully content: application/json: schema: $ref: '#/components/schemas/ResourceItem' '400': description: Missing required parameters '404': description: Template does not exist '409': description: A handler for that method already exists on the template /ords/rest/handlers/{id}: get: operationId: getHandler summary: Get a REST template handler description: Retrieves details of a specific REST template handler by its identifier. tags: - Handlers parameters: - $ref: '#/components/parameters/resourceId' responses: '200': description: REST handler details content: application/json: schema: $ref: '#/components/schemas/ResourceItem' '404': description: Handler not found put: operationId: updateHandler summary: Update a REST template handler description: Updates an existing REST template handler including its source code, source type, and pagination settings. tags: - Handlers parameters: - $ref: '#/components/parameters/resourceId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/HandlerCreate' responses: '200': description: REST handler updated successfully content: application/json: schema: $ref: '#/components/schemas/ResourceItem' '404': description: Handler not found delete: operationId: deleteHandler summary: Delete a REST template handler description: Deletes a specific REST template handler. tags: - Handlers parameters: - $ref: '#/components/parameters/resourceId' responses: '200': description: REST handler deleted successfully '404': description: Handler not found /ords/rest/handlers/{id}/source: get: operationId: getHandlerSource summary: Get a REST handler source description: Retrieves the source code implementation of a specific REST template handler. tags: - Handlers parameters: - $ref: '#/components/parameters/resourceId' responses: '200': description: REST handler source code content: application/json: schema: $ref: '#/components/schemas/ResourceItem' '404': description: Handler not found components: schemas: ItemsCollection: type: object description: Paginated collection of resource items following the ORDS standard collection format properties: count: type: integer description: Total number of records in the current response page hasMore: type: boolean description: Indicates whether additional pages of results are available limit: type: integer description: The page size limit applied by the server offset: type: integer description: The starting index of items in this page items: type: array description: Array of resource items in this page items: $ref: '#/components/schemas/ResourceItem' links: type: array description: Pagination navigation links (first, next, prev, last) items: $ref: '#/components/schemas/LinkRelation' LinkRelation: type: object description: HATEOAS link relation describing a related resource or action required: - rel - href properties: rel: type: string description: Link relationship type (e.g., self, describedby, edit, collection) href: type: string description: URI of the related resource ResourceItem: type: object description: A single resource item with HATEOAS navigation links. Additional properties are included depending on the resource type. additionalProperties: true properties: links: type: array description: HATEOAS links for the resource items: $ref: '#/components/schemas/LinkRelation' HandlerCreate: type: object description: Request body for creating or updating a REST template handler required: - template_id - source properties: template_id: type: integer description: ID of the parent REST template source: type: string description: The source code implementation (SQL query or PL/SQL block) executed when this handler processes a request source_type: type: string description: The type of source code that determines how the source is executed enum: - source_type_collection_feed - source_type_collection_item - source_type_media - source_type_plsql - source_type_query - source_type_csv_query - source_type_query_one_row - source_type_feed method: type: string description: HTTP method this handler responds to enum: - GET - POST - PUT - DELETE items_per_page: type: - integer - 'null' description: Pagination size for GET handlers. NULL defers to the module-level setting. minimum: 1 mimes_allowed: type: string description: Comma-separated list of MIME types accepted by PUT and POST handlers comments: type: string description: Descriptive comment for the handler run_mode: type: string description: Set to 'codePreview' to return the PL/SQL code instead of executing it enum: - codePreview parameters: offset: name: offset in: query required: false description: The index of the first item to return (0-based). Default is 0. schema: type: integer default: 0 minimum: 0 resourceId: name: id in: path required: true description: Unique identifier of the resource schema: type: integer limit: name: limit in: query required: false description: Maximum number of items to return per page. Default is 25. schema: type: integer default: 25 minimum: 1 maximum: 500 securitySchemes: basicAuth: type: http scheme: basic description: HTTP Basic authentication using ORDS-enabled database schema credentials oauth2: type: oauth2 description: OAuth 2.0 authorization using ORDS OAuth client credentials or authorization code flow flows: clientCredentials: tokenUrl: /ords/{schema}/oauth/token scopes: {} authorizationCode: authorizationUrl: /ords/{schema}/oauth/auth tokenUrl: /ords/{schema}/oauth/token scopes: {}