Ocient Ocient HTTP Query API API

The Ocient HTTP Query API API from Ocient — 10 operation(s) for ocient http query api.

OpenAPI Specification

ocient-ocient-http-query-api-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Generated API methods Ocient HTTP Query API API
  version: 1.0.0
  description: Generated from imported ApiMethodV2 blocks.
servers:
- url: https://{sql_node}
  variables:
    sql_node:
      default: sql_node
- url: http://oc1-lts0:9090
tags:
- name: Ocient HTTP Query API
paths:
  /v1/execute/{database}:
    post:
      summary: execute
      description: "Executes a SQL statement and returns the results. Supports requests for both regular and streaming responses. \n\nWith streaming, results return as they become available using the HTTP chunked transfer encoding. Each chunk contains a valid JSON object that you can parse independently.\n\nFor details on streaming, including large-response configuration, see the header parameters. \n\nYou can specify the database in the request body. If you do not specify the database, the Ocient System defaults to the database specified in the authentication token or system settings. If you specify a database in the request, this value overrides any alternate database value specified as a body parameter."
      operationId: postOcientHttpQueryApiExecute
      tags:
      - Ocient HTTP Query API
      servers:
      - url: https://{sql_node}
        variables:
          sql_node:
            default: sql_node
      parameters:
      - name: database
        in: path
        required: true
        description: "The specific database in your system for the API call. \n\nIf you do not specify the database, the executed query defaults to the database from the authentication token or system settings.\n\nIf you include a database in the path, this value overrides any alternate database value specified as a body parameter."
        schema:
          type: string
      - name: format
        in: query
        required: false
        description: "Sets the format for the requested data. \n\nNote: This parameter applies only when using Content-Type: text/plain. When using Content-Type: application/json, specify the format in the request body.\n\nSupported values are: \n\n\"array\" — Returns schema and data as arrays (more efficient for large data sets). (default)\n\"collection\" — Returns data as JSON objects (more convenient for client processing).\n\nExample: format=collection"
        schema:
          type: string
      - name: schema
        in: query
        required: false
        description: 'The schema to use for the SQL statement.


          Example: schema=mydata


          Note: This parameter applies only when using Content-Type: text/plain. When using Content-Type: application/json, specify the schema in the request body.'
        schema:
          type: string
      - name: authorization
        in: header
        required: true
        description: "An access token to connect to your Ocient System. \n\nTo receive an access token, you must provide your username and password using the login endpoint. \n\nThe system passes the credentials using the Authorization HTTP header using Base64-encoded Basic Authentication."
        schema:
          type: string
      - name: content-type
        in: header
        required: true
        description: "Specifies the request body format. Options include: \n\napplication/json\n\nDescription: The standard option for submitting queries and receiving responses as a single JSON object or array. Use when submitting queries with relatively small or moderate result sets or when you want the entire result set in one response.\n\napplication/stream+json\n\nDescription: Enables streaming of multiple JSON objects, allowing the API to send results as they become available. Use when querying large tables or expecting a large volume of results or when you want to process each row or result as soon as it is received, without waiting for the full response."
        schema:
          type: string
      - name: accept-encoding
        in: header
        required: false
        description: "Supported compression algorithms for responses. You can specify multiple algorithms as a comma-separated list. \n\nSupported values are: \n\"gzip\" \n\"deflate\" \n\"be\" (Brotli)\nor combinations like: \"gzip, be\".\n\nNote: For large result sets, compression can impact performance. Without compression, the result sets can be chunks of rows processed in a streaming fashion. With compression, the entire result set must be compressed before it is returned to the client. The client side must decompress the entire result set before processing any rows."
        schema:
          type: string
      - name: accept
        in: header
        required: false
        description: "Supported response media types. Regardless of the Accept header, the API returns large query results using chunked encoding. Also, see the note about compression in the accept-encoding parameter.\n\nSupported values are: \n\n\"application/json\" (default)\n\"application/stream+json\""
        schema:
          type: string
      - name: preferred-encoding
        in: header
        required: false
        description: "Indicates the preferred encoding type from those specified in the accept-encoding parameter. This header provides fine-grained control when the accept-encoding parameter contains multiple values, allowing the client to specify which encoding is preferred for this specific request explicitly.\n\nSupported values are: \n\n\"gzip\" \n\"br\""
        schema:
          type: string
      - name: preferred-compression-level
        in: header
        required: false
        description: Specifies the chosen compression level for the selected encoding algorithm. Values range from 1 (fastest, least compression) to 9 (slowest, maximum compression). The exact behavior depends on the specific compression algorithm.
        schema:
          type: integer
      responses:
        '200':
          description: Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  query_id:
                    type: string
                  status:
                    type: object
                    properties:
                      reason:
                        type: string
                      sql_state:
                        type: string
                      vendor_code:
                        type: integer
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        c1:
                          type: integer
              examples:
                response:
                  value:
                    query_id: ac4dd039-e385-400b-a428-fd1fdcd02e30
                    status:
                      reason: The operation completed successfully
                      sql_state: '00000'
                      vendor_code: 0
                    data:
                    - c1: 1
                    - c1: 2
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                statement:
                  type: string
                  description: "A valid SQL statement to execute. \n\nExample: statement=SELECT * FROM customers LIMIT 10;\n\nYou can include parameters to substitute in the SQL statement by including them in the params body parameter."
                database:
                  type: string
                  description: "A specific database in your system for the API call. \n\nIf you do not specify this parameter, the executed query defaults to the database from the authentication token or system settings."
                format:
                  type: string
                  description: "Sets the output format of the query result data. \n\nSupported values are: \n\n\"array\" — Returns the schema and data as arrays (more efficient for large data sets). (default)\n\"collection\" — Returns data as JSON objects (more convenient for client processing)."
                params:
                  type: object
                  description: "Parameters to substitute in the SQL statement for values enclosed in braces. The keys should match the parameter names in the statement (without the enclosing braces). Wrap string values in single quotes. All other data types do not use quotes. \n\nExample: If your SQL statement is SELECT * FROM orders WHERE order_date > {start_date}, then your API request should include values in the params body parameter, such as {'start_date': '2023-01-01'}."
                fetch_size:
                  type: integer
                  description: "The number of rows to return in each chunk for streaming responses. This value must be 0 or greater. A value of 0 (default) means the database determines how many rows to return.  \n\nUse smaller values for interactive applications (100-1000 rows). For batch processing, use larger values (5000-10000 rows)."
                max_rows:
                  type: integer
                  description: 'The maximum number of rows to return. The default value is 9223372036854776000.


                    Note: Adding a LIMIT clause to a SQL query is generally a better method to restrict the number of rows, as the query engine still generates the total number of rows, but only returns this value to the client.'
              required:
              - statement
      x-codeSamples:
      - lang: curl
        label: curl
        source: "curl -u 'admin@system:admin' https://my_sql_node.com/v1/execute/system \\\n    -d '{\"statement\":\"SELECT * FROM sys.dummy2\", \"format\": \"collection\"}'"
    get:
      summary: execute
      description: 'Alternative GET method for executing SQL statements. This method passes parameters as URL query parameters. This method does not support the params body parameter.


        Specify which database to access in the query parameters. If you do not specify a database, the connection defaults to the database from the authentication token or system settings.


        This method is most suitable for simple, read-only queries where the statement can be safely included in a URL. For complex queries or those with parameters, use the POST method instead.'
      operationId: getOcientHttpQueryApiExecute
      tags:
      - Ocient HTTP Query API
      servers:
      - url: https://{sql_node}
        variables:
          sql_node:
            default: sql_node
      parameters:
      - name: database
        in: path
        required: true
        description: "The specific database in your system for the API call. \n\nIf you do not specify the database, the executed query defaults to the database from the authentication token or system settings.\n\nIf you include a database in the path, this value overrides any alternate database value specified as a body parameter."
        schema:
          type: string
      - name: statement
        in: query
        required: true
        description: A valid SQL statement to execute. The statement must be URL-encoded, e.g., statement=SELECT%20*%20FROM%20customers%20LIMIT%2010%3B
        schema:
          type: string
      - name: database
        in: query
        required: false
        description: "A specific database in your system for the API call. \n\nIf you do not specify the database, the executed query defaults to the database from the authentication token or system settings."
        schema:
          type: string
      - name: format
        in: query
        required: false
        description: "Sets the response format. \n\nSupported values are: \n\n\"array\" — Returns the schema and data as arrays (more efficient for large data sets). (default)\n\"collection\" — Returns data as JSON objects (more convenient for client processing)."
        schema:
          type: string
      - name: fetch_size
        in: query
        required: false
        description: "The number of rows to return in each chunk for streaming responses. This value must be 0 or greater. A value of 0 (default) means the database determines how many rows to return. \n\nUse smaller values for interactive applications (100-1000 rows). For batch processing, use larger values (5000-10000 rows)."
        schema:
          type: string
      - name: Authorization
        in: header
        required: true
        description: "An access token to connect to your Ocient System. \n\nTo receive an access token, you must provide your username and password using the login endpoint. \n\nThe system passes the credentials using the Authorization HTTP header using Base64-encoded Basic Authentication."
        schema:
          type: string
      - name: Content-Type
        in: header
        required: true
        description: "Specifies the request body format. Options include: \n\napplication/json\n\nDescription: The standard option for submitting queries and receiving responses as a single JSON object or array. Use when submitting queries with relatively small or moderate result sets or when you want the entire result set in one response.\n\napplication/stream+json\n\nDescription: Enables streaming of multiple JSON objects, allowing the API to send results as they become available. Use when querying large tables or expecting a large volume of results or when you want to process each row or result as soon as it is received, without waiting for the full response."
        schema:
          type: string
      - name: accept-encoding
        in: header
        required: false
        description: "Supported compression algorithms for responses. You can specify multiple algorithms as a comma-separated list. \n\nSupported values are: \n'gzip' \n'deflate' \n'br' (Brotli)\nor combinations like: 'gzip, br'.\n\nNote: For large result sets, compression can impact performance. Without compression, the result sets can be chunks of rows processed in a streaming fashion. With compression, the entire result set must be compressed before it is returned to the client. The client side must decompress the entire result set before processing any rows."
        schema:
          type: string
      - name: accept
        in: header
        required: false
        description: "Supported response media types. Regardless of the Accept header, the API returns large query results using chunked encoding. Also, see the note about compression in the accept-encoding parameter.\n\nSupported values are: \n\n\"application/json\" (default)\n\"application/stream+json\""
        schema:
          type: string
      - name: preferred-encoding
        in: header
        required: false
        description: "Indicates the preferred encoding type from those specified in the accept-encoding parameter. This header provides fine-grained control when the accept-encoding parameter contains multiple values, allowing the client to specify which encoding is preferred for this specific request explicitly.\n\nSupported values are: \n\n\"gzip\" \n\"br\""
        schema:
          type: string
      - name: preferred-compression-level
        in: header
        required: false
        description: Specifies the chosen compression level for the selected encoding algorithm. Values typically range from 1 (fastest, least compression) to 9 (slowest, maximum compression). The exact behavior depends on the specific compression algorithm.
        schema:
          type: string
      responses:
        '200':
          description: Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  query_id:
                    type: string
                  status:
                    type: object
                    properties:
                      reason:
                        type: string
                      sql_state:
                        type: string
                      vendor_code:
                        type: integer
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        c1:
                          type: integer
              examples:
                response:
                  value:
                    query_id: 2d5af900-cb02-44f4-b974-6264d2133e96
                    status:
                      reason: The operation completed successfully
                      sql_state: '00000'
                      vendor_code: 0
                    data:
                    - c1: 1
                    - c1: 2
      x-codeSamples:
      - lang: curl
        label: curl
        source: "curl -u 'admin@system:admin' \\\n    'https://my_sql_node.com/v1/execute?statement=SELECT%20*%20FROM%20sys.dummy2&database=system&format=collection'"
  /v1/info:
    get:
      summary: info
      description: 'Returns basic system version information about the Ocient System and the HTTP Query API server.


        You can use this endpoint to verify connectivity and to check compatible versions.'
      operationId: getOcientHttpQueryApiInfo
      tags:
      - Ocient HTTP Query API
      servers:
      - url: https://{sql_node}
        variables:
          sql_node:
            default: sql_node
      parameters: []
      responses:
        '200':
          description: Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  default_database:
                    type: string
                  openapi_version:
                    type: string
                  status:
                    type: object
                    properties:
                      vendor_code:
                        type: integer
                      sql_state:
                        type: string
                      reason:
                        type: string
              examples:
                response:
                  value:
                    default_database: system
                    openapi_version: 1.1.0
                    status:
                      vendor_code: 0
                      sql_state: '00000'
                      reason: The operation completed successfully
      x-codeSamples:
      - lang: curl
        label: curl
        source: "curl -u 'admin@system:admin' \\\n    'https://my_sql_node.com/v1/info'  "
  /v1/login:
    post:
      summary: login
      description: "Authenticates a user with a username and password and then returns a token for use in subsequent API calls. This request also sets a session cookie. \n\nInclude the returned access token in the authorization header for subsequent requests in the format: \nAuthorization: Bearer {token}."
      operationId: postOcientHttpQueryApiLogin
      tags:
      - Ocient HTTP Query API
      servers:
      - url: https://{sql_node}
        variables:
          sql_node:
            default: sql_node
      parameters: []
      responses:
        '200':
          description: Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  access_token:
                    type: string
                  username:
                    type: string
                  database:
                    type: string
                  expires_in:
                    type: integer
                  status:
                    type: object
                    properties:
                      reason:
                        type: string
                      sql_state:
                        type: string
                      vendor_code:
                        type: integer
              examples:
                response:
                  value:
                    access_token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
                    username: jdoe
                    database: retail_analytics
                    expires_in: 3600
                    status:
                      reason: Authentication successful
                      sql_state: '00000'
                      vendor_code: 0
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                username:
                  type: string
                  description: Username.
                password:
                  type: string
                  description: The password for the username.
                database:
                  type: string
                  description: Target database name. If you do not specify this parameter, the request defaults this value to system.
              required:
              - username
              - password
      x-codeSamples:
      - lang: curl
        label: curl
        source: "curl -X POST https://my_sql_node.com/v1/login \\\n    -H \"Content-Type: application/json\" \\\n    -d '{\n        \"username\": \"admin\",\n        \"password\": \"admin\",\n        \"database\": \"system\"\n    }'\n"
  /v1/logout:
    post:
      summary: logout
      description: "Log out from a SQL session. This clears any associated cookies, but does not invalidate any access tokens.\n\nThis endpoint terminates only the cookie-based session. Any bearer tokens that were previously issued continue to work until they expire.\n         \nYou must discard any stored bearer tokens to complete the log out in a client application."
      operationId: postOcientHttpQueryApiLogout
      tags:
      - Ocient HTTP Query API
      servers:
      - url: https://{sql_node}
        variables:
          sql_node:
            default: sql_node
      parameters: []
      responses:
        '200':
          description: Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: object
                    properties:
                      reason:
                        type: string
                      sql_state:
                        type: string
                      vendor_code:
                        type: integer
              examples:
                response:
                  value:
                    status:
                      reason: Logged out successfully
                      sql_state: '00000'
                      vendor_code: 0
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                database:
                  type: string
                  description: Target database name. If you do not specify this parameter, the request defaults this value to system.
      x-codeSamples:
      - lang: curl
        label: curl
        source: "curl -X POST https://my_sql_node.com/v1/logout\n    -d '{\n        \"database\": \"retail_analytics\"\n    }"
  /v1/sso_authentication:
    post:
      summary: sso_authentication
      description: 'Initiates the OpenID Connect authentication process by redirecting to the authorization server.


        This endpoint begins the standard OpenID Connect authentication process:


        1. The client calls this endpoint with a callback path.

        2. The server responds with a redirect to the identity provider.

        3. The user authenticates with the identity provider.

        4. The identity provider redirects back to the callback endpoint.

        5. The client can exchange the authorization code for an access token.'
      operationId: postOcientHttpQueryApiSsoAuthentication
      tags:
      - Ocient HTTP Query API
      servers:
      - url: https://{sql_node}
        variables:
          sql_node:
            default: sql_node
      parameters: []
      responses:
        '200':
          description: Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: object
                    properties:
                      reason:
                        type: string
                      sql_state:
                        type: string
                      vendor_code:
                        type: integer
              examples:
                response:
                  value:
                    status:
                      reason: Query executed successfully
                      sql_state: '00000'
                      vendor_code: 0
        '404':
          description: Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
              examples:
                response:
                  value:
                    message: Ain't no cake like that.
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                database:
                  type: string
                  description: Target database name. If you do not specify this parameter, the request defaults this value to system.
                "sso_callback_path\t":
                  type: string
                  description: Local path for redirection after successful authentication. This path should be registered with your OpenID provider as a valid redirect URI.
                do_redirect:
                  type: boolean
                  description: 'Determines whether to issue the redirect to the authentication server immediately.


                    If you set this value to true (default), the API responds with a 302 redirect to the OpenID provider.


                    If you set this value to false, the API returns the URL in the response body, allowing the client to handle the redirect manually.


                    If you have no SSO configuration for the database, an error occurs if this parameter value is set to true. Otherwise, the request returns an empty redirect.'
      x-codeSamples:
      - lang: curl
        label: curl
        source: "curl -X POST https://my_sql_node.com/v1/sso_authentication \\\n    -H \"Content-Type: application/json\" \\\n    -d '{\n        \"database\": \"retail_analytics\",\n        \"sso_callback_path\": \"/auth/callback\",\n        \"do_redirect\": true\n    }'"
  /v1/callback:
    get:
      summary: callback
      description: 'Provides the authentication token for the OpenID Connect authentication process. The authorization server redirects to callback path after successful authentication.


        This endpoint receives the authorization code from the OpenID provider and exchanges it for a token. The provider redirects the user to the application callback URL specified in the initial authentication request.


        The client application should not call this endpoint directly. The OpenID provider automatically calls this endpoint in the authentication process.'
      operationId: getOcientHttpQueryApiCallback
      tags:
      - Ocient HTTP Query API
      servers:
      - url: https://{sql_node}
        variables:
          sql_node:
            default: sql_node
      parameters:
      - name: code
        in: query
        required: true
        description: 'The authorization code from the OpenID provider. This endpoint exchanges the code for a token.


          Example: code=4/P7q7W91a-oMsCeLvIaQm6bTrgtp7'
        schema:
          type: string
      - name: state
        in: query
        required: true
        description: 'Prevents cross-site request forgery attacks. This value should match the state in the initial authentication request.


          Example: state=fRJfv29f3v39Jf39dJf93jf'
        schema:
          type: string
      responses:
        '200':
          description: Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: object
                    properties:
                      reason:
                        type: string
                      sql_state:
                        type: string
                      vendor_code:
                        type: integer
              examples:
                response:
                  value:
                    status:
                      reason: Query executed successfully
                      sql_state: '00000'
                      vendor_code: 0
      x-codeSamples:
      - lang: curl
        label: curl
        source: 'curl -X GET "https://my_sql_node.com/v1/callback?code=4/P7q7W91a-oMsCeLvIaQm6bTrgtp7&state=fRJfv29f3v39Jf39dJf93jf"

          '
  /v1/sso_token:
    post:
      summary: sso_token
      description: 'Exchange an OpenID Connect identifier token or access token for an Ocient access token.


        This endpoint allows clients to directly exchange tokens without following the full browser-based authentication process. This exchange is useful for server-to-server scenarios or when the client already has a valid OpenID token from another process.'
      operationId: postOcientHttpQueryApiSsoToken
      tags:
      - Ocient HTTP Query API
      servers:
      - url: https://{sql_node}
        variables:
          sql_node:
            default: sql_node
      parameters: []
      responses:
        '200':
          description: Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  id_token:
                    type: string
                  database:
                    type: string
              examples:
                response:
                  value:
                    id_token: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...
                    database: retail_analytics
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                database:
                  type: string
                  description: Target database for connection after successful authentication. This database must be accessible to the user identified by the SSO token.
                id_token:
                  type: string
                  description: OpenID identifier token received from the OpenID provider after successful authentication. You must provide the id_token or access_token body parameters, but not both.
                "access_token\t":
                  type: string
                  description: OpenID access token received from the OpenID provider after successful authentication. You must provide the id_token or access_token body parameters, but not both.
              required:
              - database
      x-codeSamples:
      - lang: curl
        label: curl
        source: "curl -X POST https://my_sql_node.com/v1/sso_token \\\n    -H \"Content-Type: application/json\" \\\n    -d '{\n        \"id_token\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\",\n        \"database\": \"retail_analytics\"\n    }'"
  /v1/sso_device_grant:
    post:
      summary: sso_device_grant
      description: 'Retrieve an OpenID device grant code that the Ocient System can verify and use with the sso_device_grant_verify endpoint.


        The device grant process is intended for devices with limited input capabilities or no web browser:


        1. Call this endpoint to retrieve a user code and verification URI.

        2. Display the user code and verification URI to the user.

        3. The user visits the verification URI on another device and enters the code.

        4. Call the sso_device_grant_verify endpoint to check if the user has completed verification.'
      operationId: postOcientHttpQueryApiSsoDeviceGrant
      tags:
      - Ocient HTTP Query API
      servers:
      - url: https://{sql_node}
        variables:
          sql_node:
            default: sql_node
      parameters: []
      responses:
        '200':
          description: Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  verification_uri_complete:
                    type: string
                  verification_uri:
                    type: string
                  user_code:
                    type: string
                  status:
                    type: object
                    properties:
                     

# --- truncated at 32 KB (39 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/ocient/refs/heads/main/openapi/ocient-ocient-http-query-api-api-openapi.yml