---
updatedAt: 2026-04-21T12:48:50.000Z
agentTools:
  projectIndex: https://finp2p-docs.ownera.io/llms.txt
---

# Bind Data Provider

Define a new data provider integration

# OpenAPI definition

```json
{
  "openapi": "3.0.1",
  "info": {
    "title": "Operational API",
    "description": "This is the operational API reference for adapter development.",
    "termsOfService": "https://ownera.io/terms/",
    "contact": {
      "email": "support@ownera.io"
    },
    "version": "0.28"
  },
  "tags": [
    {
      "name": "dataprovider",
      "description": "Data provider adapter configuration and management"
    }
  ],
  "paths": {
    "/dataprovider/bind": {
      "post": {
        "tags": [
          "dataprovider"
        ],
        "summary": "Bind Data Provider",
        "description": "Define a new data provider integration",
        "operationId": "bind data provider",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "name",
                  "endpoint"
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Unique identifier for the data provider name. This value must be unique across all data provider bindings",
                    "pattern": ".*\\S.*",
                    "x-autoMinLength": true
                  },
                  "endpoint": {
                    "type": "string",
                    "description": "Data provider adapter address in URL format",
                    "pattern": ".*\\S.*",
                    "x-autoMinLength": true
                  },
                  "auth": {
                    "$ref": "#/components/schemas/adapterAuthOptions"
                  },
                  "idempotency": {
                    "$ref": "#/components/schemas/adapterIdempotencyOptions"
                  },
                  "displayName": {
                    "type": "string",
                    "description": "A human-readable name for the data provider that appears in user interfaces",
                    "pattern": ".*\\S.*",
                    "x-autoMinLength": true
                  },
                  "requestTimeout": {
                    "type": "string",
                    "pattern": "^[1-9]\\d*(?:\\.\\d+)?(h|m|s|ms|us|µs|ns)(\\d+(?:\\.\\d+)?(h|m|s|ms|us|µs|ns))*$",
                    "description": "The maximum time allowed for each request to the data provider adapter",
                    "default": "30s"
                  },
                  "backoff": {
                    "type": "string",
                    "pattern": "^[1-9]\\d*(?:\\.\\d+)?(h|m|s|ms|us|µs|ns)(\\d+(?:\\.\\d+)?(h|m|s|ms|us|µs|ns))*$",
                    "description": "The waiting period between consecutive retry attempts when a request fails",
                    "default": "5m"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/dataProviderResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIErrors"
                },
                "example": {
                  "errors": [
                    {
                      "code": 1002,
                      "message": "Invalid request format"
                    }
                  ]
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIErrors"
                },
                "example": {
                  "errors": [
                    {
                      "code": 2202,
                      "message": "Internal service failure"
                    }
                  ]
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "dataProviderResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "description": "Unique identifier for the data provider",
            "readOnly": true,
            "pattern": ".*\\S.*",
            "x-autoMinLength": true
          },
          "name": {
            "type": "string",
            "description": "Data provider name",
            "pattern": ".*\\S.*",
            "x-autoMinLength": true
          },
          "providerType": {
            "type": "string",
            "enum": [
              "adapter",
              "finp2p"
            ],
            "description": "Type of data provider",
            "readOnly": true
          },
          "endpoint": {
            "type": "string",
            "description": "Data provider adapter endpoint URL",
            "pattern": ".*\\S.*",
            "x-autoMinLength": true
          },
          "displayName": {
            "type": "string",
            "description": "Human-readable name for the data provider",
            "pattern": ".*\\S.*",
            "x-autoMinLength": true
          },
          "requestTimeout": {
            "type": "string",
            "description": "Maximum time allowed for each request to the data provider",
            "pattern": ".*\\S.*",
            "x-autoMinLength": true
          },
          "backoff": {
            "type": "string",
            "description": "Waiting period between retry attempts",
            "pattern": ".*\\S.*",
            "x-autoMinLength": true
          }
        }
      },
      "adapterIdempotencyOptions": {
        "type": "object",
        "description": "Idempotency configuration to prevent duplicate request processing",
        "required": [
          "idempotent"
        ],
        "properties": {
          "idempotent": {
            "type": "boolean",
            "default": false,
            "description": "define whether ledger adapter supports idempotency"
          },
          "transientFailureCodes": {
            "description": "list of HTTP status code which are safe to retry regardless if the adapter is idempotent or not",
            "type": "array",
            "default": [
              "429",
              "503"
            ],
            "items": {
              "type": "string",
              "pattern": "^([1-5][0-9]{2})$"
            }
          }
        }
      },
      "adapterAuthOptions": {
        "type": "array",
        "description": "List of authentication mechanisms supported by this ledger",
        "items": {
          "oneOf": [
            {
              "$ref": "#/components/schemas/adapterOAuthOptions"
            },
            {
              "$ref": "#/components/schemas/adapterMtlsOptions"
            },
            {
              "$ref": "#/components/schemas/adapterApiKeyOptions"
            }
          ],
          "discriminator": {
            "propertyName": "type",
            "mapping": {
              "oauth": "#/components/schemas/adapterOAuthOptions",
              "mtls": "#/components/schemas/adapterMtlsOptions",
              "api-key": "#/components/schemas/adapterApiKeyOptions"
            }
          }
        }
      },
      "adapterOAuthOptions": {
        "type": "object",
        "required": [
          "type",
          "oauthClientId",
          "oauthClientSecret",
          "oauthServerEndpoint",
          "alg",
          "jwtKey"
        ],
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "oauth"
            ]
          },
          "oauthClientId": {
            "type": "string",
            "description": "OAuth api client ID for ledger adpater authenticated requests",
            "pattern": ".*\\S.*",
            "x-autoMinLength": true
          },
          "oauthClientSecret": {
            "type": "string",
            "description": "Oauth api client secret for ledger adpater authenticated requests",
            "pattern": ".*\\S.*",
            "x-autoMinLength": true
          },
          "oauthServerEndpoint": {
            "type": "string",
            "description": "OAuth tokens api endpoint for ledger adpater authenticated requests",
            "pattern": ".*\\S.*",
            "x-autoMinLength": true
          },
          "alg": {
            "description": "ledger adapter signing of jwt token alg",
            "type": "string",
            "pattern": ".*\\S.*",
            "x-autoMinLength": true
          },
          "jwtKey": {
            "description": "define the key (for hmac) or private key for signing jwt tokens",
            "type": "string",
            "pattern": ".*\\S.*",
            "x-autoMinLength": true
          }
        }
      },
      "adapterMtlsOptions": {
        "type": "object",
        "required": [
          "type",
          "clientCertificate",
          "caCertificate",
          "key"
        ],
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "mtls"
            ]
          },
          "clientCertificate": {
            "type": "string",
            "description": "mtls client certificate",
            "pattern": ".*\\S.*",
            "x-autoMinLength": true
          },
          "caCertificate": {
            "type": "string",
            "description": "mtls certificate authority certificate",
            "pattern": ".*\\S.*",
            "x-autoMinLength": true
          },
          "key": {
            "type": "string",
            "description": "mtls key",
            "pattern": ".*\\S.*",
            "x-autoMinLength": true
          }
        }
      },
      "adapterApiKeyOptions": {
        "type": "object",
        "required": [
          "type",
          "apiKey"
        ],
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "api-key"
            ]
          },
          "apiKey": {
            "type": "string",
            "pattern": ".*\\S.*",
            "x-autoMinLength": true
          }
        }
      },
      "APIError": {
        "type": "object",
        "required": [
          "code",
          "message"
        ],
        "properties": {
          "code": {
            "type": "integer",
            "description": "Error code indicating the specific failure - for more information see [API Errors](./api-error-codes-reference).\n"
          },
          "message": {
            "type": "string",
            "description": "A descriptive message providing context about the error.",
            "pattern": ".*\\S.*",
            "x-autoMinLength": true
          }
        }
      },
      "APIErrors": {
        "type": "object",
        "required": [
          "errors"
        ],
        "properties": {
          "errors": {
            "type": "array",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/APIError"
            }
          }
        }
      }
    }
  }
}
```