Plaid logo
Core Exchange
ALL DOCS

Post-launch

  • Post-launch operations
  • Dashboard monitoring
  • Consent management
  • Permissions & App Directory
  • Troubleshooting
Core Exchange
Close search modal
Ask Bill!
Ask Bill!
Hi! I'm Bill! You can ask me all about Core Exchange. Try asking questions like:
    Note: Bill isn't perfect. He's just a robot platypus that reads our docs for fun. You should treat his answers with the same healthy skepticism you might treat any other answer on the internet. This chat may be logged for quality and training purposes. Please don't send Bill any PII -- he's scared of intimacy. All chats with Bill are subject to Plaid's Privacy Policy.
    Plaid.comGet Started
    Open nav

    App Directory API

    Programmatic access to connected application metadata

    Overview

    App Directory gives you visibility into which Plaid-powered applications your customers have connected to, without implementing Dynamic Client Registration. Plaid manages application onboarding and risk review; you get read access to the resulting metadata for your own risk and compliance needs.

    Single-institution accounts can also get this data with no code, in the Data Partner Dashboard. This page covers the API, which is available to every integration model, including platforms.

    App Directory is available in Production only after you've completed your Core Exchange integration. To test before then, use Sandbox.

    Authentication

    Get access to the Data Partner Dashboard and complete your Core Exchange integration, then find your client_id and secret on the Developer > Keys tab. Include both in the headers of every request as PLAID-CLIENT-ID and PLAID-SECRET.

    Endpoints

    EndpointFunctionality
    GET /fdx/recipientsList all applications your customers have connected to
    GET /fdx/recipient/{recipientId}Get details for a single application

    Get a list of applications with /fdx/recipients

    We recommend rerunning this report daily to keep your records current.

    Get Recipients

    Returns a list of Recipients

    /fdx/recipients

    Request fields

    This endpoint or method takes an empty request body.
    curl -X GET 'https://production.plaid.com/fdx/recipients' \
      -H 'PLAID-CLIENT-ID: <client_id>' \
      -H 'PLAID-SECRET: <secret>'
    /fdx/recipients

    Response fields

    recipients
    [object][object]
    recipient_id
    stringstring

    The recipient identifier

    Max length: 256
    client_name
    stringstring

    The recipient name displayed by the Data Provider during the consent flow

    Max length: 256
    logo_uri
    nullablestringnullable, string

    Data Recipient Logo URL location

    third_party_legal_name
    stringstring

    The legal name of the recipient

    Max length: 256
    category
    stringstring

    The category that the recipient falls under

    joined_date
    stringstring

    The date at which the recipient gained production access to Plaid

    Format: date
    connection_count
    integerinteger

    The number of consumers connected to the recipient through this Data Partner

    Response Object
    {
      "recipients": [
        {
          "recipient_id": "98c8990b-72a9-4dc2-a4c5-f45b9b269178",
          "client_name": "My Example Client",
          "logo_uri": "https://client-logos.plaid.com/logo.png",
          "joined_date": "2021-08-31",
          "category": "Robo advisors",
          "connection_count": 128,
          "third_party_legal_name": "My Example Client LLC"
        },
        {
          "recipient_id": "1a6ad795-2b9a-4a9f-8615-e771816c92db",
          "client_name": "Another Example Client",
          "logo_uri": "https://client-logos.plaid.com/logo2.png",
          "joined_date": "2027-04-15",
          "category": "eCommerce",
          "connection_count": 209,
          "third_party_legal_name": "Another Example Client LLC"
        }
      ]
    }

    Get a single application with /fdx/recipient/{recipientId}

    recipient_id must be a UUID returned by /fdx/recipients — other values return an error. If this lookup happens during an active OAuth flow, you can optionally pass the OAuth state value as an OAUTH-STATE-ID header, which helps Plaid correlate the request if you need to troubleshoot it later.

    Get Recipient

    Get a specific recipient

    /fdx/recipient/{recipientId}

    Request fields

    recipientId
    stringstring

    Recipient Identifier. Uniquely identifies the recipient

    Parameter type: path
    OAUTH-STATE-ID
    stringstring

    The value that is passed into the OAuth URI 'state' query parameter.

    Parameter type: header
    curl -X GET 'https://production.plaid.com/fdx/recipient/<recipient_id>' \
      -H 'PLAID-CLIENT-ID: <client_id>' \
      -H 'PLAID-SECRET: <secret>' \
      -H 'OAUTH-STATE-ID: <oauth_state>'
    /fdx/recipient/{recipientId}

    Response fields

    recipient_id
    stringstring

    The recipient identifier

    Max length: 256
    client_name
    stringstring

    The recipient name displayed by the Data Provider during the consent flow

    Max length: 256
    logo_uri
    nullablestringnullable, string

    Data Recipient Logo URL location

    third_party_legal_name
    stringstring

    The legal name of the recipient

    Max length: 256
    Response Object
    {
      "recipient_id": "7bf0b839-861e-444e-b103-9007610ffbaf",
      "client_name": "My Example Client",
      "logo_uri": "https://client-logos.plaid.com/logo.png",
      "third_party_legal_name": "My Example Client LLC"
    }

    Testing

    The App Directory API is supported in the Sandbox environment. To test, make calls against sandbox.plaid.com instead of production.plaid.com. Unlike Production, Sandbox data is static, so new records will not be created and existing records will not change.

    Errors

    Both endpoints return errors in Plaid's standard error object format (error_type, error_code, error_message, display_message, request_id). Log request_id when you encounter an error to speed up troubleshooting with Plaid.