H1

H1 Providers API

The Providers API from H1 — 10 operation(s) for providers.

OpenAPI Specification

h1-providers-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Ribbon Health Providers API
  version: 1.0.0
  description: 'An API for interacting with the data provided by Ribbon Health, including information about healthcare providers, locations, insurances, and more.

    '
servers:
- url: https://api.ribbonhealth.com/v1
security:
- BearerAuth: []
tags:
- name: Providers
paths:
  /custom/providers:
    get:
      summary: Search Providers
      description: 'Allows you to quickly list doctors based on important search criteria.

        '
      operationId: getCustomProviders
      tags:
      - Providers
      parameters:
      - name: Pagination and Search Configuration Options
        in: query
        required: false
        description: Options to control what data gets returned to you.
        explode: true
        schema:
          type: object
          properties:
            page:
              type: integer
              example: 1
              description: The page of the results which was returned.
            page_size:
              type: integer
              example: 25
              description: "How many results are in each page. \n\nNote that page_size is generally capped to 200 given the strict `max_locations * page_size <= 1000` requirement.\n"
            max_locations:
              type: integer
              example: 5
              description: 'The maximum number of locations that will be attached to any given provider. Note that there is a strict `max_locations * page_size <= 1000` requirement.


                Defaults to 5.

                '
            fields:
              type: string
              example: locations,age
              description: 'Comma separated list of fields within the provider object to return. Can be used to greatly reduce the size of the response by requesting only data you intend to use.


                Cannot be used in tandem with `_excl_fields`.

                '
            _excl_fields:
              type: string
              example: locations,age
              description: Comma separated list of fields within the provider object to exclude from the response. Can be used to greatly reduce the size of the response by requesting only data you intend to use.
      - name: Provider Search Criteria
        in: query
        required: false
        description: Search criteria based on aspects of the providers themselves.
        explode: true
        schema:
          type: object
          properties:
            npis:
              type: string
              description: 'Comma separated list of desired NPIs (i.e. use this to search for 5 specific doctors).


                A maximum of `100` NPIs can be passed in per request.


                Note: This parameter cannot be used in combination with most other parameters. You may combine this parameter with `fields` or `_excl_fields`. You may use geographic search parameters `location` or `address`, which will be used to populate the `distance` on the returned providers but will **not** be used to filter them. All other parameters will be ignored.

                '
              example: 1234567890
            name:
              type: string
              description: String input of a full, first, last, or partial name.
              example: Doe
            provider_types:
              type: string
              description: 'A comma-separated list of ''types'' of providers you are searching for. Provider types are higher level groupings of specialties. Here are a few key provider types:

                - Doctor

                - Nursing

                - Dental Providers

                - Optometry

                - Chiropractic Providers


                See the Specialties Reference Endpoint for a list of all specialties and their provider types.

                '
              example: Optometry
            _excl_provider_types:
              type: string
              description: 'A comma-separated list of ''types'' of providers to exclude. Excludes providers with a matching provider type.

                '
              example: Optometry
            gender:
              type: string
              enum:
              - m
              - f
              description: String input of either m or f to filter to only medical providers of the inputted gender.
              example: m
            max_age:
              type: integer
              description: Integer input (i.e. 50) to filter to only medical providers under the inputted age.
              example: 70
            min_age:
              type: integer
              description: Integer input (i.e. 50) to filter to only medical providers above the inputted age.
              example: 45
            language:
              type: string
              description: Fuzzy search based on a string input (i.e. English) to filter to only medical providers providers who speak / whose office staff speak the inputted language.
              example: English
            _excl_language:
              type: string
              description: Fuzzy search based on a string input (i.e. English) to exclude medical providers providers who speak / whose office staff speak the inputted language.
              example: English
            min_rating:
              type: integer
              minimum: 0
              maximum: 10
              description: Integer input (from 0 to 10) to filter to only providers above the inputted value for the ratings_avg field.
              example: 6
      - name: Location Search Criteria
        in: query
        required: false
        description: Criteria used to search for providers based on the locations at which they practice.
        explode: true
        schema:
          type: object
          properties:
            address:
              type: string
              description: String input of an address that will be interpreted and geocoded in real time.
              example: New York, NY
            location_ids:
              type: string
              description: Comma separated list of desired practice location uuids. See all providers who see patients at any of the given practice locations.
              example: 34ecc98a-e49e-49e3-84f9-b0ab2ff00495
            _excl_location_ids:
              type: string
              description: Comma separated list of practice location uuids to exclude. Excludes providers who see patients at any of the given practice locations.
              example: 34ecc98a-e49e-49e3-84f9-b0ab2ff00495
            location:
              type: string
              description: Latitude/longitude pair of coordinates in lieu of a string address.
              example: 37.7489816,-122.4802092
            min_location_confidence:
              type: integer
              minimum: 0
              maximum: 5
              description: 'Integer input (0-5) of the minimum confidence threshold for returned provider locations. min_location_confidence=3 will only display providers'' locations that have a confidence 3 or higher. If a provider has a 5 locations, one of which is greater than 3, only the high confidence location will be included in the returned JSON output.


                Note: when this parameter is in use, the maximum number of records accessible is 1000 (i.e. if you maintain the default page_size of 25, the last page that can be paginated to is 40)

                '
              example: 3
            min_confidence:
              type: integer
              minimum: 0
              maximum: 5
              description: Integer input (0-5) of the minimum confidence location you wish the returned providers to have (i.e. min_confidence=4 will only display providers who have a location with confidence 4 or higher). This is a more performant but 'simpler' version of `min_location_confidence` parameter.
              example: 3
            distance:
              type: integer
              example: 10
              description: "The proximity radius of providers returned.\n\n Note: When using `min_location_confidence` and `location_insurance_ids` parameters, limit `distance` to be less than 50 miles to ensure high quality results.\n"
            state:
              type: string
              example: NY
              description: Two-letter state abbreviation of provider locations to filter to. Note that this parameter will override `address` and `location` parameters if used together.
      - name: Insurance Search Criteria
        in: query
        required: false
        description: Criteria used to search for providers based on the insurances they accept.
        explode: true
        schema:
          type: object
          properties:
            insurance_ids:
              type: string
              description: Please use the location_insurance_ids parameter instead. These parameters have the same behavior and filter for insurance objects at the provider.location level.
              example: e527f6e3-fe42-4932-bf34-d81f1c1fd652
            _excl_insurance_ids:
              type: string
              description: Comma separated list of insurance uuids to exclude. Exclude providers who accept a given insurance(s).
              example: e527f6e3-fe42-4932-bf34-d81f1c1fd652
            insurance_carrier_name:
              type: string
              description: 'String input of carrier_name in order to search for all providers that take at least one plan from a given insurance carrier.


                Find the individual valid carrier_name values from the insurance objects returned in the Insurances Reference Endpoint.


                Note: This input must be an exact string match to work

                '
              example: Aetna
            location_insurance_ids:
              type: string
              description: 'Comma separated list of desired insurance uuids. See all provider locations that accept a given insurance(s).


                Note, this parameter cannot be combined with `insurance_ids` to filter on provider insurances and provider location insurances.

                '
              example: 34ecc98a-e49e-49e3-84f9-b0ab2ff00495
            _excl_location_insurance_ids:
              type: string
              description: Comma separated list of insurance uuids to exclude. Excludes provider locations that accept a given insurance(s).
              example: 34ecc98a-e49e-49e3-84f9-b0ab2ff00495
            national_bluecard:
              type: boolean
              example: true
              description: Boolean input that enables an API search to automatically default to the National BlueCard EPO/PPO Network whenever a member searches for out-of-state, in-network care and is covered by a BCBS Association PPO insurance plan. Use the parameter in conjunction with the address parameter and either the insurance_ids or insurance fuzzy search parameters. Defaults to true unless otherwise specified.
      - name: Specialty Search Criteria
        in: query
        required: false
        description: Criteria used to search for providers based on their specialties.
        explode: true
        schema:
          type: object
          properties:
            specialty_ids:
              type: string
              description: 'Comma separated list of desired specialty uuids. See all providers who specialize in the given specialties.


                Cannot be used in tandem with `specialty_ids_primary`, `specialty`, or `specialty_primary`.

                '
              example: 1de33770-eb1c-47fa-ab3e-f9a4ab924d9d
            _excl_specialty_ids:
              type: string
              description: Comma separated list of specialties uuids to exclude. Exclude providers who specialize in the given specialties.
              example: 1de33770-eb1c-47fa-ab3e-f9a4ab924d9d
            specialty:
              type: string
              description: 'String input of a provider specialty that will be interpreted and matched to the single closest specialty, dealing with basic typos and colloquial names for providers. For example, to find Gastroenterologists you could search any of the following

                - gastroenterology

                - gastroenterologist

                - gastro

                - stomach doc

                - gastrooentrology


                This parameter can make use of our specialty grouping logic. To learn more about this logic and/or to opt out, please use the `apply_specialty_grouping` parameter.


                Cannot be used in tandem with `specialty_primary`, `specialty_ids`, or `specialty_ids_primary`.

                '
              example: gastroenterology
            specialty_ids_primary:
              type: string
              description: 'Comma separated list of specialty uuids. See all providers whose primary specialties are in the given specialties.


                Cannot be used in tandem with `specialty_ids`, `specialty`, or `specialty_primary`.

                '
              example: 1de33770-eb1c-47fa-ab3e-f9a4ab924d9d
            _excl_specialty_ids_primary:
              type: string
              description: Comma separated list of specialties uuids to exclude. Exclude providers whose primary specialties are in the given specialties.
              example: 1de33770-eb1c-47fa-ab3e-f9a4ab924d9d
            specialty_primary:
              type: string
              description: 'String input of a provider specialty that will be interpreted and matched to the single closest specialty, similar to the `specialty` parameter. See all providers whose primary specialty is the given specialty.


                Cannot be used in tandem with `specialty`, `specialty_ids` or `specialty_ids_primary`.

                '
              example: gastroenterology
            apply_specialty_grouping:
              type: boolean
              description: 'Boolean input that enables an API search to automatically default to apply the inclusions and exclusions logic for grouping relevant specialties when using the `specialty` or `specialty_primary` parameter. Defaults to `true`.

                For details, please read [our guide on searching by specialties](https://ribbon.readme.io/docs/search-for-specialties).

                '
              example: false
      - name: Procedure Search Criteria
        in: query
        required: false
        description: Criteria used to search for providers based on procedures they perform.
        explode: true
        schema:
          type: object
          properties:
            procedure_ids:
              type: string
              description: Comma separated list of desired procedure uuids. Filter to only providers who perform the given procedure.
              example: 9f3fd9e8-96b0-4cc7-ab2c-8d538e9164ae
            _excl_procedure_ids:
              type: string
              description: Comma separated list of procedure uuids to exclude. Exclude providers who perform the given procedure.
              example: 9f3fd9e8-96b0-4cc7-ab2c-8d538e9164ae
            procedure:
              type: string
              description: String input that is fuzzy matched to the most relevant procedure `display` field. Only a single procedure will be selected. Filter to only providers who perform the given procedure.
              example: MRI, thoracic spine
            min_experience_index:
              type: float
              description: 'Float input of the minimum experience index for procedures. min_experience_index=4 will only return providers that have an experience index of 4 or higher for at least one of the given procedure uuids.


                Note: This parameter must be used with `procedure_ids`.

                '
              example: 4
            max_cost_index:
              type: float
              description: 'Float input of the maximum cost index for procedures. max_cost_index=4 will only return providers that have a cost index of 4 or less for at least one of the given procedure uuids.


                Note: This parameter must be used with `procedure_ids`.

                '
              example: 4
      - name: Focus Area Search Criteria
        in: query
        required: false
        description: Criteria used to search for providers based on their Focus Areas.
        explode: true
        schema:
          type: object
          properties:
            clinical_area:
              type: string
              description: 'String input that is fuzzy matched to the most relevant `clinical_area.display` field. Only a single clinical area will be selected.


                Returns all providers with this clinical area.

                '
              example: Mental Health
            clinical_area_ids:
              type: string
              description: 'Comma-separated list of desired clinical area ids.


                Returns all providers with a clinical area exactly matching any of the entered IDs.


                (Note: Use the `/clinical_areas/` reference endpoint to identify relevant IDs)

                '
              example: a7da792c-fae3-4b46-bab7-220e0c54e376
            _excl_clinical_area_ids:
              type: string
              description: 'Comma-separated list of clinical area ids to exclude.


                Returns all providers without a clinical area exactly matching any of the entered IDs.


                (Note: Use the `/clinical_areas/` reference endpoint to identify relevant IDs)

                '
              example: a7da792c-fae3-4b46-bab7-220e0c54e376
            condition:
              type: string
              description: 'String input that is fuzzy matched to the most relevant `condition.display` field. Only a single condition will be selected.


                Returns all providers with this condition.

                '
              example: depression
            condition_ids:
              type: string
              description: 'Comma-separated list of desired condition ids.

                Returns all providers with a `conditions.uuid` field exactly matching any of the entered IDs.


                (Note: Use the `/conditions/` reference endpoint  to identify relevant IDs)

                '
              example: fd7c10f3-fbec-482a-929b-be94a8bb3bc1
            _excl_condition_ids:
              type: string
              description: 'Comma-separated list of condition ids to exclude.

                Returns all providers without a `conditions.uuid` field exactly matching any of the entered IDs.


                (Note: Use the `/conditions/` reference endpoint  to identify relevant IDs)

                '
              example: fd7c10f3-fbec-482a-929b-be94a8bb3bc1
            treatment:
              type: string
              description: 'String input that is fuzzy matched to the most relevant `treatments.display` field. Only a single treatment will be selected.


                Returns all providers with this treatment.

                '
              example: Psychological Therapy
            treatment_ids:
              type: string
              description: 'Comma-separated list of desired treatment ids.

                Returns all providers with a `treatments.uuid` field exactly matching any of the entered IDs.


                (Note: Use the /treatments/ reference endpoint (docs) to identify relevant IDs)

                '
              example: 11016779-e286-4b17-bd45-2d78660a9f28
            _excl_treatment_ids:
              type: string
              description: 'Comma-separated list of treatment ids to exclude.

                Returns all providers without a `treatments.uuid` field exactly matching any of the entered IDs.


                (Note: Use the /treatments/ reference endpoint (docs) to identify relevant IDs)

                '
              example: 11016779-e286-4b17-bd45-2d78660a9f28
            panel_ages:
              type: string
              description: "Comma-separated list of desired Panel Ages strings. Options are:\n  `Pediatric (0-12)`\n  `Adolescent (13-21)`\n  `Adult (22-44)`\n  `Adult (45-64)`\n  `Senior (65 and over)`\n\nReturns all providers with a `panel_ages` label field exactly matching any of the entered strings.\n"
              example: Pediatric (0-12),Adolescent (13-21)
            _excl_panel_ages:
              type: string
              description: "Comma-separated list of Panel Ages strings to exclude. Options are:\n  `Pediatric (0-12)`\n  `Adolescent (13-21)`\n  `Adult (22-44)`\n  `Adult (45-64)`\n  `Senior (65 and over)`\n\nReturns all providers without a `panel_ages` label field exactly matching any of the entered strings.\n"
              example: Pediatric (0-12),Adolescent (13-21)
            panel_sexes:
              type: string
              description: "Desired Panel Sexes string. Options are:\n\n  `Both female and male`\n  `Primarily female`\n  `Primarily male`\n\nReturns all providers with a panel sexes label field exactly matching the entered string.\n"
              example: Primarily female
      - name: Cost and Quality Criteria
        in: query
        required: false
        description: Criteria used to search for providers based on Cost and Quality scores.
        explode: true
        schema:
          type: object
          properties:
            min_outcomes_index:
              type: integer
              minimum: 1
              maximum: 5
              description: 'Accepts a single integer input between 1 and 5.


                Returns providers with an aggregate Outcomes Quality score (field: `performance.aggregate.quality.outcomes_index`) greater than or equal to the entered parameter.

                '
            min_efficiency_index:
              type: integer
              minimum: 1
              maximum: 5
              description: 'Accepts a single integer input between 1 and 5.


                Returns providers with an aggregate Cost Efficiency score (field: `performance.aggregate.cost.efficiency_index`) greater than or equal to the entered parameter.

                '
            max_unit_cost_index:
              type: integer
              minimum: 1
              maximum: 10
              description: 'Accepts a single integer input between 1 and 10.


                Returns providers with an aggregate Unit Cost Index score (field: `performance.aggregate.cost.unit_cost_index`) less than or equal to the entered parameter.

                '
            max_ribbon_cost_score:
              type: integer
              minimum: 1
              maximum: 10
              description: 'Accepts a single integer input between 1 and 10.


                Returns providers with an aggregate Ribbon Cost Score (field: `performance.aggregate.cost.ribbon_cost_score`) less than or equal to the entered parameter.


                Note: this search parameter is only available to customers that have purchased our Cost and Quality data.

                '
      - name: Organization Search Criteria
        in: query
        required: false
        description: Criteria used to search for providers based on the organizations they belong to.
        explode: true
        schema:
          type: object
          properties:
            location_organization_ids:
              type: string
              description: 'Comma separated list of desired organization uuids. Filters to only providers who have the given organization uuid(s) listed in the `provider.organizations` field.


                Using this parameter will also filter the `provider.locations` returned in order to only surface `provider.locations` that have the given organization(s) in the `provider.locations.organizations` field.

                '
              example: 497a1ac1-52cc-43a9-b796-844dabde10fc
            _excl_location_organization_ids:
              type: string
              description: Comma separated list of organization uuids to exclude. Excludes providers who have the given organization uuid(s) listed in the `provider.organizations` field.
              example: 497a1ac1-52cc-43a9-b796-844dabde10fc
      - name: TINs Search Criteria
        in: query
        required: false
        description: Criteria used to search for providers based on the TINs they are associated with.
        explode: true
        schema:
          type: object
          properties:
            tin_ids:
              type: string
              description: 'Comma separated list of desired TINs. Filters to only providers who have the given TINs listed in the `provider.location` field.

                Note: This parameter cannot be used in combination with any other TINs related parameters. All other TINs related parameters will be ignored.

                '
            tin_name:
              type: string
              description: String input that is fuzzy matched against the `tins.name` field. Filters to only providers who have the given TINs name listed in the `provider.location` field.
            tin_legal_name:
              type: string
              description: String input that is fuzzy matched against the `tins.legal_name` field. Filters to only providers who have the given TINs legal name listed in the `provider.location` field.
      responses:
        '200':
          description: Returns an ordered list of matching providers
          content:
            application/json:
              schema:
                type: object
                required:
                - parameters
                - data
                properties:
                  parameters:
                    allOf:
                    - type: object
                      properties:
                        total_count:
                          type: integer
                          example: 141
                          description: The total number of results matched, across all pages.
                        sort_by:
                          type: string
                          example: distance
                          description: The main criteria used to sort results in the record set.
                        geo:
                          type: object
                          properties:
                            latitude:
                              type: number
                              example: 40.7351327
                              description: The latitude the search was focused on.
                            longitude:
                              type: number
                              example: -73.9881657
                              description: The longitude the search was focused on.
                    - type: object
                      properties:
                        page:
                          type: integer
                          example: 1
                          description: The page of the results which was returned.
                        page_size:
                          type: integer
                          example: 25
                          description: How many results are in each page.
                        max_locations:
                          type: integer
                          example: 5
                          description: The maximum number of locations attached to any given provider. Defaults to 5 (not shown if unspecified).
                        fields:
                          type: array
                          items:
                            type: string
                            example: locations
                          example:
                          - locations
                          - age
                          description: 'List of fields within the provider object to return. Can be used to greatly reduce the size of the response by requesting only data you intend to use.


                            Cannot be used in tandem with `_excl_fields`

                            '
                        _excl_fields:
                          type: array
                          items:
                            type: string
                            example: locations
                          example:
                          - locations
                          - age
                          description: List of fields within the provider object to exclude from the response. Can be used to greatly reduce the size of the response by requesting only data you intend to use.
                    - type: object
                      properties:
                        npis:
                          type: array
                          items:
                            type: string
                            example: 1234567890
                          description: 'List of desired NPIs (i.e. use this to search for 5 specific doctors).


                            Note: This parameter cannot be used in combination with any other parameters. All other parameters will be ignored.

                            '
                          example:
                          - 1234567890
                        name:
                          type: string
                          description: String input of a full, first, last, or partial name.
                          example: Doe
                        provider_types:
                          type: array
                          items:
                            type: string
                            example: Optometry
                          description: 'The ''types'' of providers you searched for. Provider types are higher level groupings of specialties. Here are a few key provider types:

                            - Doctor

                            - Nursing

                            - Dental Providers

                            - Optometry

                            - Chiropractic Providers


                            See the Specialties Reference Endpoint for a list of all specialties and their provider types.

                            '
                          example:
                          - Optometry
                        gender:
                          type: string
                          enum:
                          - m
                          - f
                          description: String input of either m or f to filter to only medical providers of the inputted gender.
                          example: m
                        max_age:
                          type: integer
                          description: Integer input (i.e. 50) to filter to only medical providers under the inputted age.
                          example: 70
                        min_age:
                          type: integer
                          description: Integer input (i.e. 50) to filter to only medical providers above the inputted age.
                          example: 45
                        language:
                          type: object
                          properties:
                            results:
                              type: array
                              items:
                                type: string
                                example: french
                              description: The languages that matched the given `language` parameter
                            value:
                              type: string
                              example: English
                            description: The given input to the `language` parameter
                        min_rating:
                          type: integer
                          minimum: 0
                          maximum: 10
                          description: Integer input (from 0 to 10) to filter to only providers above the inputted value for the ratings_avg field.
                          example: 6
                    - type: object
                      properties:
                        address:
                          type: string
                          description: String input of an address that will be interpreted and geocoded in real time.
                          example: New York, NY
                        location_ids:
                          type: array
                          items:
                            type: string
                            format: uuid
                            example: 34ecc98a-e49e-49e3-84f9-b0ab2ff00495
                          description: List of desired practice location uuids. See all providers who see patients at any of the given practice locations.
                          example:
                          - 34ecc98a-e49e-49e3-84f9-

# --- truncated at 32 KB (84 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/h1/refs/heads/main/openapi/h1-providers-api-openapi.yml