Akoya Apps Management API OpenAPI specification

By hovering on the code, a clipboard icon will appear on the top right. Use it to copy the code. Then paste into your favorite text or code editor and save as a YAML file.

Akoya Apps Management API v2.0

openapi: 3.1.0
x-stoplight:
  id: mxlrutxhvl570
info:
  title: Akoya Apps Management API v2.0
  description: |-
    The Akoya Apps Management API helps you create and update your applications on the Akoya network.

    Apps Management API updates:
        - v2.0
          - October 4, 2024
            - Create App endpoint: Specify that the scope must include at least one product in addition to Account Information.
            - Get Subscriptions for App endpoint: Mention that if an app is created with only Account Information, no subscriptions will be returned for that app.
          - API updated to support DCR standards.
        - v1.3.1
          - Updated description for the Akoya providers by product endpoint:
              - Corrected query examples.
        - v1.3
          - `put-subscriptions` now supports adding products to subscriptions. When products are added, the app must send end-users back through authorization to consent to the added product.
          - `get-subscriptions-appId` is updated with a new response to support ability to add products (above).
          - `get-apps` now returns Akoya products used by apps.
          - The service token now requires the scope parameter to indicate the Akoya service used (Management API).
          - Additional special characters added to `name` in app creation. `#$&'()*+,-./|–é`
        - v1.2 
          - When searching providers for supported Akoya products, you're now able to indicate if you'd like providers who match ALL of your requested products or ANY (some).
        - v1.1 
          - You may now GET a list of your apps and their details.
  contact:
    name: Akoya Support
    url: 'https://www.akoya.com'
    email: [email protected]
  license:
    name: Apache License Version 2.0
    url: 'https://www.apache.org/licenses/LICENSE-2.0'
  version: 2.0.0
servers:
  - url: sandbox-api.akoya.com
    description: Sandbox API server
  - url: api.akoya.com
    description: Production API server
components:
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
    bearerAuth:
      type: http
      scheme: bearer
security:
  - bearerAuth: []
