openEO Account Management API

The following endpoints handle user profiles, accounting and authentication. See also [Authentication](#section/Authentication). In general, the openEO API only defines a minimum subset of user management and accounting functionality. It allows to * [authenticate and authorize](http://www.differencebetween.net/technology/difference-between-authentication-and-authorization/) a user, which may include [user registration with OpenID Connect](http://openid.net/specs/openid-connect-registration-1_0.html), * handle storage space limits (disk quota), * manage billing, which includes to * query the credit a user has available, * estimate costs for certain operations (data processing and downloading), * get information about produced costs, * limit costs of certain operations. Therefore, the API leaves some aspects open that have to be handled by the back-ends separately, including * credentials recovery, e.g. retrieving a forgotten password * user data management, e.g. changing the users payment details or email address * payments, i.e. topping up credits for pre-paid services or paying for post-paid services * other accounting related tasks, e.g. creating invoices, * user registration (except for [user registration with OpenID Connect](http://openid.net/specs/openid-connect-registration-1_0.html)).

Operations 3

GET /credentials/oidc OpenID Connect authentication #
GET /credentials/basic HTTP Basic authentication #
GET /me Information about the authenticated user #

Specifications

Schemas & Data

📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/openeo/refs/heads/main/json-schema/openeo-collection-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/openeo/refs/heads/main/json-schema/openeo-batch-job-result-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/openeo/refs/heads/main/json-schema/openeo-batch-job-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/openeo/refs/heads/main/json-schema/openeo-json-schema-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/openeo/refs/heads/main/json-schema/openeo-process-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/openeo/refs/heads/main/json-schema/openeo-resource-parameter-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/openeo/refs/heads/main/json-schema/openeo-workspace-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/openeo/refs/heads/main/json-schema/openeo-create-workspace-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/openeo/refs/heads/main/json-schema/openeo-register-workspace-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/openeo/refs/heads/main/json-schema/openeo-workspace-description-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/openeo/refs/heads/main/json-schema/openeo-workspace-id-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/openeo/refs/heads/main/json-schema/openeo-workspace-title-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/openeo/refs/heads/main/json-schema/openeo-order-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/openeo/refs/heads/main/json-schema/openeo-order-parameters-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/openeo/refs/heads/main/json-schema/openeo-order-id-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/openeo/refs/heads/main/json-schema/openeo-processing-create-parameters-schema.json

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/openeo:openeo-account-management-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

openeo-account-management-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Openeo Account Management API
  version: 1.3.0
  contact:
    name: openEO Project Steering Committee
    url: https://openeo.org
    email: openeo.psc@uni-muenster.de
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
  description: 'Operations tagged Account Management across 2 of this provider''s published API definitions: openeo-api-openapi.yaml, openeo-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://openeo.example/api/{version}
  description: The URL of the API MAY freely be chosen by the back-end providers. The path, including API versioning, is a *recommendation* only. Nevertheless, all servers MUST support HTTPS as the authentication methods are not secure with HTTP only!
  variables:
    version:
      default: v1
      description: 'API versioning is RECOMMENDED. As the openEO API is following

        [SemVer](https://semver.org/) only the **major** part of the version

        numbers SHOULD be used for API versioning in the URL. To make clear

        that it is a version number, it is RECOMMENDED to add the prefix `v`.


        Example: API version `1.2.3` is recommended to use `v1`.


        The reason to only consider the major part is that backward-incompatible

        changes are introduced by major changes only. All changes from minor

        and patch releases can usually be integrated without breakages and thus

        a change in the URL is not really needed.


        The version number in the URL MUST not be used by the clients to detect

        the version number of the API. Use the version number returned in the

        property `api_version` from `GET /` instead.'
tags:
- name: Account Management
  description: The following endpoints handle user profiles, accounting and authentication.
paths:
  /credentials/oidc:
    get:
      summary: OpenID Connect authentication
      operationId: authenticate-oidc
      description: 'Lists the supported OpenID Connect

        providers (OP). OpenID Connect Providers MUST support OpenID Connect

        Discovery.


        It is highly RECOMMENDED to implement OpenID Connect for public services

        in favor of Basic authentication.


        openEO clients MUST use the **access token** as part of the Bearer token

        for authorization in subsequent API calls (see also the information

        about Bearer tokens in this document). Clients MUST NOT use the id token

        or the authorization code.


        Back-ends MAY request user information (including Claims)

        from the OpenID Connect Userinfo endpoint

        using the access token (without the prefix described above). Therefore,

        both openEO client and openEO back-end are relying parties (clients) to

        the OpenID Connect Provider.'
      tags:
      - Account Management
      security:
      - {}
      responses:
        '200':
          description: Lists the OpenID Connect Providers.
          content:
            application/json:
              schema:
                title: OpenID Connect Providers
                type: object
                required:
                - providers
                properties:
                  providers:
                    type: array
                    description: The first provider in this list is the default provider for authentication. Clients can either pre-select or directly use the default provider for authentication if the user does not specify a specific value.
                    minItems: 1
                    items:
                      title: OpenID Connect Provider
                      type: object
                      required:
                      - id
                      - issuer
                      - title
                      properties:
                        id:
                          type: string
                          description: 'A per-back-end **unique** identifier for the OpenID Connect provider.


                            Is used as prefix for the openEO token.'
                          pattern: '[\d\w]{1,20}'
                        issuer:
                          type: string
                          format: uri
                          description: 'The [issuer location](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderConfig)

                            (also referred to as ''authority'' in some client libraries) is the URL of the

                            OpenID Connect provider, which conforms to a set of rules:


                            1. After appending `/.well-known/openid-configuration` to the URL, a

                            [HTTP/1.1 GET

                            request](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderConfigurationRequest)

                            to the concatenated URL MUST return a [OpenID Connect Discovery Configuration

                            Response](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderConfigurationResponse).

                            The response provides all information required to authenticate using

                            OpenID Connect.


                            2. The URL MUST NOT contain a terminating forward slash `/`.'
                          example: https://accounts.google.com
                        scopes:
                          type: array
                          description: 'A list of OpenID Connect scopes that the client MUST at least include when requesting authorization. Clients MAY add additional scopes such as the `offline_access` scope to retrieve a refresh token.

                            If scopes are specified, the list MUST at least contain the `openid` scope.'
                          items:
                            type: string
                        title:
                          type: string
                          description: The name that is publicly shown in clients for this OpenID Connect provider.
                        description:
                          type: string
                          format: commonmark
                          description: 'A description that explains how the authentication procedure works.


                            It should make clear how to register and get credentials. This should

                            include instruction on setting up `client_id`, `client_secret` and `redirect_uri`.


                            [CommonMark 0.29](http://commonmark.org/) syntax MAY be used for rich

                            text representation.'
                        default_clients:
                          title: Default OpenID Connect Clients
                          type: array
                          description: 'List of default OpenID Connect clients that can be used by an openEO client

                            for OpenID Connect based authentication.


                            A default OpenID Connect client is managed by the back-end implementer.

                            It MUST be configured to be usable without a client secret,

                            which limits its applicability to OpenID Connect grant types like

                            "Authorization Code Grant with PKCE" and "Device Authorization Grant with PKCE"


                            A default OpenID Connect client is provided without availability guarantees.

                            The back-end implementer CAN revoke, reset or update it any time.

                            As such, openEO clients SHOULD NOT store or cache default OpenID Connect client information

                            for long term usage.

                            A default OpenID Connect client is intended to simplify authentication for novice users.

                            Setting up a dedicated OpenID Connect client is RECOMMENDED for production-ready back-ends.'
                          uniqueItems: true
                          items:
                            title: Default OpenID Connect Client
                            type: object
                            required:
                            - id
                            - grant_types
                            properties:
                              id:
                                type: string
                                description: The OpenID Connect Client ID to be used in the authentication procedure.
                              grant_types:
                                type: array
                                description: 'List of authorization grant types (flows) supported by the OpenID Connect client.

                                  A grant type descriptor consist of a OAuth 2.0 grant type,

                                  with an additional `+pkce` suffix when the grant type should be used with

                                  the PKCE extension as defined in [RFC 7636](https://www.rfc-editor.org/rfc/rfc7636.html).


                                  Allowed values:

                                  - `implicit`: Implicit Grant as specified in [RFC 6749, sec. 1.3.2](https://www.rfc-editor.org/rfc/rfc6749.html#section-1.3.2)

                                  - `authorization_code` / `authorization_code+pkce`: Authorization Code Grant as specified in [RFC 6749, sec. 1.3.1](https://www.rfc-editor.org/rfc/rfc6749.html#section-1.3.1), with or without PKCE extension.

                                  - `urn:ietf:params:oauth:grant-type:device_code` / `urn:ietf:params:oauth:grant-type:device_code+pkce`: Device Authorization Grant (aka Device Code Flow) as specified in [RFC 8628](https://www.rfc-editor.org/rfc/rfc8628.html), with or without PKCE extension. Note that the combination of this grant with the PKCE extension is *not standardized* yet.

                                  - `refresh_token`: Refresh Token as specified in [RFC 6749, sec. 1.5](https://www.rfc-editor.org/rfc/rfc6749.html#section-1.5)'
                                minItems: 1
                                uniqueItems: true
                                items:
                                  type: string
                                  enum:
                                  - implicit
                                  - authorization_code
                                  - authorization_code+pkce
                                  - urn:ietf:params:oauth:grant-type:device_code
                                  - urn:ietf:params:oauth:grant-type:device_code+pkce
                                  - refresh_token
                              redirect_urls:
                                type: array
                                description: 'List of redirect URLs that are whitelisted by the OpenID Connect client.

                                  Redirect URLs MUST be provided when the OpenID Connect client supports

                                  the Implicit Grant or the Authorization Code Grant (with or without PKCE extension).'
                                uniqueItems: true
                                items:
                                  type: string
                                  format: uri
                        authorization_parameters:
                          type: object
                          description: 'Additional parameters that an openEO client MUST include when requesting the authorization endpoint.

                            This can be used to enforce specific

                            [request parameters such as `prompt`](https://openid.net/specs/openid-connect-core-1_0.html#AuthRequest).'
                          example:
                            prompt: consent
                            access_type: offline
                        links:
                          type: array
                          description: 'Links related to this provider, for example a

                            help page or a page to register a new user account.


                            For relation types see the lists of

                            [common relation types in openEO](#section/API-Principles/Web-Linking).'
                          items:
                            $ref: '#/components/schemas/link'
              example:
                providers:
                - id: egi
                  issuer: https://aai.egi.eu/oidc
                  title: EGI (default)
                  description: Login with your academic account.
                  scopes:
                  - openid
                  - profile
                  - email
                  default_clients:
                  - id: KStcUzD5AIUA
                    grant_types:
                    - implicit
                    - authorization_code+pkce
                    - urn:ietf:params:oauth:grant-type:device_code+pkce
                    - refresh_token
                    redirect_urls:
                    - https://editor.openeo.org/
                - id: google
                  issuer: https://accounts.google.com
                  title: Google
                  description: Login with your Google Account.
                  scopes:
                  - openid
                  - profile
                  - email
                  - earthengine
                  authorization_parameters:
                    access_type: offline
                - id: ms
                  issuer: https://login.microsoftonline.com/example-tenant/v2.0
                  title: Microsoft
                  description: Login with your Microsoft or Skype Account.
                  scopes: []
        4XX:
          $ref: '#/components/responses/client_error_auth'
        5XX:
          $ref: '#/components/responses/server_error'
    servers:
    - url: https://openeo.example/api/{version}
      description: The URL of the API MAY freely be chosen by the back-end providers. The path, including API versioning, is a *recommendation* only. Nevertheless, all servers MUST support HTTPS as the authentication methods are not secure with HTTP only!
      variables:
        version:
          default: v1
          description: 'API versioning is RECOMMENDED. As the openEO API is following

            [SemVer](https://semver.org/) only the **major** part of the version

            numbers SHOULD be used for API versioning in the URL. To make clear

            that it is a version number, it is RECOMMENDED to add the prefix `v`.


            Example: API version `1.2.3` is recommended to use `v1`.


            The reason to only consider the major part is that backward-incompatible

            changes are introduced by major changes only. All changes from minor

            and patch releases can usually be integrated without breakages and thus

            a change in the URL is not really needed.


            The version number in the URL MUST not be used by the clients to detect

            the version number of the API. Use the version number returned in the

            property `api_version` from `GET /` instead.'
  /credentials/basic:
    get:
      summary: HTTP Basic authentication
      operationId: authenticate-basic
      description: 'Checks the credentials provided through HTTP Basic Authentication

        according to RFC 7617 and

        returns an access token in exchange for providing valid credentials.


        The credentials (username and password) MUST be sent in the HTTP header

        `Authorization` with type `Basic` and the Base64 encoded string

        consisting of username and password separated by a double colon `:`. The

        header would look as follows for username `user` and password `pw`:

        `Authorization: Basic dXNlcjpwdw==`.


        The access token has to be used in the Bearer token for authorization in

        subsequent API calls (see also the information about Bearer tokens in

        this document).


        It is RECOMMENDED to implement this authentication method for non-public

        services only.'
      tags:
      - Account Management
      security:
      - Basic: []
      responses:
        '200':
          description: Credentials are correct and authentication succeeded.
          content:
            application/json:
              schema:
                title: HTTP Basic Access Token
                type: object
                required:
                - access_token
                properties:
                  access_token:
                    description: The access token to be used in the Bearer token for authorization in subsequent API calls (without the custom `basic//` prefix).
                    type: string
                    example: b34ba2bdf9ac9ee1
        4XX:
          $ref: '#/components/responses/client_error_auth'
        5XX:
          $ref: '#/components/responses/server_error'
    servers:
    - url: https://openeo.example/api/{version}
      description: The URL of the API MAY freely be chosen by the back-end providers. The path, including API versioning, is a *recommendation* only. Nevertheless, all servers MUST support HTTPS as the authentication methods are not secure with HTTP only!
      variables:
        version:
          default: v1
          description: 'API versioning is RECOMMENDED. As the openEO API is following

            [SemVer](https://semver.org/) only the **major** part of the version

            numbers SHOULD be used for API versioning in the URL. To make clear

            that it is a version number, it is RECOMMENDED to add the prefix `v`.


            Example: API version `1.2.3` is recommended to use `v1`.


            The reason to only consider the major part is that backward-incompatible

            changes are introduced by major changes only. All changes from minor

            and patch releases can usually be integrated without breakages and thus

            a change in the URL is not really needed.


            The version number in the URL MUST not be used by the clients to detect

            the version number of the API. Use the version number returned in the

            property `api_version` from `GET /` instead.'
  /me:
    get:
      summary: Information about the authenticated user
      operationId: describe-account
      description: 'Lists information about the authenticated user such as the user id.

        The endpoint MAY return the disk quota available to the user. The endpoint MAY also return links related to user management and the user profile, e.g. where payments are handled or the user profile could be edited.

        For back-ends that involve accounting, this service MAY also return the currently available money or credits in the currency the back-end is working with.

        This endpoint MAY be extended to fulfil the specification of the OpenID Connect UserInfo Endpoint.'
      tags:
      - Account Management
      security:
      - Bearer: []
      responses:
        '200':
          description: Information about the logged in user.
          content:
            application/json:
              schema:
                title: User Data
                description: Holds user information. If no budget or storage limit applies to the user account the corresponding properties MUST be set to null.
                type: object
                required:
                - user_id
                properties:
                  user_id:
                    type: string
                    description: 'A unique user identifier specific to the back-end, which could either be chosen by a user or is automatically generated by the back-end during the registration process at the back-end.

                      It is meant to be used as an identifier in URIs (e.g. for sharing purposes), which is primarily used in machine-to-machine communication. Preferrably use the human-readable property `name` to display the user''s name in user interfaces instead of the user identifier.'
                    pattern: ^[\w\-\.~]+$
                    example: john_doe
                  name:
                    type: string
                    description: The user name, a human-friendly displayable name. Could be  the user's real name or a nickname.
                  default_plan:
                    type: string
                    description: Name of the single plan the user is currently subscribed to if any.
                    example: free
                  storage:
                    title: User Storage
                    description: Information about the storage space available to the user.
                    type:
                    - object
                    - 'null'
                    required:
                    - free
                    - quota
                    properties:
                      free:
                        $ref: '#/components/schemas/storage_quota_free'
                      quota:
                        $ref: '#/components/schemas/max_storage_quota'
                  budget:
                    type:
                    - number
                    - 'null'
                    description: 'The remaining budget a user has available.

                      The value MUST be specified in the currency of the back-end.

                      The value SHOULD be set to `null` if no explicit limit applies.'
                  links:
                    description: "Links related to the user profile, e.g. where payments\nare handled or the user profile could be edited.\n\nProviding links with the following `rel` (relation) types is RECOMMENDED:\n\n1. `payment`: A page where users can recharge their user account with money or credits.\n\n2. `edit-form`: Points to a page where the user can edit his user profile.\n\n3. `alternate`: Any other representation of these (and potentially additional)\nuser information, e.g. the (public) user profile page.\nIt is RECOMMENDED to add descriptive titles for a better user experience.\n\n4. `related`: Any other user-specific links to be shown in clients,\ne.g. to user-specific settings, invoices, etc. It is RECOMMENDED to \nadd descriptive titles for a better user experience.\n\nFor additional relation types see also the lists of\n[common relation types in openEO](#section/API-Principles/Web-Linking)."
                    type: array
                    items:
                      $ref: '#/components/schemas/link'
                    example:
                    - href: https://openeo.example/john_doe/payment/
                      rel: payment
                    - href: https://openeo.example/john_doe/edit/
                      rel: edit-form
                    - href: https://openeo.example/john_doe/
                      rel: alternate
                      type: text/html
                      title: User profile
                    - href: https://openeo.example/john_doe.vcf
                      rel: alternate
                      type: text/vcard
                      title: vCard of John Doe
                    - href: https://openeo.example/john_doe/invoices
                      rel: related
                      type: text/html
                      title: Invoices
        4XX:
          $ref: '#/components/responses/client_error_auth'
        5XX:
          $ref: '#/components/responses/server_error'
    servers:
    - url: https://openeo.example/api/{version}
      description: The URL of the API MAY freely be chosen by the back-end providers. The path, including API versioning, is a *recommendation* only. Nevertheless, all servers MUST support HTTPS as the authentication methods are not secure with HTTP only!
      variables:
        version:
          default: v1
          description: 'API versioning is RECOMMENDED. As the openEO API is following

            [SemVer](https://semver.org/) only the **major** part of the version

            numbers SHOULD be used for API versioning in the URL. To make clear

            that it is a version number, it is RECOMMENDED to add the prefix `v`.


            Example: API version `1.2.3` is recommended to use `v1`.


            The reason to only consider the major part is that backward-incompatible

            changes are introduced by major changes only. All changes from minor

            and patch releases can usually be integrated without breakages and thus

            a change in the URL is not really needed.


            The version number in the URL MUST not be used by the clients to detect

            the version number of the API. Use the version number returned in the

            property `api_version` from `GET /` instead.'
components:
  schemas:
    log_links:
      description: 'Links related to this log entry / error, e.g. to a resource that

        provides further explanations.


        For relation types see the lists of

        [common relation types in openEO](#section/API-Principles/Web-Linking).'
      type: array
      items:
        $ref: '#/components/schemas/link'
      example:
      - href: https://openeo.example/docs/errors/SampleError
        rel: about
    log_code:
      type: string
      description: The code is either one of the standardized error codes or a custom code, for example specified by a user in the `inspect` process.
      example: SampleError
    storage_quota_free:
      type: integer
      description: Free storage space in bytes, which is still available to the user. Effectively, this is the disk quota minus the used space by the user, e.g. user-uploaded files and job results.
      example: 536870912
    link:
      title: Link
      description: A link to another resource on the web. Bases on [RFC 5899](https://www.rfc-editor.org/rfc/rfc5988.html).
      type: object
      required:
      - href
      - rel
      properties:
        rel:
          type: string
          description: Relationship between the current document and the linked document. SHOULD be a [registered link relation type](https://www.iana.org/assignments/link-relations/link-relations.xml) whenever feasible.
          example: related
        href:
          type: string
          description: The value MUST be a valid URL.
          format: uri
          example: https://openeo.example
        type:
          type: string
          description: The value MUST be a string that hints at the format used to represent data at the provided URI, preferably a media (MIME) type.
          example: text/html
        title:
          type: string
          description: Used as a human-readable label for a link.
          example: openEO
    max_storage_quota:
      type: integer
      description: Maximum storage space (disk quota) in bytes available to the user.
      example: 1073741824
    error:
      title: General Error
      description: 'An error object declares additional information about a client-side or server-side error.

        See also: * [Error Handling](#section/API-Principles/Error-Handling) in the API in general. * [Common Error Codes](errors.json)'
      type: object
      required:
      - code
      - message
      properties:
        id:
          type: string
          description: A back-end MAY add a unique identifier to the error response to be able to log and track errors with further non-disclosable details. A client could communicate this id to a back-end provider to get further information.
          example: 550e8400-e29b-11d4-a716-446655440000
        code:
          $ref: '#/components/schemas/log_code'
        message:
          type: string
          description: A message explaining what the client may need to change or what difficulties the server is facing.
          example: Parameter 'sample' is missing.
        links:
          $ref: '#/components/schemas/log_links'
  responses:
    client_error_auth:
      description: 'The request can not be fulfilled due to an error on client-side, i.e. the

        request is invalid. The client SHOULD NOT repeat the request without

        modifications.


        The response body SHOULD contain a JSON error object.

        MUST be any HTTP status code specified in [RFC 7231](https://www.rfc-editor.org/rfc/rfc7231.html#section-6.6).

        This request MUST respond with HTTP status codes 401 if authorization is required or

        403 if the authorization failed or access is forbidden in general to the

        authenticated user. HTTP status code 404 SHOULD be used if the value of

        a path parameter is invalid.


        See also:

        * [Error Handling](#section/API-Principles/Error-Handling) in the API in general.

        * [Common Error Codes](errors.json)'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
    server_error:
      description: 'The request can not be fulfilled due to an error at the back-end. The

        error is never the client’s fault and therefore it is reasonable for the

        client to retry the exact same request that triggered this response.


        The response body SHOULD contain a JSON error object. MUST be any HTTP

        status code specified in [RFC 7231](https://www.rfc-editor.org/rfc/rfc7231.html#section-6.6).


        See also:

        * [Error Handling](#section/API-Principles/Error-Handling) in the API in general.

        * [Common Error Codes](errors.json)'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
  securitySchemes:
    Bearer:
      type: http
      scheme: bearer
      bearerFormat: JWT or openEO
      description: "A Bearer token can be provided in two different formats:\n1. **JSON Web Token (JWT) - RECOMMENDED**\n\n   - Conformance class: `https://api.openeo.org/1.3.0/authentication/jwt`\n   \n   The Bearer token is an access token in [JWT](https://datatracker.ietf.org/doc/html/rfc7519) format\n   as defined in RFC 7519. For openEO, it MUST include the issuer in the\n   `iss` claim although being optional in RFC 7519.\n   If the concept of an issuer does not exist in an authentication method (e.g. in HTTP Basic),\n   implementations could use the endpoint for Basic Authentication as the issuer, for example.\n\n   openEO backend implementations MUST signal their support for JWT by listing the given\n   conformance class. Likewise, openEO clients SHOULD only use JWT when the openEO backend\n   lists the conformance class.\n\n2. **openEO Tokens - DEPRECATED**\n\n   - Conformance class: *None*\n\n   The Bearer Token is constructed from the authentication method, a\n   provider ID (if available) and the access token. All separated by a\n   forward slash `/`.\n\n   Examples (replace `TOKEN` with the actual access token):\n\n   - Basic authentication (no provider ID available): `basic//TOKEN`\n   - OpenID Connect (provider ID is `ms`): `oidc/ms/TOKEN`.\n     For OpenID Connect, the provider ID corresponds to the value\n     specified for `id` for each provider in `GET /credentials/oidc`.\n\n   All openEO backends MUST accept this method for backward compatibility\n   until version 2.0 of the specification.\n\n   The access tokens provided by the identity provider do not include\n   the prefix that includes the authentication method and provider ID.\n   The Bearer Token sent to the openEO backend MUST have the prefix, e.g. `basic//` for Basic authentication.\n   This means that the clients have to prepend the prefix.\n\nJWT and openEO tokens can be distinguished by the presence of a slash `/` in the token, which JWT can never contain due to the Base64 encoding."
    Basic:
      type: http
      scheme: basic
externalDocs:
  description: openEO Documentation
  url: https://openeo.org/documentation/1.0/
x-refined-from:
- openeo-api-openapi.yaml
- openeo-openapi.yml