paths:
  '/manage/{version}/apps/register':
    post:
      tags:
        - Apps
      summary: Create App
      description: |-
        Creates an application. This endpoint will automatically subscribe the created app to all valid providers.

        >
        > ⚠️ `scope` must include at least one product in addition to Account Information.
        >

        - `client_name` should be alphanumeric and may include special characters: `#$&'()\*+,-./|-é.`. `client_name` needs to be unique. You cannot create two applications with the same `client_name`.
            
        - `logo_uri` must be a URL to a file (Required).
            
            - Minimum height: 200px
                
            - Minimum width: 200px
                
            - Maximum height: 1024px
                
            - Maximum width: 1024px
                
            - File types: transparent PNG or JPG
                
            - Maximum file size: 2 MB
                
        - `icon_uri` must be a URL to a file (Optional).
            
            - Must be square.
                
            - Height = width.
                
            - Minimum height: 40px
                
            - Minimum width: 40px
                
            - Maximum height: 200px
                
            - Maximum width: 200px
                
            - File types: transparent PNG or JPG
                
            - Maximum file size: 2 MB
                
        - `scope`: Products this app will use. This product list needs to be provided as a string where the products are space-seperated. You should include at least one product in addition to Account Information.
      operationId: post-register
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                client_name:
                  type: string
                description:
                  type: string
                redirect_uris:
                  type: array
                  items:
                    type: string
                logo_uri:
                  type: string
                icon_url:
                  type: string
                contacts:
                  type: array
                  items:
                    type: string
                client_uri:
                  type: string
                scope:
                  type: string
              x-examples:
                Example 1:
                  client_name: app_name
                  description: this is app description
                  redirect_uris:
                    - 'https://akoya.com'
                  logo_uri: 'https://dummyimage.com/240x240/000/ffffff.png'
                  icon_url: 'https://dummyimage.com/240x240/000/ffffff.png'
                  contacts:
                    - [email protected]
                  client_uri: 'http://localhost:8888'
                  scope: account_info payments
            examples:
              Request body:
                value:
                  client_name: app_name
                  description: this is app description
                  redirect_uris:
                    - 'https://example.com/callback'
                  logo_uri: 'https://dummyimage.com/240x240/000/ffffff.png'
                  icon_url: 'https://dummyimage.com/240x240/000/ffffff.png'
                  contacts:
                    - [email protected]
                  client_uri: 'http://localhost:8888'
                  scope: account_info payments
      responses:
        '200':
          description: OK
          headers:
            Content-Type:
              schema:
                type: string
                example: application/json; charset=utf-8
            X-Akoya-Interaction-Id:
              schema:
                type: string
                example: Root=1-66981abd-3baf2692467140e0aeffcb57d6997db9
          content:
            application/json:
              schema:
                type: object
                properties:
                  client_id:
                    type: string
                  client_secret:
                    type: string
                  client_name:
                    type: string
                  redirect_uris:
                    type: array
                    items:
                      type: string
                  client_uri:
                    type: string
                  contacts:
                    type: array
                    items:
                      type: string
                  description:
                    type: string
                  logo_uri:
                    type: string
                  icon_url:
                    type: string
                  scope:
                    type: string
                  grant_types:
                    type: array
                    items:
                      type: string
                  status:
                    type: string
                x-examples:
                  Example 1:
                    client_id: client_id
                    client_secret: client_secret
                    client_name: app_name
                    redirect_uris:
                      - 'https://akoya.com'
                    client_uri: 'https://akoya.com'
                    contacts:
                      - [email protected]
                    description: this is app description
                    logo_uri: 'https://dummyimage.com/240x240/000/ffffff.png'
                    icon_url: 'https://dummyimage.com/240x240/000/ffffff.png'
                    scope: account_info payments
                    grant_types:
                      - authorization_code
                      - refresh_token
                    status: Approved
              examples:
                Successful response:
                  value:
                    client_id: client_id
                    client_secret: client_secret
                    client_name: app_name
                    redirect_uris:
                      - 'https://akoya.com'
                    client_uri: 'https://akoya.com'
                    contacts:
                      - [email protected]
                    description: this is app description
                    logo_uri: 'https://dummyimage.com/240x240/000/ffffff.png'
                    icon_url: 'https://dummyimage.com/240x240/000/ffffff.png'
                    scope: account_info payments
                    grant_types:
                      - authorization_code
                      - refresh_token
                    status: Approved
        '400':
          description: Invalid Argument
          headers:
            Content-Type:
              schema:
                type: string
                example: application/json; charset=utf-8
            X-Akoya-Interaction-Id:
              schema:
                type: string
                example: Root=1-66981a23-be7c421caa3d4727a2a4033e437d3f9c
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: string
                  message:
                    type: string
                x-examples:
                  Example 1:
                    code: InvalidArgument
                    message: unable to validate image
              examples:
                Invalid Argument:
                  value:
                    code: InvalidArgument
                    message: unable to validate image
        '409':
          description: Already Exists
          headers:
            Content-Type:
              schema:
                type: string
                example: application/json; charset=utf-8
            X-Akoya-Interaction-Id:
              schema:
                type: string
                example: Root=1-66988d4a-737ddfea0a324298955ee24ad635d24e
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: string
                  message:
                    type: string
                x-examples:
                  Example 1:
                    code: AlreadyExists
                    message: This app name already exists for this recipientId.
              examples:
                App already exists:
                  value:
                    code: AlreadyExists
                    message: This app name already exists for this recipientId.
      x-stoplight:
        id: vwhiafkoc9cb7
    parameters:
      - schema:
          type: string
        name: version
        in: path
        required: true
        description: Management API major version (e.g. v2)
  '/manage/{version}/recipients/{recipientId}/apps/{appId}':
    patch:
      tags:
        - Apps
      summary: Update App
      description: |-
        Update your application. The request format follows the JSON Patch specification ([<u>RFC 6902</u>](https://datatracker.ietf.org/doc/html/rfc6902/)<u>).</u>

        Only the add, replace, and remove (for lists only) operations are supported.

        `client_name` cannot be updated. You cannot change an application's name after it's created.
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                type: object
                properties:
                  op:
                    type: string
                  path:
                    type: string
                  value:
                    type: string
              x-examples:
                Example 1:
                  - op: replace
                    path: /description
                    value: this is a modified description
            examples:
              Replace description:
                value:
                  - op: replace
                    path: /description
                    value: this is a modified description
              Replace description and add redirect URI:
                value:
                  - op: replace
                    path: /description
                    value: this is a modified description
                  - op: add
                    path: /redirect_uris/1
                    value: 'https://random2.com'
              Reset client secret:
                value:
                  - op: replace
                    path: /client_secret
                    value: true
              Add a new redirect URI:
                value:
                  - op: add
                    path: /redirect_uris/0
                    value: 'https://example.com/callback'
        description: "The request body will vary depending on what attributes of your application you're looking to update or replace.\r\n\r\n`\"op\"` (operation) accepted values: \r\n- `\"add\"`\r\n- `\"replace\"`\r\n    - Use the `\"replace\"` operation when resetting your client secret.\r\n- `\"remove\"`\r\n\r\n`\"path\"` (app attribute) accepted values:\r\n- `\"/description\"` (app description)\r\n- `\"/redirect_uris/{number}`\" `{number}` is the redirect URI you want to alter (e.g. the first, the second). The redirect URI order is as shown in the Data Recipient Hub. Example: `\"/redirect_uris/1\"` refers to the second listed redirect URI.\r\n- `\"/client_secret\"`\r\n\r\n`\"value\"` (the value of the updated attribute) accepted values:\r\n- `true`(resetting client secret ONLY)\r\n- Free text for other operation\r\n\r\n> **Note**\r\n>\r\n> You can enter more than one operation in the same request.\r\n"
      operationId: patch-app
      parameters:
        - name: recipientId
          in: path
          description: Your recipient id. You may find your recipientId in the Data Recipient Hub under Team Management/Company Id.
          schema:
            type: string
          required: true
          example: '{{recipient_id}}'
        - name: appId
          in: path
          description: The ID of your application
          schema:
            type: string
          required: true
          example: '{{appId}}'
      responses:
        '200':
          description: OK
          headers:
            Content-Type:
              schema:
                type: string
                example: application/json; charset=utf-8
            X-Akoya-Interaction-Id:
              schema:
                type: string
                example: Root=1-669845bf-9095f59723be485783308ffc7f6f7be7
          content:
            application/json:
              schema:
                type: object
                properties:
                  client_id:
                    type: string
                  client_name:
                    type: string
                  owner:
                    type: string
                  redirect_uris:
                    type: array
                    items:
                      type: string
                  client_uri:
                    type: string
                  contacts:
                    type: array
                    items:
                      type: string
                  description:
                    type: string
                  logo_uri:
                    type: string
                  scope:
                    type: array
                    items:
                      type: string
                x-examples:
                  Example 1:
                    client_id: c8a14d90-7843-4b4f-995f-e081ac99fa96
                    client_name: app_name_2
                    owner: paprika_rec
                    redirect_uris:
                      - 'https://akoya.com'
                    client_uri: 'http://localhost:8888'
                    contacts:
                      - [email protected]
                    description: this is a modified description
                    logo_uri: 'https://dummyimage.com/240x240/000/ffffff.png'
                    scope:
                      - account_info
                      - payments
              examples:
                Replaced description:
                  summary: 200 OK
                  value:
                    client_id: c8a14d90-7843-4b4f-995f-e081ac99fa96
                    client_name: app_name_2
                    owner: paprika_rec
                    redirect_uris:
                      - 'https://example.com/callback'
                    client_uri: 'http://localhost:8888'
                    contacts:
                      - [email protected]
                    description: this is a modified description
                    logo_uri: 'https://dummyimage.com/240x240/000/ffffff.png'
                    scope:
                      - account_info
                      - payments
                Added redirect URI and replaced description:
                  summary: 200 OK - Add a new Redirect URI
                  value:
                    client_id: c8a14d90-7843-4b4f-995f-e081ac99fa96
                    client_name: app_name_2
                    owner: paprika_rec
                    redirect_uris:
                      - 'https://example.com/callback1'
                      - 'https://example.com/callback2'
                    client_uri: 'http://localhost:8888'
                    contacts:
                      - [email protected]
                    description: this is a modified description
                    logo_uri: 'https://dummyimage.com/240x240/000/ffffff.png'
                    scope:
                      - account_info
                      - balances
        '400':
          description: Invalid Argument
          headers:
            Content-Type:
              schema:
                type: string
                example: application/json; charset=utf-8
            X-Akoya-Interaction-Id:
              schema:
                type: string
                example: Root=1-6698469c-c1817b040ae2492f85de1078cec6e974
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    code:
                      type: string
                    message:
                      type: string
                x-examples:
                  Example 1:
                    - code: InvalidArgument
                      message: /client_name may not be modified
              examples:
                Invalid Argument:
                  value:
                    - code: InvalidArgument
                      message: /client_name may not be modified
      x-stoplight:
        id: kjb3tk9lkyicy
    parameters:
      - schema:
          type: string
        name: recipientId
        in: path
        required: true
        description: Recipient ID
      - schema:
          type: string
        name: appId
        in: path
        required: true
        description: The ID of your application
      - schema:
          type: string
        name: version
        in: path
        required: true
        description: Management API major version (e.g. v2)
  '/manage/{version}/recipients/{recipientId}/apps':
    get:
      tags:
        - Apps
      summary: Get All Apps
      operationId: get-apps
      description: |-
        Get a paginated list of all your applications.  

        You can use the `next` and the `prev` links to page through the response. You can also pass a `offset` and a `limit` parameter to get a specific page. The default page size is 50, and the maximum allowed page size is 500.
      parameters:
        - name: offset
          in: query
          schema:
            type: integer
          example: 10
          description: Number of skipped items (default = 0)
        - name: limit
          in: query
          schema:
            type: integer
          example: 2
          description: 'Number of items per page (default = 50, must be <=500)'
        - name: recipientId
          in: path
          schema:
            type: string
          required: true
          example: '{{recipient_id}}'
          description: Your recipient id. You may find your recipientId in the Data Recipient Hub under Team Management/Company Id.
      responses:
        '200':
          description: OK
          headers:
            Content-Type:
              schema:
                type: string
                example: application/json; charset=utf-8
            X-Akoya-Interaction-Id:
              schema:
                type: string
                example: Root=1-669826f3-3c87279718484dfaaac99a81938d5a8f
          content:
            application/json:
              schema:
                type: object
                properties:
                  page:
                    type: object
                    properties:
                      total_elements:
                        type: integer
                  links:
                    type: object
                    properties:
                      next:
                        type: object
                        properties:
                          href:
                            type: string
                      prev:
                        type: object
                        properties:
                          href:
                            type: string
                  apps:
                    type: array
                    items:
                      type: object
                      properties:
                        client_id:
                          type: string
                        client_name:
                          type: string
                        description:
                          type: string
                        redirect_uris:
                          type: array
                          items:
                            type: string
                        client_uri:
                          type: string
                        logo_uri:
                          type: string
                        contacts:
                          type: array
                          items:
                            type: string
                        scope:
                          type: string
                        owner:
                          type: string
                x-examples:
                  Example 1:
                    page:
                      total_elements: 221
                    links:
                      next:
                        href: /manage/v2/recipients/paprika_rec/apps?limit=2&offset=12
                      prev:
                        href: /manage/v2/recipients/paprika_rec/apps?limit=2&offset=8
                    apps:
                      - client_id: a24fd6b6-fa38-482e-9c91-26ca4bc1a490
                        client_name: paprika_testNew_4
                        description: this is app description
                        redirect_uris:
                          - 'https://akoya.com'
                        client_uri: 'http://localhost:8888'
                        logo_uri: 'https://picsum.photos/1024/1024.jpg'
                        contacts:
                          - [email protected]
                        scope: balances account_info payments investments customers
                        owner: paprika_rec
                      - client_id: dbc84f1b-e6f1-4d09-a928-16411a7f87ea
                        client_name: paprika_testNew_5
                        description: this is app description
                        redirect_uris:
                          - 'https://akoya.com'
                        client_uri: 'http://localhost:8888'
                        logo_uri: 'https://picsum.photos/1024/1024.jpg'
                        contacts:
                          - [email protected]
                        scope: payments investments customers balances account_info
                        owner: paprika_rec
              examples:
                Successful response:
                  value:
                    page:
                      total_elements: 221
                    links:
                      next:
                        href: /manage/v2/recipients/paprika_rec/apps?limit=2&offset=12
                      prev:
                        href: /manage/v2/recipients/paprika_rec/apps?limit=2&offset=8
                    apps:
                      - client_id: a24fd6b6-fa38-482e-9c91-26ca4bc1a490
                        client_name: paprika_testNew_4
                        description: this is app description
                        redirect_uris:
                          - 'https://example.com/callback1'
                        client_uri: 'http://localhost:8888'
                        logo_uri: 'https://picsum.photos/1024/1024.jpg'
                        contacts:
                          - [email protected]
                        scope: balances account_info payments investments customers
                        owner: paprika_rec
                      - client_id: dbc84f1b-e6f1-4d09-a928-16411a7f87ea
                        client_name: paprika_testNew_5
                        description: this is app description
                        redirect_uris:
                          - 'https://example.com/callback2'
                        client_uri: 'http://localhost:8888'
                        logo_uri: 'https://picsum.photos/1024/1024.jpg'
                        contacts:
                          - [email protected]
                        scope: payments investments customers balances account_info
                        owner: paprika_rec
      x-stoplight:
        id: 02byni0lee48w
    parameters:
      - schema:
          type: string
        name: version
        in: path
        required: true
        description: Management API major version (e.g. v2)
      - schema:
          type: string
        name: recipientId
        in: path
        required: true
        description: Your recipient id. You may find your recipientId in the Data Recipient Hub under Team Management/Company Id.
  '/manage/{version}/recipients/{recipientId}/products':
    get:
      tags:
        - Products
      summary: Get Purchased Products
      operationId: get-products
      description: Get a list of all your purchased Akoya products.
      security:
        - bearerAuth: []
      parameters:
        - name: recipientId
          in: path
          schema:
            type: string
          required: true
          example: '{{recipient_id}}'
          description: Your recipient id. You may find your recipientId in the Data Recipient Hub under Team Management/Company Id.
      responses:
        '200':
          description: OK
          headers:
            Content-Type:
              schema:
                type: string
                example: application/json; charset=utf-8
            X-Akoya-Interaction-Id:
              schema:
                type: string
                example: Root=1-669752ce-eb6114c500be450a917eb1f9326df3bd
          content:
            application/json:
              schema:
                type: object
                properties:
                  products:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                        display_name:
                          type: string
                        description:
                          type: string
                        required:
                          type: boolean
                x-examples:
                  Example 1:
                    products:
                      - name: account_info
                        display_name: Account Info
                        description: 'Account display name, masked account number, type, description.'
                        required: true
                      - name: payments
                        display_name: Payments
                        description: Identifiers necessary to make ACH and RTP payments.
                        required: false
                      - name: investments
                        display_name: Accounts & Investments
                        description: Detailed information on underlying holdings and positions of investment accounts.
                        required: false
                      - name: customers
                        display_name: Customers
                        description: 'Verified contact information on file, including name, email, address, and phone number.'
                        required: false
                      - name: balances
                        display_name: Balances
                        description: 'Balances and rates of bank accounts, credit cards, loans, investments, and more.'
                        required: false
                      - name: transactions
                        display_name: Transactions
                        description: 'Up to two years of transaction data across account types, including amounts, dates, and descriptions.'
                        required: false
              examples:
                Successful response:
                  value:
                    products:
                      - name: account_info
                        display_name: Account Info
                        description: 'Account display name, masked account number, type, description.'
                        required: true
                      - name: payments
                        display_name: Payments
                        description: Identifiers necessary to make ACH and RTP payments.
                        required: false
                      - name: investments
                        display_name: Accounts & Investments
                        description: Detailed information on underlying holdings and positions of investment accounts.
                        required: false
                      - name: customers
                        display_name: Customers
                        description: 'Verified contact information on file, including name, email, address, and phone number.'
                        required: false
                      - name: balances
                        display_name: Balances
                        description: 'Balances and rates of bank accounts, credit cards, loans, investments, and more.'
                        required: false
                      - name: transactions
                        display_name: Transactions
                        description: 'Up to two years of transaction data across account types, including amounts, dates, and descriptions.'
                        required: false
        '401':
          description: Unauthorized
          headers:
            Content-Type:
              schema:
                type: string
                example: application/json
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: integer
                  message:
                    type: string
                x-examples:
                  Example 1:
                    code: 602
                    message: Customer not authorized
              examples:
                Unauthorized:
                  value:
                    code: 602
                    message: Customer not authorized
      x-stoplight:
        id: bi5fhau1ly63l
    parameters:
      - schema:
          type: string
        name: version
        in: path
        required: true
        description: Management API major version (e.g. v2)
      - schema:
          type: string
        name: recipientId
        in: path
        required: true
        description: Your recipient id. You may find your recipientId in the Data Recipient Hub under Team Management/Company Id.
  '/manage/{version}/recipients/{recipientId}/providers':
    get:
      tags:
        - Products
      summary: Get Valid Providers For Products
      operationId: get-providers
      description: |-
        Get a paginated list of all providers connected to Akoya that support any of the products passed in as a query parameter (`products`).

        You can use the `next` and the `prev` links to page through the response. You can also pass a `offset` and a `limit` parameter to get a specific page. The default page size is 50, and the maximum allowed page size is 500
      parameters:
        - name: products
          in: query
          schema:
            type: string
          example: balances
          required: true
          description: Akoya product (e.g. balances)
        - name: recipientId
          in: path
          schema:
            type: string
          required: true
          example: '{{recipient_id}}'
          description: Your recipient id. You may find your recipientId in the Data Recipient Hub under Team Management/Company Id.
      responses:
        '200':
          description: OK
          headers:
            Content-Type:
              schema:
                type: string
                example: application/json; charset=utf-8
            X-Akoya-Interaction-Id:
              schema:
                type: string
                example: Root=1-66975c0f-f0c01004a1d943b09e5752aeeeee115c
          content:
            application/json:
              schema:
                type: object
                properties:
                  page:
                    type: object
                    properties:
                      total_elements:
                        type: integer
                  links:
                    type: object
                    properties:
                      next:
                        type: object
                        properties:
                          href:
                            type: string
                  providers:
                    type: array
                    items:
                      type: object
                      properties:
                        provider_id:
                          type: string
                        display_name:
                          type: string
                        provider_url:
                          type: string
                x-examples:
                  Example 1:
                    page:
                      total_elements: 1632
                    links:
                      next:
                        href: /manage/v2/recipients/paprika_rec/providers?limit=50&offset=50&products=balances
                    providers:
                      - provider_id: 01_honest_bank
                        display_name: '01:Honest Bank right'
                        provider_url: 'https://honestbank.com'
                      - provider_id: 'fiserv:testdev60274'
                        display_name: 167th TFR Federal Credit Union
                      - provider_id: 'fiserv:22010'
                        display_name: 1st Advantage FCU
                      - provider_id: 'fiserv:41151'
                        display_name: 1st Bank of Sea Isle City - Personal
                      - provider_id: 'fiserv:28611'
                        display_name: 1st Capital Bank
                      - provider_id: 'fiserv:41057'
                        display_name: 1st Community Bank (IL) - Online Banking
                      - provider_id: 'fiserv:25228'
                        display_name: 1st National Bank
                      - provider_id: 'jackhenry:fnbhenning'
                        display_name: 1st National Bank Henning
                      - provider_id: 'fiserv:28451'
                        display_name: 1st State Bank (MI) - Personal
                      - provider_id: 'jackhenry:fsb-purdy'
                        display_name: 1st State Bank of Purdy
                      - provider_id: 'fiserv:8008'
                        display_name: 1st United Bank (MN) - Personal Banking
                      - provider_id: 'jackhenry:21stcb'
                        display_name: 21st Century Bank
                      - provider_id: 'fiserv:29990'
                        display_name: 22nd State Bank - Consumer/Small Business
                      - provider_id: 'fiserv:32768'
                        display_name: Abbott Laboratories Employee Credit Union (ALEC)
                      - provider_id: 'fiserv:testdev32768'
                        display_name: Abbott Laboratories Employee Credit Union (ALEC)
                      - provider_id: 'fiserv:60707'
                        display_name: ABCO Federal Credit Union
                      - provider_id: 'jackhenry:ablebanking'
                        display_name: ableBanking
                      - provider_id: 'jackhenry:abtgold'
                        display_name: AB&T
                      - provider_id: 'fiserv:40967'
                        display_name: Access Bank
                      - provider_id: 'fiserv:27272'
                        display_name: ACMG Federal Credit Union
                      - provider_id: 'fiserv:40574'
                        display_name: Adams Bank & Trust - Personal
                      - provider_id: 'fiserv:40672'
                        display_name: Adirondack Bank -Personal
                      - provider_id: 'fiserv:1972'
                        display_name: Affinity Plus Federal Credit Union
                      - provider_id: 'fiserv:24878'
                        display_name: Agricultural Federal Credit Union
                      - provider_id: 'fiserv:1975'
                        display_name: Air Academy Federal Credit Union
                      - provider_id: e2e_test_dp
                        display_name: Akoya E2E Test DP
                      - provider_id: 'fiserv:40215'
                        display_name: Alden State Bank (NY)
                      - provider_id: 'fiserv:23480'
                        display_name: Align Credit Union
                      - provider_id: 'fiserv:9116'
                        display_name: AllSouth Federal Credit Union
                      - provider_id: 'jackhenry:alternatives'
                        display_name: Alternatives Federal Credit Union
                      - provider_id: 'fiserv:28870'
                        display_name: Ambler Savings Bank - Personal
                      - provider_id: 'fiserv:61158'
                        display_name: American Bank of Baxter Springs
                      - provider_id: 'fiserv:2811'
                        display_name: American Bank (PA) - Online Banking
                      - provider_id: 'fiserv:24027'
                        display_name: American Bank & Trust (SD) - Online Banking
                      - provider_id: 'fiserv:1603'
                        display_name: American First Credit Union
                      - provider_id: 'fiserv:40830'
                        display_name: American Heritage National Bank
                      - provider_id: 'jackhenry:amnb'
                        display_name: American National Bank & Trust Company
                      - provider_id: 'jackhenry:amerifirstbank'
                        display_name: AmeriFirst Bank
                      - provider_id: 'fiserv:23322'
                        display_name: Andover Bank - Personal
                      - provider_id: 'fiserv:40761'
                        display_name: Andrew Johnson Bank
                      - provider_id: 'fiserv:40787'
                        display_name: Androscoggin Bank - Personal
                      - provider_id: 'fiserv:26523'
                        display_name: Anstaff Bank - Personal
                      - provider_id: 'fiserv:28454'
                        display_name: Antwerp Exchange Bank Co.
                      - provider_id: 'fiserv:23770'
                        display_name: APG Federal Credit Union
                      - provider_id: 'fiserv:1003'
                        display_name: APL Federal Credit Union
                      - provider_id: 'fiserv:41133'
                        display_name: Apollo Trust Company
                      - provider_id: 'fiserv:40947'
                        display_name: Apple River State Bank - First Community Bank of Galena
                      - provider_id: 'fiserv:60089'
                        display_name: Applied Bank - Personal
                      - provider_id: 'fiserv:25814'
                        display_name: Arbor Financial Credit Union
                      - provider_id: 'fiserv:8409'
                        display_name: 'Armor Bank (Forrest City, AR) -  Personal'
              examples:
                Successful response:
                  value:
                    page:
                      total_elements: 1632
                    links:
                      next:
                        href: /manage/v2/recipients/paprika_rec/providers?limit=50&offset=50&products=balances
                    providers:
                      - provider_id: mikomo
                        display_name: Mikomo
                        provider_url: mikomo.ddp.akoya.com
      x-stoplight:
        id: 6hytrnpitu0f5
    parameters:
      - schema:
          type: string
        name: version
        in: path
        required: true
        description: Management API major version (e.g. v2)
      - schema:
          type: string
        name: recipientId
        in: path
        required: true
        description: Your recipient id. You may find your recipientId in the Data Recipient Hub under Team Management/Company Id.
  '/manage/{version}/subscriptions/{appId}':
    get:
      tags:
        - Subscriptions
      summary: Get Subscriptions For App
      description: |-
        Get a paginated list of all ACTIVE subscriptions for this application.

        >
        > ⚠️ If you created an app with only the Account Information product, no subscriptions will be returned for that app.
        >

        You can use the `next` and the `prev` links to page through the response. You can also pass a `offset` and a `limit` parameter to get a specific page. The default page size is 50, and the maximum allowed page size is 500.
      operationId: get-subscriptions
      parameters:
        - name: offset
          in: query
          schema:
            type: integer
          example: 1
          description: Number of skipped items (default = 0)
        - name: limit
          in: query
          schema:
            type: integer
          example: 2
          description: 'Number of items per page (default = 50, must be <=500)'
        - name: appId
          in: path
          schema:
            type: string
          required: true
          example: '{{appId}}'
          description: The ID of your application
      responses:
        '200':
          description: OK
          headers:
            Content-Type:
              schema:
                type: string
                example: application/json; charset=utf-8
            X-Akoya-Interaction-Id:
              schema:
                type: string
                example: Root=1-66984b62-050b7264672b4131bc7086d78b89657d
          content:
            application/json:
              schema:
                type: object
                properties:
                  page:
                    type: object
                    properties:
                      total_elements:
                        type: integer
                  links:
                    type: object
                    properties:
                      next:
                        type: object
                        properties:
                          href:
                            type: string
                      prev:
                        type: object
                        properties:
                          href:
                            type: string
                  subscriptions:
                    type: array
                    items:
                      type: object
                      properties:
                        provider_id:
                          type: string
                        display_name:
                          type: string
                        subscription_status:
                          type: string
                        account_categories:
                          type: array
                          items:
                            type: string
                x-examples:
                  Example 1:
                    page:
                      total_elements: 1618
                    links:
                      next:
                        href: /manage/v2/subscriptions/c8a14d90-7843-4b4f-995f-e081ac99fa96?limit=2&offset=3
                      prev:
                        href: /manage/v2/subscriptions/c8a14d90-7843-4b4f-995f-e081ac99fa96?limit=2&offset=0
                    subscriptions:
                      - provider_id: bankofamerica
                        display_name: Bank of America
                        subscription_status: ACTIVE
                        account_categories:
                          - loanAccount
                          - locAccount
                          - investmentAccount
                          - depositAccount
                      - provider_id: capitalone
                        display_name: Capital One
                        subscription_status: ACTIVE
                        account_categories:
                          - depositAccount
                          - locAccount
                          - loanAccount
              examples:
                Successful response:
                  value:
                    page:
                      total_elements: 1618
                    links:
                      next:
                        href: /manage/v2/subscriptions/c8a14d90-7843-4b4f-995f-e081ac99fa96?limit=2&offset=3
                      prev:
                        href: /manage/v2/subscriptions/c8a14d90-7843-4b4f-995f-e081ac99fa96?limit=2&offset=0
                    subscriptions:
                      - provider_id: mikomo
                        display_name: Mikomo
                        subscription_status: ACTIVE
                        account_categories:
                          - loanAccount
                          - locAccount
                          - investmentAccount
                          - depositAccount
                      - provider_id: mainst
                        display_name: Main St. Bank
                        subscription_status: ACTIVE
                        account_categories:
                          - depositAccount
                          - locAccount
                          - loanAccount
      x-stoplight:
        id: ei6kccn2u07i6
    parameters:
      - schema:
          type: string
        name: version
        in: path
        required: true
        description: Management API major version (e.g. v2)
      - schema:
          type: string
        name: appId
        in: path
        required: true
        description: The id of your application
  '/manage/{version}/subscriptions/{appId}/status':
    get:
      tags:
        - Subscriptions
      summary: Get Subscriptions For App - Filter By Status
      description: |-
        Get a paginated list of all subscriptions filtered by the `status` query parameter for this application.

        Valid values for the `status` enum are:
        - `ACTIVE`
        - `PENDING`
        - `PROCESSING`
        - `TERMINATED`
        - `DENIED`

        You can use the `next` and the `prev` links to page through the response. You can also pass a `offset` and a `limit` parameter to get a specific page. The default page size is 50 and the maximum allowed page size is 500.
      operationId: get-subscriptions-filter
      parameters:
        - name: status
          in: query
          schema:
            type: string
            enum:
              - ACTIVE
              - PENDING
              - PROCESSING
              - TERMINATED
              - DENIED
          example: ACTIVE
          description: Your subscription status
          required: true
        - name: offset
          in: query
          schema:
            type: integer
          example: 1
          description: Number of skipped items (default = 0)
        - name: limit
          in: query
          schema:
            type: integer
          example: 2
          description: 'Number of items per page (default = 50, must be <=500)'
        - name: appId
          in: path
          schema:
            type: string
          required: true
          example: '{{appId}}'
          description: The ID of your application
      responses:
        '200':
          description: OK
          headers:
            Content-Type:
              schema:
                type: string
                example: application/json; charset=utf-8
            X-Akoya-Interaction-Id:
              schema:
                type: string
                example: Root=1-66987978-577180bc1dee4dfcbca4a0297e860832
          content:
            application/json:
              schema:
                type: object
                properties:
                  page:
                    type: object
                    properties:
                      total_elements:
                        type: integer
                  links:
                    type: object
                    properties:
                      next:
                        type: object
                        properties:
                          href:
                            type: string
                      prev:
                        type: object
                        properties:
                          href:
                            type: string
                  subscription_status:
                    type: array
                    items:
                      type: object
                      properties:
                        provider_id:
                          type: string
                        display_name:
                          type: string
                        status:
                          type: string
                        products:
                          type: array
                          items:
                            type: string
                x-examples:
                  Example 1:
                    page:
                      total_elements: 1620
                    links:
                      next:
                        href: /manage/v2/subscriptions/c8a14d90-7843-4b4f-995f-e081ac99fa96/status?limit=2&offset=3&status=ACTIVE
                      prev:
                        href: /manage/v2/subscriptions/c8a14d90-7843-4b4f-995f-e081ac99fa96/status?limit=2&offset=0&status=ACTIVE
                    subscription_status:
                      - provider_id: bankofamerica
                        display_name: Bank of America
                        status: ACTIVE
                        products:
                          - balances
                      - provider_id: capitalone
                        display_name: Capital One
                        status: ACTIVE
                        products:
                          - balances
              examples:
                Successful response example 1:
                  summary: 200 OK
                  value:
                    page:
                      total_elements: 1620
                    links:
                      next:
                        href: /manage/v2/subscriptions/c8a14d90-7843-4b4f-995f-e081ac99fa96/status?limit=2&offset=3&status=ACTIVE
                      prev:
                        href: /manage/v2/subscriptions/c8a14d90-7843-4b4f-995f-e081ac99fa96/status?limit=2&offset=0&status=ACTIVE
                    subscription_status:
                      - provider_id: mikomo
                        display_name: Mikomo Financial
                        status: ACTIVE
                        products:
                          - balances
                      - provider_id: mainst
                        display_name: Main St. Bank
                        status: ACTIVE
                        products:
                          - balances
                Successful response example 2:
                  summary: 200 OK - Get PENDING Subscriptions
                  value:
                    page:
                      total_elements: 15
                    links:
                      next:
                        href: /manage/v2/subscriptions/c8a14d90-7843-4b4f-995f-e081ac99fa96/status?limit=2&offset=6&status=PENDING
                      prev:
                        href: /manage/v2/subscriptions/c8a14d90-7843-4b4f-995f-e081ac99fa96/status?limit=2&offset=2&status=PENDING
                    subscription_status:
                      - provider_id: mikomo
                        display_name: Mikomo Financial
                        status: PENDING
                        products:
                          - balances
                      - provider_id: mainst
                        display_name: Main St. Bank
                        status: PENDING
                        products:
                          - balances
      x-stoplight:
        id: pc11n2bef6p1r
    parameters:
      - schema:
          type: string
        name: version
        in: path
        required: true
        description: Management API major version (e.g. v2)
      - schema:
          type: string
        name: appId
        in: path
        required: true
        description: The id of your application
x-internal: true
tags:
  - name: Apps
    description: Manage your apps
  - name: Products
    description: Get and search your Akoya products
  - name: Subscriptions
    description: Get and search subscriptions

Akoya Apps Management API v1.3.2 (Deprecated)

openapi: 3.1.0
x-stoplight:
  id: tdnl4ky7y7g6n
info:
  title: Akoya Apps Management API v1.3.2
  version: 1.3.2
  description: |-
    > ✋ **v1 is Deprecated**
    >
    > If you are new to the Management API, please refer to the [v2 docs](https://docs.akoya.com/reference/management-api-v20-guide).
    >
    > If you currently use v1, you should plan a migration to v2. Please see our [migration guide](https://docs.akoya.com/reference/management-api-v2-migration-guide).

    The Apps Management API v1.3.2 includes the following updates:
    - v1.3.2
      - Added descriptive text announcing deprecation of v1.
    - v1.3.1
      - Updated description for the Akoya providers by product endpoint:
          - Corrected query examples.
    - v1.3 
      - Pagination support added including new query parameters and metadata in response to endpoints:
        - /recipients/:recipientId/apps
        - /subscriptions/:appId
        - /subscriptions/:appId/status
        - /recipients/:recipientId/providers
        - The DELETE action was removed from the /app endpoint
    - v1.2 
      - When searching providers for supported Akoya products, you're now able to indicate if you'd like providers who match ALL of your requested products or ANY (some).
    - v1.1 
      - You may now GET a list of your apps and their details.
  contact:
    name: API Support
    url: 'http://www.akoya.com'
    email: [email protected]
  license:
    name: Akoya Terms of Use
    url: 'https://recipient.ddp.akoya.com/terms-of-use'
servers:
  - url: sandbox-api.akoya.com
    description: Sandbox API server
  - url: api.akoya.com
    description: Production API server
tags:
  - name: Apps
    description: Manage your apps
  - name: Products
    description: Search for Akoya products
  - name: Subscriptions
    description: Create and search subscriptions
security:
  - bearerAuth: []
paths:
  '/manage/{version}/recipients/{recipientId}/products':
    parameters:
      - $ref: '#/components/parameters/recipientId'
      - $ref: '#/components/parameters/version'
    get:
      summary: Subscribed products
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/subscribedProducts'
              example:
                products:
                  - name: account_info
                    description: 'Account display name, masked account number, type, description.'
                    required: true
          headers:
            X-Akoya-Interaction-Id:
              description: 'Note that [RFC7230] states header names are case insensitive.'
              schema:
                type: string
        '400':
          $ref: '#/components/responses/400'
      operationId: get-subscribed-products
      description: |
        > ✋ **v1 is Deprecated**
        >
        > If you are new to the Management API, please refer to the [v2 docs](https://docs.akoya.com/reference/management-api-v20-guide).
        >
        > If you currently use v1, you should plan a migration to v2. Please see our [migration guide](https://docs.akoya.com/reference/management-api-v2-migration-guide).

        Retrieve a list of your subscribed Akoya products.
      tags:
        - Products
      parameters: []
      x-stoplight:
        id: xhte59wbs6u29
  '/manage/{version}/recipients/{recipientId}/providers':
    parameters:
      - $ref: '#/components/parameters/recipientId'
      - $ref: '#/components/parameters/version'
    get:
      summary: Providers by Akoya product
      description: |
        > ✋ **v1 is Deprecated**
        >
        > If you are new to the Management API, please refer to the [v2 docs](https://docs.akoya.com/reference/management-api-v20-guide).
        >
        > If you currently use v1, you should plan a migration to v2. Please see our [migration guide](https://docs.akoya.com/reference/management-api-v2-migration-guide).

        List all providers that support an Akoya product or products. Include one or more products in the query separated by the & symbol. For instance: `/manage/{version}/recipients/{recipientId}/providers?products=balances&products=transactions`

        Include `offset` and `limit` in the request to paginate results. For more, see the [Pagination](https://docs.akoya.com/reference/offset-limit-pagination) guide.

        If the product in your query is `account_info`, you must include a secondary product. For instance:

        `/manage/{version}/recipients/{recipientId}/providers?products=account_info&products=balances`
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/providersByProduct'
              example:
                metadata:
                  page:
                    offset: 0
                    limit: 50
                    totalPages: 1
                    totalElements: 1
                providers:
                  - id: mikomo
                    displayName: Mikomo Bank
          headers:
            X-Akoya-Interaction-Id:
              description: 'Note that [RFC7230] states header names are case insensitive.'
              schema:
                type: string
        '400':
          description: InvalidArgument
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
              example:
                code: InvalidArgument
                message: Invalid request. The recipientId is incorrect or the product has not been requested or purchased.
      operationId: get-providers-by-product
      parameters:
        - $ref: '#/components/parameters/productsQuery'
        - $ref: '#/components/parameters/registerQuery'
        - $ref: '#/components/parameters/offset'
        - $ref: '#/components/parameters/limit'
      tags:
        - Products
      x-stoplight:
        id: 7p5mgecnk6rqm
  '/manage/{version}/recipients/{recipientId}/apps':
    parameters:
      - $ref: '#/components/parameters/recipientId'
      - $ref: '#/components/parameters/version'
    post:
      summary: Create your app(s)
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/createAppResponse'
              example:
                apps:
                  - appId: drdjaekjqosaze4covduwfxih
                    secret: ppnjyt6d35gf6egimi2ubnlqriw77psdy65g3gi6hf7pnsfquf
                    name: test_4
          headers:
            X-Akoya-Interaction-Id:
              description: 'Note that [RFC7230] states header names are case insensitive.'
              schema:
                type: string
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                x-examples:
                  Example 1:
                    code: InvalidArgument
                    message: Number of apps to be created should be more than 1 and less than 50
                properties:
                  code:
                    type: string
                    example: InvalidArgument
                  message:
                    type: string
                    example: Number of apps to be created should be more than 1 and less than 50
              examples:
                Example 1:
                  value:
                    code: InvalidArgument
                    message: Number of apps to be created should be more than 1 and less than 50
                Example 2:
                  value:
                    code: InvalidArgument
                    message: Invalid input
      operationId: create-apps
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/createAppDetails'
            example:
              id: kdltexbspoa9upeldxz5vz5wx
              owner: recipient
              name: test_app
              redirectUris:
                - 'http://localhost:8888'
              clientUri: 'http://localhost:8888'
              contacts:
                - [email protected]
              logo: 'http://localhost:8888'
              icon: 'http://localhost:8888'
              description: this is a description
      description: |-
        > ✋ **v1 is Deprecated**
        >
        > If you are new to the Management API, please refer to the [v2 docs](https://docs.akoya.com/reference/management-api-v20-guide).
        >
        > If you currently use v1, you should plan a migration to v2. Please see our [migration guide](https://docs.akoya.com/reference/management-api-v2-migration-guide).

        Create up to fifty applications per API request. 

        For each app, provide `name`, `redirectUris`, `clientUri`, `contacts`, `description`, and links to the application `logo`. You may also include a link to your application's `icon`.

        - `name` should be alphanumeric and may include special characters: `#$&'()*+,-./|-é` 
          - `name` may not contain blocked characters: `!%<>?{}[]`
        - `description` should not exceed 120 characters.
        - `logo` URL to a file. We recommend using your full logo. We use this image for your end-user consent page. Required. 
          - Minimum height: 200px
          - Minimum width:  200px
          - Maximum height: 1024px
          - Maximum width:  1024px
          - File types: transparent PNG or JPG
          - Maximum file size: 2 MB
        - `icon` or avatar. URL to a file. We recommend using a sub-mark logo. We use this image as an avatar for your company in the Hub. Optional.
          - Must be square. Height = width.
          - Minimum height: 40px
          - Minimum width:  40px
          - Maximum height: 200px
          - Maximum width:  200px
          - File types: transparent PNG or JPG
          - Maximum file size: 2 MB

        During app creation, you must also make subscription requests. A subscription links your application to the Akoya products your app has purchased and the data providers that have activated your subscription.

        Each app must include at least one subscription that specifices at least one valid Akoya `product`and a `providerId`. In production, the `providerId` must not be `mikomo`.

        > Partial success responses
        > 
        > A successful `200` response may return during bulk app creation if some apps are created successfully while others have generated an error. Please check the response for error messages.

        Example errors in a `200` response:

        ```json
        {
            "apps": [
                {
                    "name": "Example app",
                    "error": {
                        "code": "AlreadyExists",
                        "message": "This app name already exists for this recipientId."
                    }
                }
            ]
        }
        ```
        ```json
        {
            "apps": [
                {
                    "error": {
                        "code": "InternalServerError",
                        "message": "Unable to retrieve required products"
                    }
                }
            ]
        }
        ```
      tags:
        - Apps
      x-stoplight:
        id: 7fmu5c1pf21bc
    get:
      summary: List of your apps
      operationId: get-apps
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  metadata:
                    $ref: '#/components/schemas/metadata'
                    x-stoplight:
                      id: 5ooputhrbar2t
                  apps:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        owner:
                          type: string
                        name:
                          type: string
                        redirectUris:
                          type: array
                          items:
                            type: string
                        clientUri:
                          type: string
                        contacts:
                          type: array
                          items:
                            type: string
                        logo:
                          type: object
                          properties:
                            url:
                              type: string
                        icon:
                          type: object
                          properties:
                            url:
                              type: string
                        description:
                          type: string
          headers:
            X-Akoya-Interaction-Id:
              description: 'Note that [RFC7230] states header names are case insensitive.'
              schema:
                type: string
                x-examples:
                  Example 1:
                    apps:
                      - id: ilvzgcs7x6n32h7vfaec7xc7e
                        owner: paprika_spice_tech
                        name: test_app_new_1673329538
                        redirectUris:
                          - 'http://localhost:8888'
                        clientUri: 'http://localhost:8888'
                        contacts:
                          - [email protected]
                        logo:
                          url: 'https://recipient.dev.ddp.akoya.com/images/logo-akoya-color.svg'
                        icon:
                          url: 'https://www.newicon.com'
                        description: this is description
                      - id: euxqat6babc5p6g6gfk4n3zcv
                        owner: paprika_spice_tech
                        name: test_app_1673554613
                        redirectUris:
                          - 'http://localhost:8888'
                        clientUri: 'http://localhost:8888'
                        contacts:
                          - [email protected]
                        logo:
                          url: 'http://localhost:8888'
                        icon:
                          url: 'http://localhost:8888'
                        description: this is a description
      description: |
        > ✋ **v1 is Deprecated**
        >
        > If you are new to the Management API, please refer to the [v2 docs](https://docs.akoya.com/reference/management-api-v20-guide).
        >
        > If you currently use v1, you should plan a migration to v2. Please see our [migration guide](https://docs.akoya.com/reference/management-api-v2-migration-guide).

        Retrieve a list of your created apps. Response includes an array of all apps and their details. If you have no apps, you'll receive an empty array in the response.

        Include `offset` and `limit` in the request to paginate results. For more, see the [Pagination](https://docs.akoya.com/reference/offset-limit-pagination) guide.

        > Partial success responses
        > 
        > A successful `200` response may return even if apps are not found with your recipientId.

        Example `200` response when no apps are associated with the including recipientId:

        ```json
        {
            "apps": []
        }
        ```
      tags:
        - Apps
      x-stoplight:
        id: d6wg9ems6f5l7
      parameters:
        - $ref: '#/components/parameters/offset'
        - $ref: '#/components/parameters/limit'
  '/manage/{version}/recipients/{recipientId}/apps/{appId}':
    parameters:
      - $ref: '#/components/parameters/recipientId'
      - $ref: '#/components/parameters/version'
      - $ref: '#/components/parameters/appId'
    patch:
      summary: Update your app details
      operationId: update-apps
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/appDetails'
            example:
              redirectUris:
                - 'http://localhost:8888'
              clientUri: 'http://localhost:8888'
              contacts:
                - [email protected]
              logo: 'http://localhost:8888'
              icon: 'http://localhost:8888'
              description: this is a description
        description: ''
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/patchAppDetails'
              example:
                id: kdltexbspoa9upeldxz5vz5wx
                owner: recipient
                name: test_app
                redirectUris:
                  - 'http://localhost:8888'
                clientUri: 'http://localhost:8888'
                contacts:
                  - [email protected]
                logo: 'http://localhost:8888'
                icon: 'http://localhost:8888'
                description: this is a description
          headers:
            X-Akoya-Interaction-Id:
              description: 'Note that [RFC7230] states header names are case insensitive.'
              schema:
                type: string
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                x-examples:
                  Example 1:
                    code: InvalidArgument
                    message: The appId is invalid or does not exist
                properties:
                  code:
                    type: string
                    example: InvalidArgument
                  message:
                    type: string
                    example: The appId is invalid or does not exist
      parameters: []
      description: "> ✋ **v1 is Deprecated**\r\n>\r\n> If you are new to the Management API, please refer to the [v2 docs](https://docs.akoya.com/reference/management-api-v20-guide).\r\n>\r\n> If you currently use v1, you should plan a migration to v2. Please see our [migration guide](https://docs.akoya.com/reference/management-api-v2-migration-guide).\r\n\r\nUpdate your application details. You must include at least one application detail to update in the body of the request such as `redirectUris`, `clientUri`, `contacts`, `description`, `logo`, and `icon`."
      tags:
        - Apps
      x-stoplight:
        id: 9ktl22tcarcfm
  '/manage/{version}/subscriptions/{appId}':
    parameters:
      - $ref: '#/components/parameters/appId'
      - $ref: '#/components/parameters/version'
    get:
      summary: App subscription details
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/appSubscriptionRequests'
              example:
                metadata:
                  page:
                    offset: 0
                    limit: 50
                    totalPages: 1
                    totalElements: 2
                products:
                  - name: balances
                    displayName: Balances
                    description: Account balances and info
                subscriptions:
                  - providerId: greatmikomo
                    displayName: Great Bank
                    accountCategories:
                      - loanAccount
                      - investmentAccount
                      - depositAccount
                      - locAccount
                  - providerId: mikomo
                    displayName: Mikomo Bank
                    accountCategories:
                      - annuityAccount
                      - insuranceAccount
                      - depositAccount
                      - investmentAccount
                      - loanAccount
                      - locAccount
          headers:
            X-Akoya-Interaction-Id:
              description: 'Note that [RFC7230] states header names are case insensitive.'
              schema:
                type: string
      operationId: get-subscriptions-appId
      description: |
        > ✋ **v1 is Deprecated**
        >
        > If you are new to the Management API, please refer to the [v2 docs](https://docs.akoya.com/reference/management-api-v20-guide).
        >
        > If you currently use v1, you should plan a migration to v2. Please see our [migration guide](https://docs.akoya.com/reference/management-api-v2-migration-guide).

        Returns details for a specified app's subscription. 
        A subscription enables an app to receive data from a provider for specified account types and Akoya products.
        Each app may have more than one subscription status.

        _When you request an updated subscription that has yet to be approved, it may show more than one status_

        **ACTIVE** - The subscription is live with the indicated details.

        **PENDING** - The subscription is pending enablement with the indicated details. If you request a subscription update after having an ACTIVE subscription, it may have ACTIVE and PENDING statuses. On enablement, the PENDING subscription will override the previous ACTIVE subscription.

        Include `offset` and `limit` in the request to paginate results. For more, see the [Pagination](https://docs.akoya.com/reference/offset-limit-pagination) guide.
      tags:
        - Subscriptions
      x-stoplight:
        id: c6deaa1nog5lr
      parameters:
        - $ref: '#/components/parameters/offset'
        - $ref: '#/components/parameters/limit'
    put:
      summary: Create or add subscriptions
      operationId: put-subscriptions
      tags:
        - Subscriptions
      description: "> ✋ **v1 is Deprecated**\r\n>\r\n> If you are new to the Management API, please refer to the [v2 docs](https://docs.akoya.com/reference/management-api-v20-guide).\r\n>\r\n> If you currently use v1, you should plan a migration to v2. Please see our [migration guide](https://docs.akoya.com/reference/management-api-v2-migration-guide).\r\n\r\nCreate or add a subscription to an existing app by providing an array of providerIds to subscribe to in the body of the request."
      requestBody:
        content:
          application/json:
            schema:
              type: object
              x-examples:
                Example 1:
                  subscriptions:
                    - test_provider_1666878989
                    - best-bank-19
              properties:
                subscriptions:
                  type: array
                  description: An array of providerIds your app will be subscribed to.
                  items:
                    type: string
                    example: mikomo
              required:
                - subscriptions
            examples:
              Example 1:
                value:
                  subscriptions:
                    - test_provider_1666878989
                    - best-bank-19
        description: ''
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                x-examples:
                  Example 1:
                    subscriptions:
                      - providerId: best-bank-19
                        error:
                          code: InvalidArgument
                          message: Invalid request
                      - providerId: test_provider_1666878989
                        status: PENDING
                properties:
                  subscriptions:
                    type: array
                    items:
                      type: object
                      properties:
                        providerId:
                          type: string
                        error:
                          type: object
                          description: 'If there is an error for the individual subscription, it will be included in the response.'
                          properties:
                            code:
                              type: string
                            message:
                              type: string
                        status:
                          type: string
              examples:
                Example 1:
                  value:
                    subscriptions:
                      - providerId: best-bank-19
                        error:
                          code: InvalidArgument
                          message: Invalid request
                      - providerId: test_provider_1666878989
                        status: PENDING
          headers:
            X-Akoya-Interaction-Id:
              description: 'Note that [RFC7230] states header names are case insensitive.'
              schema:
                type: string
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                x-examples:
                  Example 1:
                    code: InvalidArgument
                    message: ProviderId invalid
                properties:
                  code:
                    type: string
                    example: InvalidArgument
                  message:
                    type: string
                    example: ProviderId invalid
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                x-examples:
                  Example 1:
                    code: UnauthorizedAccess
                    message: Unauthorized
                properties:
                  code:
                    type: string
                    example: UnauthorizedAccess
                  message:
                    type: string
                    example: Unauthorized
      x-stoplight:
        id: vo6i7fmfxs9vf
  '/manage/{version}/subscriptions/{appId}/status':
    parameters:
      - $ref: '#/components/parameters/appId'
      - $ref: '#/components/parameters/version'
    get:
      tags:
        - Subscriptions
      summary: Subscription status by app
      operationId: get-subscriptions-status
      description: |
        > ✋ **v1 is Deprecated**
        >
        > If you are new to the Management API, please refer to the [v2 docs](https://docs.akoya.com/reference/management-api-v20-guide).
        >
        > If you currently use v1, you should plan a migration to v2. Please see our [migration guide](https://docs.akoya.com/reference/management-api-v2-migration-guide).

        To list your application's subscription status for each provider, include the status type as a query parameter. Example types: ACTIVE, PENDING, PENDING_REGISTRATION.

        Include `offset` and `limit` in the request to paginate results. For more, see the [Pagination](https://docs.akoya.com/reference/offset-limit-pagination) guide.
      parameters:
        - $ref: '#/components/parameters/statusQuery'
        - $ref: '#/components/parameters/offset'
        - $ref: '#/components/parameters/limit'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/appSubscriptionStatus'
          headers:
            X-Akoya-Interaction-Id:
              description: 'Note that [RFC7230] states header names are case insensitive.'
              schema:
                type: string
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                x-examples:
                  Example 1:
                    code: InvalidArgument
                    message: Invalid input
                properties:
                  code:
                    type: string
                    example: InvalidArgument
                  message:
                    type: string
                    example: Invalid input
      x-stoplight:
        id: u78l8pw5lzb7g
components:
  schemas:
    subscribedProducts:
      type: object
      properties:
        products:
          description: Subscribed Akoya products
          type: array
          items:
            type: object
            properties:
              name:
                type: string
                description: Name of the subscribed Akoya product.
                enum:
                  - account_info
                  - balances
                  - payments
                  - investments
                  - transactions
                  - customers
                  - statements
              description:
                type: string
                description: Description of the Akoya product.
              required:
                type: boolean
                description: Whether or not this Akoya product is required. This usually indicates if an Akoya product is included with all subscriptions.
      x-stoplight:
        id: io4n6f8j2r9i3
    error:
      title: Error Entity
      description: An error entity which can be used at the API level for error responses or at the account level to indicate a problem specific to a particular account.
      type: object
      properties:
        code:
          type: string
          description: Long term persistent identifier which can be used to trace error condition back to log information
        message:
          type: string
          description: End user displayable information which might help the customer diagnose an error
      x-stoplight:
        id: 4d0vazu3lobv7
    appDetails:
      title: Application details
      description: the object
      type: object
      properties:
        redirectUris:
          type: array
          items:
            type: string
        clientUri:
          type: string
        contacts:
          type: array
          items:
            type: string
        description:
          type: string
        logo:
          type: string
        icon:
          type: string
      x-stoplight:
        id: cyfoxaxeydeyu
    createAppDetails:
      type: object
      x-stoplight:
        id: q8zpvdoqdhxbq
      properties:
        apps:
          type: array
          items:
            allOf:
              - $ref: '#/components/schemas/appDetails'
              - properties:
                  name:
                    type: string
                  subscriptions:
                    type: array
                    items:
                      type: string
                      example: mikomo
                  products:
                    type: array
                    items:
                      type: string
                      enum:
                        - account_info
                        - balances
                        - customers
                        - investments
                        - payments
                        - statements
                        - transactions
            type: object
    createAppResponse:
      type: object
      x-stoplight:
        id: p7hooebx1i24x
      properties:
        apps:
          anyOf:
            - items:
                type: object
                properties:
                  appId:
                    type: string
                  secret:
                    type: string
                  name:
                    type: string
                  error:
                    type: object
                    x-stoplight:
                      id: put3e7ogtj54b
                    description: Errors related to a specific app may return.
                    properties:
                      code:
                        type: string
                        x-stoplight:
                          id: elutwdqy03qwu
                      message:
                        type: string
                        x-stoplight:
                          id: 85bh9fenu9vii
                required:
                  - name
            - x-stoplight:
                id: opwg87s97q8go
              items:
                x-stoplight:
                  id: oylv3u6i4cbm1
                type: object
                properties:
                  error:
                    type: object
                    x-stoplight:
                      id: avsgdkf2hb5cc
                    properties:
                      code:
                        type: string
                        x-stoplight:
                          id: ogppjdhi1d9wx
                      message:
                        type: string
                        x-stoplight:
                          id: jdjr77th9v9m2
          type: array
    providersByProduct:
      type: object
      x-stoplight:
        id: c149ugwnili3u
      properties:
        metadata:
          $ref: '#/components/schemas/metadata'
          x-stoplight:
            id: vg1pf6bonzf0k
        providers:
          type: array
          title: Providers by Akoya product
          items:
            type: object
            properties:
              id:
                type: string
              displayName:
                type: string
    patchAppDetails:
      type: object
      allOf:
        - type: object
          properties:
            id:
              type: string
            owner:
              type: string
            name:
              type: string
        - $ref: '#/components/schemas/appDetails'
      x-stoplight:
        id: hns9h1kda4lzu
    appSubscriptionStatus:
      type: object
      x-stoplight:
        id: k2g53wlnnc5kc
      properties:
        metadata:
          $ref: '#/components/schemas/metadata'
          x-stoplight:
            id: aj2tx1g7ej6xm
        subscriptionStatus:
          type: array
          title: Provider status
          items:
            type: object
            properties:
              providerId:
                type: string
                x-stoplight:
                  id: n8cmrol39trk1
              displayName:
                type: string
              status:
                type: string
    appSubscriptionRequests:
      type: object
      x-stoplight:
        id: l5qma0zvn8mkp
      examples:
        - products:
            - name: account_info
              displayName: Account Info
              description: 'Account display name, masked account number, type, description.'
            - name: payments
              displayName: Payments
              description: Identifiers necessary to make ACH and RTP payments.
            - name: statements
              displayName: Statements
              description: 'Up to two years of statement data across account types, supports statement status, description, identifiers, and image of statement.'
          subscriptions:
            - providerId: aBank301
              displayName: A Bank
              accountTypeCategories: null
              icon:
                url: 'http://akoya.com/leeroyjenkins.jpg'
            - providerId: mikomo
              displayName: Mikomo Bank
              accountTypeCategories:
                - investmentAccount
                - locAccount
                - depositAccount
              logo:
                url: 'https://i.ibb.co/wW4XcTq/svgviewer-png-output.png'
              icon:
                url: 'https://go.dev/src/image/png/testdata/benchGray.png'
      properties:
        metadata:
          $ref: '#/components/schemas/metadata'
          x-stoplight:
            id: sb3cvqfnvzf7u
        products:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
              description:
                type: string
              displayName:
                type: string
                x-stoplight:
                  id: dzoy7clgd899j
        subscriptions:
          type: array
          items:
            type: object
            properties:
              providerId:
                type: string
              displayName:
                type: string
              accountCategories:
                type: array
                items:
                  type: string
                  example: depositAccount
              icon:
                type: object
                x-stoplight:
                  id: 22e6p60padlhq
                properties:
                  url:
                    type: string
                    x-stoplight:
                      id: qyln2mukzgyhs
              logo:
                type: object
                x-stoplight:
                  id: qca79da0zu3fp
                properties:
                  '':
                    type: string
                    x-stoplight:
                      id: 38lqry891ge4m
    metadata:
      title: metadata
      x-stoplight:
        id: oue0xwraqnojf
      type: object
      properties:
        page:
          type: object
          properties:
            offset:
              type: number
              x-stoplight:
                id: rmr8ed7nr97fq
              default: 0
            limit:
              type: number
              x-stoplight:
                id: 390lw6p805oyf
              default: 50
            totalPages:
              type: number
              x-stoplight:
                id: vzdyn7f1hxg9u
            totalElements:
              type: number
              x-stoplight:
                id: tvz205o4owg2v
      examples:
        - page:
            offset: 0
            limit: 50
            totalPages: 0
            totalElements: 0
  responses:
    '400':
      description: Bad Request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
          example:
            code: InvalidArgument
            message: Invalid input
  parameters:
    recipientId:
      name: recipientId
      in: path
      required: true
      schema:
        type: string
        default: ':recipientId'
      description: Your recipient id. You may find your recipientId in the Data Recipient Hub under Team Management/Company Id.
    appId:
      name: appId
      in: path
      required: true
      schema:
        type: string
        default: ':appId'
      description: The id of your application
    productsQuery:
      schema:
        type: string
        enum:
          - account_info
          - balances
          - payments
          - investments
          - transactions
          - customers
          - statements
      in: query
      name: products
      description: Akoya product
      required: true
    registerQuery:
      schema:
        type: string
        enum:
          - ANY
          - ALL
      in: query
      name: register
      description: Subscribe to providers that have ALL of the Akoya products or ANY (some) of the requested Akoya products.
    statusQuery:
      name: status
      in: query
      required: true
      schema:
        type: string
        default: ACTIVE
        enum:
          - ACTIVE
          - DENIED
          - PENDING
          - PENDING_REGISTRATION
          - TERMINATED
      description: Status
    version:
      name: version
      in: path
      schema:
        type: string
        example: v1
        default: v1
      required: true
      description: Akoya version
    offset:
      name: offset
      in: query
      required: false
      schema:
        type: string
      description: Number of skipped items (default = 0)
    limit:
      name: limit
      in: query
      schema:
        type: string
      description: 'Number of items per page (default = 50, must be <=500)'
  securitySchemes:
    bearerAuth:
      description: Your service token should be used in the header of this call.
      type: http
      scheme: bearer
      bearerFormat: JWT
x-internal: true

Change log

DateUpdate
2024-Sept-09Original

Need help?

Check out our Developer Community, or visit the Support Center in the Data Recipient Hub.

Looking for provider nuance documentation?

All provider nuance documentation is available in the Data providers section in the Data Recipient Hub.

Still stuck?

For all production issues, submit a support ticket through the Data Recipient Hub. Our support team is standing by 24/7. Questions and non-production issues will be answered during business hours.