{ "openapi": "3.1.0", "info": { "title": "Ribbon Health 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.\n" }, "servers": [ { "url": "https://api.ribbonhealth.com/v1" } ], "paths": { "/custom/providers": { "get": { "summary": "Search Providers", "description": "Allows you to quickly list doctors based on important search criteria.\n", "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.\n\nDefaults to 5.\n" }, "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.\n\nCannot be used in tandem with `_excl_fields`.\n" }, "_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).\n\nA maximum of `100` NPIs can be passed in per request.\n\nNote: 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.\n", "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:\n- Doctor\n- Nursing\n- Dental Providers\n- Optometry\n- Chiropractic Providers\n\nSee the Specialties Reference Endpoint for a list of all specialties and their provider types.\n", "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.\n", "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.\n\nNote: 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)\n", "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." }, "accepting_new_patients": { "type": "string", "description": "Filters providers based on the `locations.accepting_new_patients` field. Accepts value `Y` to filter to providers who are likely accepting new patients.\n", "example": "Y" }, "ultimate_parent_id": { "type": "string", "description": "Exact match on the ultimate parent organization ID. Filters to only providers whose locations have the given ultimate parent ID.\n", "example": "12345" }, "ultimate_parent_name": { "type": "string", "description": "Fuzzy prefix search on the ultimate parent organization name. Returns providers whose locations have an ultimate parent name matching the given prefix.\n", "example": "Acme Health" } } } }, { "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.\n\nFind the individual valid carrier_name values from the insurance objects returned in the Insurances Reference Endpoint.\n\nNote: This input must be an exact string match to work\n", "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).\n\nNote, this parameter cannot be combined with `insurance_ids` to filter on provider insurances and provider location insurances.\n", "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.\n\nCannot be used in tandem with `specialty_ids_primary`, `specialty`, or `specialty_primary`.\n", "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\n- gastroenterology\n- gastroenterologist\n- gastro\n- stomach doc\n- gastrooentrology\n\nThis 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.\n\nCannot be used in tandem with `specialty_primary`, `specialty_ids`, or `specialty_ids_primary`.\n", "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.\n\nCannot be used in tandem with `specialty_ids`, `specialty`, or `specialty_primary`.\n", "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.\n\nCannot be used in tandem with `specialty`, `specialty_ids` or `specialty_ids_primary`.\n", "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`.\nFor details, please read [our guide on searching by specialties](https://ribbon.readme.io/docs/search-for-specialties).\n", "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.\n\nNote: This parameter must be used with `procedure_ids`.\n", "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.\n\nNote: This parameter must be used with `procedure_ids`.\n", "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.\n\nReturns all providers with this clinical area.\n", "example": "Mental Health" }, "clinical_area_ids": { "type": "string", "description": "Comma-separated list of desired clinical area ids.\n\nReturns all providers with a clinical area exactly matching any of the entered IDs.\n\n(Note: Use the `/clinical_areas/` reference endpoint to identify relevant IDs)\n", "example": "a7da792c-fae3-4b46-bab7-220e0c54e376" }, "_excl_clinical_area_ids": { "type": "string", "description": "Comma-separated list of clinical area ids to exclude.\n\nReturns all providers without a clinical area exactly matching any of the entered IDs.\n\n(Note: Use the `/clinical_areas/` reference endpoint to identify relevant IDs)\n", "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.\n\nReturns all providers with this condition.\n", "example": "depression" }, "condition_ids": { "type": "string", "description": "Comma-separated list of desired condition ids.\nReturns all providers with a `conditions.uuid` field exactly matching any of the entered IDs.\n\n(Note: Use the `/conditions/` reference endpoint to identify relevant IDs)\n", "example": "fd7c10f3-fbec-482a-929b-be94a8bb3bc1" }, "_excl_condition_ids": { "type": "string", "description": "Comma-separated list of condition ids to exclude.\nReturns all providers without a `conditions.uuid` field exactly matching any of the entered IDs.\n\n(Note: Use the `/conditions/` reference endpoint to identify relevant IDs)\n", "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.\n\nReturns all providers with this treatment.\n", "example": "Psychological Therapy" }, "treatment_ids": { "type": "string", "description": "Comma-separated list of desired treatment ids.\nReturns all providers with a `treatments.uuid` field exactly matching any of the entered IDs.\n\n(Note: Use the /treatments/ reference endpoint (docs) to identify relevant IDs)\n", "example": "11016779-e286-4b17-bd45-2d78660a9f28" }, "_excl_treatment_ids": { "type": "string", "description": "Comma-separated list of treatment ids to exclude.\nReturns all providers without a `treatments.uuid` field exactly matching any of the entered IDs.\n\n(Note: Use the /treatments/ reference endpoint (docs) to identify relevant IDs)\n", "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.\n\nReturns providers with an aggregate Outcomes Quality score (field: `performance.aggregate.quality.outcomes_index`) greater than or equal to the entered parameter.\n" }, "min_efficiency_index": { "type": "integer", "minimum": 1, "maximum": 5, "description": "Accepts a single integer input between 1 and 5.\n\nReturns providers with an aggregate Cost Efficiency score (field: `performance.aggregate.cost.efficiency_index`) greater than or equal to the entered parameter.\n" }, "max_unit_cost_index": { "type": "integer", "minimum": 1, "maximum": 10, "description": "Accepts a single integer input between 1 and 10.\n\nReturns providers with an aggregate Unit Cost Index score (field: `performance.aggregate.cost.unit_cost_index`) less than or equal to the entered parameter.\n" }, "max_ribbon_cost_score": { "type": "integer", "minimum": 1, "maximum": 10, "description": "Accepts a single integer input between 1 and 10.\n\nReturns providers with an aggregate Ribbon Cost Score (field: `performance.aggregate.cost.ribbon_cost_score`) less than or equal to the entered parameter.\n\nNote: this search parameter is only available to customers that have purchased our Cost and Quality data.\n" } } } }, { "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.\n\nUsing 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.\n", "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.\nNote: This parameter cannot be used in combination with any other TINs related parameters. All other TINs related parameters will be ignored.\n" }, "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.\n\nCannot be used in tandem with `_excl_fields`\n" }, "_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).\n\nNote: This parameter cannot be used in combination with any other parameters. All other parameters will be ignored.\n", "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:\n- Doctor\n- Nursing\n- Dental Providers\n- Optometry\n- Chiropractic Providers\n\nSee the Specialties Reference Endpoint for a list of all specialties and their provider types.\n", "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-b0ab2ff00495" ] }, "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.\n\nNote: 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)\n", "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." } } }, { "type": "object", "properties": { "insurance_ids": { "type": "array", "items": { "type": "string", "format": "uuid", "example": "e527f6e3-fe42-4932-bf34-d81f1c1fd652" }, "description": "List of desired insurance uuids. See all 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.\n\nFind the individual valid carrier_name values from the insurance objects returned in the Insurances Reference Endpoint.\n\nNote: This input must be an exact string match to work\n", "example": "Aetna" }, "location_insurance_ids": { "type": "array", "items": { "type": "string", "format": "uuid", "example": "34ecc98a-e49e-49e3-84f9-b0ab2ff00495" }, "description": "List of desired insurance uuids. See all provider locations that accept a given insurance(s).\n\nNote, this parameter cannot be combined with `insurance_ids` to filter on provider insurances and provider location insurances.\n", "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." } } }, { "type": "object", "properties": { "specialty_ids": { "type": "array", "items": { "type": "string", "format": "uuid", "example": "1de33770-eb1c-47fa-ab3e-f9a4ab924d9d" }, "description": "List of desired specialty uuids. See all providers who specialize in the given specialties.\n\nCannot be used in tandem with `specialty_ids_primary` or `specialty_primary`.\n", "example": [ "1de33770-eb1c-47fa-ab3e-f9a4ab924d9d" ] }, "specialty": { "$ref": "#/paths/~1custom~1specialties~1%7Bspecialty_uuid%7D/get/responses/200/content/application~1json/schema" }, "specialty_ids_primary": { "type": "array", "items": { "type": "string", "format": "uuid", "example": "1de33770-eb1c-47fa-ab3e-f9a4ab924d9d" }, "description": "List of specialty uuids. See all providers whose primary specialties are in the given specialties.\n\nCannot be used in tandem with `specialty_ids` or `specialty`.\n", "example": [ "1de33770-eb1c-47fa-ab3e-f9a4ab924d9d" ] }, "primary_specialty": { "$ref": "#/paths/~1custom~1specialties~1%7Bspecialty_uuid%7D/get/responses/200/content/application~1json/schema" }, "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`.\nFor details, please read [our guide on searching by specialties](https://ribbon.readme.io/docs/search-for-specialties).\n", "example": false } } }, { "type": "object", "properties": { "procedure_ids": { "type": "array", "items": { "type": "string", "format": "uuid", "example": "9f3fd9e8-96b0-4cc7-ab2c-8d538e9164ae" }, "description": "Comma separated list of desired procedure uuids. Filter to only providers who perform the given procedure.", "example": [ "9f3fd9e8-96b0-4cc7-ab2c-8d538e9164ae" ] }, "procedure": { "$ref": "#/paths/~1procedures~1%7Bprocedure_uuid%7D/get/responses/200/content/application~1json/schema" }, "min_experience_index": { "type": "float", "minimum": 0, "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.\n\nNote: This parameter must be used with `procedure_ids`.\n", "example": 4 }, "max_cost_index": { "type": "float", "minimum": 0, "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.\n\nNote: This parameter must be used with `procedure_ids`.\n", "example": 4 } } }, { "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.\n\nReturns all providers with this clinical area.\n", "example": "Mental Health" }, "clinical_area_ids": { "$ref": "#/paths/~1custom~1clinical_areas~1%7Bclinical_area_uuid%7D/get/responses/200/content/application~1json/schema" }, "condition": { "$ref": "#/paths/~1custom~1conditions~1%7Bcondition_uuid%7D/get/responses/200/content/application~1json/schema" }, "condition_ids": { "type": "array", "items": { "type": "string", "format": "uuid", "example": "fd7c10f3-fbec-482a-929b-be94a8bb3bc1" }, "description": "List of desired condition ids.\nReturns all providers with a `conditions.uuid` field exactly matching any of the entered IDs.\n\n(Note: Use the `/conditions/` reference endpoint to identify relevant IDs)\n", "example": [ "fd7c10f3-fbec-482a-929b-be94a8bb3bc1" ] }, "treatment": { "$ref": "#/paths/~1custom~1treatments~1%7Btreatment_uuid%7D/get/responses/200/content/application~1json/schema" }, "treatment_ids": { "type": "array", "items": { "type": "string", "format": "uuid", "example": "11016779-e286-4b17-bd45-2d78660a9f28" }, "description": "List of desired treatment ids.\nReturns all providers with a `treatments.uuid` field exactly matching any of the entered IDs.\n\n(Note: Use the /treatments/ reference endpoint (docs) to identify relevant IDs)\n", "example": [ "11016779-e286-4b17-bd45-2d78660a9f28" ] }, "panel_ages": { "type": "array", "items": { "type": "string", "example": [ "Pediatric (0-12)" ] }, "description": "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)" ] }, "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" } } }, { "$ref": "#/paths/~1custom~1providers/get/parameters/7/schema" }, { "type": "object", "properties": { "location_organization_ids": { "type": "array", "items": { "type": "string", "format": "uuid", "example": "497a1ac1-52cc-43a9-b796-844dabde10fc" }, "description": "List of desired organization uuids. Filters to only providers who have the given organization uuid(s) listed in the `provider.organizations` field.\n\nUsing 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.\n", "example": [ "497a1ac1-52cc-43a9-b796-844dabde10fc" ] } } }, { "type": "object", "properties": { "tin_ids": { "type": "string", "description": "List of desired TINs." }, "tin_name": { "type": "string" }, "tin_legal_name": { "type": "string" } } }, { "type": "object", "properties": { "inclusions": { "type": "object", "properties": { "specialty_ids": { "type": "array", "items": { "type": "string", "format": "uuid", "example": "ec41ff31-571d-422e-a8b5-806bed6a6c04" }, "example": [ "ec41ff31-571d-422e-a8b5-806bed6a6c04" ], "description": "A list of specialty IDs included in the search based on the fuzzy-matched `specialty` parameter." }, "specialty_ids_primary": { "type": "array", "items": { "type": "string", "format": "uuid", "example": "ec41ff31-571d-422e-a8b5-806bed6a6c04" }, "example": [ "ec41ff31-571d-422e-a8b5-806bed6a6c04" ], "description": "A list of primary specialty IDs included in the search based on the fuzzy-matched `specialty_primary` parameter." } } } } }, { "type": "object", "properties": { "exclusions": { "type": "object", "properties": { "provider_types": { "type": "array", "items": { "type": "string", "example": "Optometry" }, "description": "List of 'types' of providers excluded. Excludes any providers with a matching provider type.", "example": [ "Optometry" ] }, "insurance_ids": { "type": "array", "items": { "type": "string", "format": "uuid", "example": "e527f6e3-fe42-4932-bf34-d81f1c1fd652" }, "description": "List of insurance uuids excluded. Excludes any providers who accept a given insurance(s).", "example": [ "e527f6e3-fe42-4932-bf34-d81f1c1fd652" ] }, "location_insurance_ids": { "type": "array", "items": { "type": "string", "format": "uuid", "example": "34ecc98a-e49e-49e3-84f9-b0ab2ff00495" }, "description": "List of insurance uuids excluded. Excludes any provider locations that accept a given insurance(s).", "example": [ "34ecc98a-e49e-49e3-84f9-b0ab2ff00495" ] }, "location_ids": { "type": "array", "items": { "type": "string", "format": "uuid", "example": "34ecc98a-e49e-49e3-84f9-b0ab2ff00495" }, "description": "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_organization_ids": { "type": "array", "items": { "type": "string", "format": "uuid", "example": "497a1ac1-52cc-43a9-b796-844dabde10fc" }, "description": "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" ] }, "specialty_ids": { "type": "array", "items": { "type": "string", "format": "uuid", "example": "ec41ff31-571d-422e-a8b5-806bed6a6c04" }, "example": [ "ec41ff31-571d-422e-a8b5-806bed6a6c04" ], "description": "A list of specialty IDs excluded from the search. This can be the result of using `_excl_specialty_ids` or exclusions based on the fuzzy-matched `specialty` parameter." }, "specialty_ids_primary": { "type": "array", "items": { "type": "string", "format": "uuid", "example": "ec41ff31-571d-422e-a8b5-806bed6a6c04" }, "example": [ "ec41ff31-571d-422e-a8b5-806bed6a6c04" ], "description": "A list of primary specialty IDs excluded from the search. This can be the result of using `_excl_specialty_ids_primary` or exclusions based on the fuzzy-matched `specialty_primary` parameter." }, "procedure_ids": { "type": "array", "items": { "type": "string", "format": "uuid", "example": "9f3fd9e8-96b0-4cc7-ab2c-8d538e9164ae" }, "description": "Comma separated list of procedure uuids to exclude. Exclude providers who perform the given procedure.", "example": [ "9f3fd9e8-96b0-4cc7-ab2c-8d538e9164ae" ] }, "language": { "type": "object", "properties": { "value": { "type": "string", "example": "english" }, "results": { "type": "array", "items": { "type": "string", "example": "english" }, "example": [ "english" ] } }, "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." } } } } } ] }, "data": { "type": "array", "items": { "allOf": [ { "$ref": "#/paths/~1custom~1providers~1%7Bnpi%7D/get/responses/200/content/application~1json/schema" }, { "type": "object", "properties": { "locations": { "type": "array", "items": { "allOf": [ { "$ref": "#/paths/~1custom~1locations/get/responses/200/content/application~1json/schema/properties/data/items" }, { "type": "object", "properties": { "accepting_new_patients": { "type": [ "string", "null" ], "example": "Y", "description": "Indicates whether the provider is likely accepting new patients at this location" } } } ] }, "description": "List of all locations this provider is known to practice at including any known phone numbers at these locations" } } } ] } } } } } } }, "400": { "description": "The search could not be completed as requested", "content": { "application/json": { "schema": { "$ref": "#/paths/~1network_analysis/get/responses/400/content/application~1json/schema" } } } }, "403": { "description": "Trial accounts do not have access to custom provider directories", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1tin/get/responses/403/content/application~1json/schema" } } } } } } }, "/custom/providers/{npi}": { "get": { "summary": "Get Provider", "description": "Retrieve detailed information for any provider given their NPI, such as locations, contact information, education, patient satisfaction, etc.\n", "operationId": "getCustomProvider", "tags": [ "Providers" ], "parameters": [ { "name": "npi", "in": "path", "required": true, "description": "The 10-digit National Provider Identifier (NPI) of the healthcare provider to fetch.", "schema": { "type": "string", "pattern": "^\\d{10}$", "example": "1861664294" } }, { "name": "max_insurances", "in": "query", "required": false, "description": "If provided, returns only up to this many insurances per location. Useful to limit the amount of data returned when you do not need the entire list of accepted insurances.", "schema": { "type": "integer", "example": 50 } } ], "responses": { "200": { "description": "Returns a single provider", "content": { "application/json": { "schema": { "type": "object", "properties": { "npi": { "type": "string", "pattern": "^\\d{10}$", "example": "1861664294", "description": "The healthcare provider's 10-digit National Provider Identifier (NPI)" }, "h1_person_id": { "type": [ "integer", "null" ], "example": 3530835, "description": "The H1 person ID" }, "first_name": { "type": "string", "example": "Jane", "description": "First name of the provider" }, "middle_name": { "type": [ "string", "null" ], "example": "J", "description": "Middle name of the provider" }, "last_name": { "type": "string", "example": "Doe", "description": "Last name of the provider" }, "provider_email": { "type": [ "array", "null" ], "items": { "type": "string", "format": "email", "example": "jane.doe@example.com" }, "description": "List of work email addresses associated with the provider" }, "profile_picture": { "type": [ "string", "null" ], "format": "uri", "example": "https://assets.h1insights.com/KOL Photos/image.jpg", "description": "URL of the provider's profile picture" }, "age": { "type": [ "integer", "null" ], "example": 38, "description": "The estimated age of the provider" }, "gender": { "type": "string", "enum": [ "m", "f" ], "description": "The gender of the provider" }, "ratings_count": { "type": "integer", "example": 20, "description": "Total number of ratings collected across different sources" }, "ratings_avg": { "type": [ "number", "null" ], "example": 9.8, "description": "Average patient satisfaction rating out of 10 points across multiple sources" }, "degrees": { "type": "array", "items": { "type": "string", "example": "MD" }, "description": "Lists all degrees associated with this provider (e.g. MD, OD, PhD)" }, "specialties": { "type": "array", "items": { "$ref": "#/paths/~1custom~1specialties~1%7Bspecialty_uuid%7D/get/responses/200/content/application~1json/schema" }, "description": "This lists all the specialties for a given provider" }, "languages": { "type": "array", "items": { "type": "string", "example": "english" }, "description": "List of confirmed languages spoken" }, "educations": { "type": "array", "items": { "type": "object", "required": [ "education", "type", "year" ], "properties": { "education": { "type": "object", "properties": { "name": { "type": "string", "example": "Stritch School of Medicine" }, "uuid": { "type": "string", "format": "uuid", "example": "0b26c31a-d74a-4327-9702-57753b82a126" } } }, "type": { "type": [ "string", "null" ] }, "year": { "type": [ "integer", "null" ], "example": 2007 } } }, "description": "List of the schools attended by the provider" }, "insurances": { "type": "array", "items": { "$ref": "#/paths/~1custom~1insurances/post/requestBody/content/application~1json/schema" }, "description": "List of insurances the provider accepts" }, "provider_types": { "type": "array", "items": { "type": "string", "example": "Doctor" }, "description": "There are high level classifications for different provider types -- e.g. \"Doctor\", \"Optometry\", \"Dental Providers\", \"Nursing\", etc." }, "locations": { "type": "array", "items": { "allOf": [ { "$ref": "#/paths/~1custom~1locations~1%7Blocation_uuid%7D/get/responses/200/content/application~1json/schema" }, { "type": "object", "properties": { "accepting_new_patients": { "type": [ "string", "null" ], "example": "Y", "description": "Indicates whether the provider is likely accepting new patients at this location" } } } ] }, "description": "List of all locations this provider is known to practice at including any known phone numbers at these locations" }, "online_profiles": { "type": "array", "items": { "type": "object", "properties": { "url": { "type": "string" } } }, "description": "We aggregate profiles across a variety of different online sources, including booking platforms" }, "organizations": { "type": [ "array", "null" ], "items": { "$ref": "#/paths/~1custom~1organizations~1%7Borganization_uuid%7D/get/responses/200/content/application~1json/schema" }, "description": "List of all organizations this provider is known to be affiliated with. Note, this is a premium field and may not be enabled in your API index. Please reach out to H1 Support (support@h1.co) for additional information" }, "panel_demographics": { "type": [ "object", "null" ], "properties": { "ages": { "type": "array", "items": { "type": "string" } }, "sexes": { "type": "string" } }, "description": "Note, this is a premium field and may not be enabled in your API index. Please reach out to H1 Support (support@h1.co) for additional information" }, "clinical_areas": { "type": [ "array", "null" ], "items": { "$ref": "#/paths/~1custom~1clinical_areas~1%7Bclinical_area_uuid%7D/get/responses/200/content/application~1json/schema" }, "description": "Note, this is a premium field and may not be enabled in your API index. Please reach out to H1 Support (support@h1.co) for additional information" }, "conditions": { "type": [ "array", "null" ], "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "display": { "type": "string" } } }, "description": "Note, this is a premium field and may not be enabled in your API index. Please reach out to H1 Support (support@h1.co) for additional information" }, "treatments": { "type": [ "array", "null" ], "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "display": { "type": "string" } } }, "description": "Note, this is a premium field and may not be enabled in your API index. Please reach out to H1 Support (support@h1.co) for additional information" }, "procedures": { "type": [ "array", "null" ], "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "display": { "type": "string" }, "cost": { "type": "object", "properties": { "cost_index": { "type": [ "number", "null" ] } } }, "quality": { "type": "object", "properties": { "experience_index": { "type": [ "number", "null" ] } } } } }, "description": "Note, this is a premium field and may not be enabled in your API index. Please reach out to H1 Support (support@h1.co) for additional information" }, "performance": { "description": "Note, this is a premium field and may not be enabled in your API index. Please reach out to H1 Support (support@h1.co) for additional information", "type": "object", "properties": { "aggregate": { "type": "object", "properties": { "cost": { "type": "object", "properties": { "efficiency_index": { "type": "number" } } }, "quality": { "type": "object", "properties": { "outcomes_index": { "type": "number" } } } } } } }, "board_certifications": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string" }, "board": { "type": "string" }, "source": { "type": "string" }, "end_date": { "type": "string" }, "start_date": { "type": "string" }, "specialty_taxonomy_code": { "type": "string" } } }, "description": "Note, this is a premium field and may not be enabled in your API index. Please reach out to H1 Support (support@h1.co) for additional information" }, "state_licenses": { "type": [ "array", "null" ], "items": { "type": "object", "properties": { "name": { "type": [ "string", "null" ], "description": "Name on the license" }, "type": { "type": [ "string", "null" ], "description": "Type of license" }, "number": { "type": [ "string", "null" ], "description": "License number" }, "state": { "type": [ "string", "null" ], "description": "State where the license was issued" }, "country_raw": { "type": [ "string", "null" ], "description": "Raw country name" }, "country_code": { "type": [ "string", "null" ], "description": "Country code" }, "valid_from": { "type": [ "string", "null" ], "description": "Date the license is valid from" }, "valid_to": { "type": [ "string", "null" ], "description": "Date the license is valid to" }, "renewal_date": { "type": [ "string", "null" ], "description": "Date the license is up for renewal" }, "is_active": { "type": [ "string", "null" ], "description": "Whether the license is currently active" } } }, "description": "List of state licenses held by this provider" } } } } } }, "403": { "description": "Trial accounts do not have access to custom provider directories", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1tin/get/responses/403/content/application~1json/schema" } } } }, "404": { "description": "The given NPI cannot be found", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1tin~1%7Btin_id%7D/get/responses/404/content/application~1json/schema" } } } } } }, "put": { "summary": "Modify Provider Fields", "description": "Edit all fields that do not fall under `specialties`, `locations`, or `insurances`. You may also add new fields or remove existing fields.\n\n#### Looking For The Old Documentation?\nWe're in the process of revamping our documentation. You can find the old page for this endpoint [here](https://ribbon.readme.io/docs/add-or-edit-provider-fields-old).\n", "operationId": "putCustomProvider", "tags": [ "Providers" ], "parameters": [ { "$ref": "#/paths/~1custom~1providers~1%7Bnpi%7D/get/parameters/0" } ], "requestBody": { "required": true, "description": "A JSON object mapping the name of the field to update to its new value", "content": { "application/json": { "schema": { "type": "object", "properties": { "remove_fields": { "type": "array", "items": { "type": "string" }, "description": "An optional list of custom fields name to remove." } }, "additionalProperties": { "type": [ "string", "integer", "boolean", "null" ] }, "example": { "c_section_rate": 7.8, "c_section_sample_size": 435 } } } } }, "responses": { "200": { "description": "The specified fields were successfully updated or added", "content": { "application/json": { "schema": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/paths/~1custom~1providers~1%7Bnpi%7D/put/requestBody/content/application~1json/schema" } } } } } }, "400": { "description": "This request attempted to update fields which cannot be customized or attempted to set a provider_type value which does not exist.", "content": { "application/json": { "schema": { "$ref": "#/paths/~1network_analysis/get/responses/400/content/application~1json/schema" } } } }, "403": { "description": "Trial accounts do not have access to custom provider directories", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1tin/get/responses/403/content/application~1json/schema" } } } }, "404": { "description": "The given NPI cannot be found", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1tin~1%7Btin_id%7D/get/responses/404/content/application~1json/schema" } } } } } } }, "/custom/providers/{npi}/locations": { "put": { "summary": "Add Or Remove Provider Locations", "description": "Add or remove locations a provider practices at using our standard location UUIDs.\n", "operationId": "putCustomProviderLocations", "tags": [ "Providers" ], "parameters": [ { "$ref": "#/paths/~1custom~1providers~1%7Bnpi%7D/get/parameters/0" } ], "requestBody": { "required": true, "description": "A set of instructions for how to update the provider's locations.", "content": { "application/json": { "schema": { "type": "object", "properties": { "add": { "type": "array", "items": { "type": "string", "format": "uuid", "example": "003aa14f-31ed-4c20-8888-07055d69afb6" }, "description": "A list of UUIDs to add to this provider's set.", "example": [ "003aa14f-31ed-4c20-8888-07055d69afb6" ] }, "remove": { "type": "array", "items": { "type": "string", "format": "uuid", "example": "000914b4-d165-4343-bd17-0054505faaa5" }, "description": "A list of UUIDs to remove to this provider's set.", "example": [ "000914b4-d165-4343-bd17-0054505faaa5" ] }, "override": { "type": "array", "items": { "type": "string", "format": "uuid", "example": "000914b4-d165-4343-bd17-0054505faaa5" }, "description": "A list of UUIDs to remove to completely replace this provider's set with.\nNot supported in combination with either `add` or `remove`." } }, "example": { "add": [ "003aa14f-31ed-4c20-8888-07055d69afb6" ], "remove": [ "000914b4-d165-4343-bd17-0054505faaa5" ] } } } } }, "responses": { "200": { "description": "The locations list was successfully modified.", "content": { "application/json": { "schema": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/paths/~1custom~1providers~1%7Bnpi%7D~1locations/put/requestBody/content/application~1json/schema" } } } } } }, "400": { "description": "This request attempted to use fields which are not supported.", "content": { "application/json": { "schema": { "$ref": "#/paths/~1network_analysis/get/responses/400/content/application~1json/schema" } } } }, "403": { "description": "Trial accounts do not have access to custom provider directories", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1tin/get/responses/403/content/application~1json/schema" } } } }, "404": { "description": "The given NPI cannot be found", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1tin~1%7Btin_id%7D/get/responses/404/content/application~1json/schema" } } } } } } }, "/custom/providers/{npi}/locations/{location_uuid}": { "put": { "summary": "Modify Provider Location Fields", "description": "Edit all fields that do not fall under `uuid`, `google_maps_link`, `latitude`, or `longitude`. You may also add new fields or remove existing fields.\nThese updates are provider-specific and will not affect other providers practicing at the same location.\n", "operationId": "putCustomProviderLocation", "tags": [ "Providers" ], "parameters": [ { "$ref": "#/paths/~1custom~1providers~1%7Bnpi%7D/get/parameters/0" }, { "$ref": "#/paths/~1custom~1locations~1%7Blocation_uuid%7D/get/parameters/0" } ], "requestBody": { "required": true, "description": "A JSON object mapping the name of the field to update to its new value", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1providers~1%7Bnpi%7D/put/requestBody/content/application~1json/schema" } } } }, "responses": { "200": { "description": "The location was successfully modified.", "content": { "application/json": { "schema": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/paths/~1custom~1providers~1%7Bnpi%7D/put/requestBody/content/application~1json/schema" } } } } } }, "400": { "description": "This request attempted to use fields which are not supported.", "content": { "application/json": { "schema": { "$ref": "#/paths/~1network_analysis/get/responses/400/content/application~1json/schema" } } } }, "403": { "description": "Trial accounts do not have access to custom provider directories", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1tin/get/responses/403/content/application~1json/schema" } } } }, "404": { "description": "The given NPI or location cannot be found", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1tin~1%7Btin_id%7D/get/responses/404/content/application~1json/schema" } } } } } } }, "/custom/providers/{npi}/specialties": { "put": { "summary": "Add Or Remove Provider Specialties", "description": "Add or remove specialties for a provider using our standard specialty UUIDs.\n", "operationId": "putCustomProviderSpecialties", "tags": [ "Providers" ], "parameters": [ { "$ref": "#/paths/~1custom~1providers~1%7Bnpi%7D/get/parameters/0" } ], "requestBody": { "required": true, "description": "A set of instructions for how to update the provider's specialties.", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/paths/~1custom~1providers~1%7Bnpi%7D~1locations/put/requestBody/content/application~1json/schema" }, { "type": "object", "properties": { "is_primary": { "type": "boolean", "example": false, "description": "Whether or not these specialties are the provider's primary specialties. When not provided, defaults to `false`.\nNot supported in combination with `remove`." } } } ] } } } }, "responses": { "200": { "description": "The specialties list was successfully modified.", "content": { "application/json": { "schema": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/paths/~1custom~1providers~1%7Bnpi%7D~1specialties/put/requestBody/content/application~1json/schema" } } } } } }, "400": { "description": "This request attempted to use fields which are not supported or use items that are not valid UUIDs.", "content": { "application/json": { "schema": { "$ref": "#/paths/~1network_analysis/get/responses/400/content/application~1json/schema" } } } }, "403": { "description": "Trial accounts do not have access to custom provider directories", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1tin/get/responses/403/content/application~1json/schema" } } } }, "404": { "description": "The given NPI cannot be found", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1tin~1%7Btin_id%7D/get/responses/404/content/application~1json/schema" } } } } } } }, "/custom/providers/{npi}/specialties/{specialty_uuid}": { "put": { "summary": "Modify A Provider's Primary Specialties", "description": "Edit whether a single specialty is one of the provider's primary specialties.\n", "operationId": "putCustomProviderPrimarySpecialties", "tags": [ "Providers" ], "parameters": [ { "$ref": "#/paths/~1custom~1providers~1%7Bnpi%7D/get/parameters/0" }, { "$ref": "#/paths/~1custom~1specialties~1%7Bspecialty_uuid%7D/get/parameters/0" } ], "requestBody": { "required": true, "description": "Whether or not this specialty is a primary specialty.", "content": { "application/json": { "schema": { "type": "object", "required": [ "is_primary" ], "properties": { "is_primary": { "type": "boolean", "example": false, "description": "Whether or not this specialty is one of the provider's primary specialties." } } } } } }, "responses": { "200": { "description": "The specialty was successfully modified.", "content": { "application/json": { "schema": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/paths/~1custom~1providers~1%7Bnpi%7D~1specialties~1%7Bspecialty_uuid%7D/put/requestBody/content/application~1json/schema" } } } } } }, "400": { "description": "This request attempted to use fields which are not supported.", "content": { "application/json": { "schema": { "$ref": "#/paths/~1network_analysis/get/responses/400/content/application~1json/schema" } } } }, "403": { "description": "Trial accounts do not have access to custom provider directories", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1tin/get/responses/403/content/application~1json/schema" } } } }, "404": { "description": "The given NPI or specialty cannot be found", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1tin~1%7Btin_id%7D/get/responses/404/content/application~1json/schema" } } } } } } }, "/custom/providers/{npi}/procedures": { "put": { "summary": "Add Or Remove Provider Procedures", "description": "Add or remove procedures for a provider using our standard procedure UUIDs.\n", "operationId": "putCustomProviderProcedures", "tags": [ "Providers" ], "parameters": [ { "$ref": "#/paths/~1custom~1providers~1%7Bnpi%7D/get/parameters/0" } ], "requestBody": { "required": true, "description": "A set of instructions for how to update the provider's procedures.", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1providers~1%7Bnpi%7D~1locations/put/requestBody/content/application~1json/schema" } } } }, "responses": { "200": { "description": "The procedures list was successfully modified.", "content": { "application/json": { "schema": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/paths/~1custom~1providers~1%7Bnpi%7D~1locations/put/requestBody/content/application~1json/schema" } } } } } }, "400": { "description": "This request attempted to use fields which are not supported or use items that are not valid UUIDs.", "content": { "application/json": { "schema": { "$ref": "#/paths/~1network_analysis/get/responses/400/content/application~1json/schema" } } } }, "403": { "description": "Trial accounts do not have access to custom provider directories", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1tin/get/responses/403/content/application~1json/schema" } } } }, "404": { "description": "The given NPI cannot be found", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1tin~1%7Btin_id%7D/get/responses/404/content/application~1json/schema" } } } } } } }, "/custom/providers/{npi}/clinical_areas": { "put": { "summary": "Add Or Remove Provider Clinical Areas", "description": "Add or remove clinical areas for a provider using our standard clinical area UUIDs.\n", "operationId": "putCustomProviderClinicalAreas", "tags": [ "Providers" ], "parameters": [ { "$ref": "#/paths/~1custom~1providers~1%7Bnpi%7D/get/parameters/0" } ], "requestBody": { "required": true, "description": "A set of instructions for how to update the provider's clinical areas.", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1providers~1%7Bnpi%7D~1locations/put/requestBody/content/application~1json/schema" } } } }, "responses": { "200": { "description": "The clinical areas list was successfully modified.", "content": { "application/json": { "schema": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/paths/~1custom~1providers~1%7Bnpi%7D~1locations/put/requestBody/content/application~1json/schema" } } } } } }, "400": { "description": "This request attempted to use fields which are not supported or use items that are not valid UUIDs.", "content": { "application/json": { "schema": { "$ref": "#/paths/~1network_analysis/get/responses/400/content/application~1json/schema" } } } }, "403": { "description": "Trial accounts do not have access to custom provider directories", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1tin/get/responses/403/content/application~1json/schema" } } } }, "404": { "description": "The given NPI cannot be found", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1tin~1%7Btin_id%7D/get/responses/404/content/application~1json/schema" } } } } } } }, "/custom/providers/{npi}/locations/{location_uuid}/insurances": { "put": { "summary": "Add Or Remove Provider Insurances At A Location", "description": "Add or remove insurances accepted by a provider at a specific location using our standard insurance UUIDs.\n", "operationId": "putCustomProviderLocationInsurances", "tags": [ "Providers" ], "parameters": [ { "$ref": "#/paths/~1custom~1providers~1%7Bnpi%7D/get/parameters/0" }, { "$ref": "#/paths/~1custom~1locations~1%7Blocation_uuid%7D/get/parameters/0" } ], "requestBody": { "required": true, "description": "A set of instructions for how to update the provider's insurances at this location.", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1providers~1%7Bnpi%7D~1locations/put/requestBody/content/application~1json/schema" } } } }, "responses": { "200": { "description": "The insurances list was successfully modified.", "content": { "application/json": { "schema": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/paths/~1custom~1providers~1%7Bnpi%7D~1locations/put/requestBody/content/application~1json/schema" } } } } } }, "400": { "description": "This request attempted to use fields which are not supported or use items that are not valid UUIDs.", "content": { "application/json": { "schema": { "$ref": "#/paths/~1network_analysis/get/responses/400/content/application~1json/schema" } } } }, "403": { "description": "Trial accounts do not have access to custom provider directories", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1tin/get/responses/403/content/application~1json/schema" } } } }, "404": { "description": "The given NPI or location UUID cannot be found", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1tin~1%7Btin_id%7D/get/responses/404/content/application~1json/schema" } } } } } } }, "/custom/providers/{npi}/locations/{location_uuid}/organizations": { "put": { "summary": "Add Or Remove Provider Organizations At A Location", "description": "Add or remove organizations accepted by a provider at a specific location using our standard organization UUIDs.\n", "operationId": "putCustomProviderLocationOrganizations", "tags": [ "Providers" ], "parameters": [ { "$ref": "#/paths/~1custom~1providers~1%7Bnpi%7D/get/parameters/0" }, { "$ref": "#/paths/~1custom~1locations~1%7Blocation_uuid%7D/get/parameters/0" } ], "requestBody": { "required": true, "description": "A set of instructions for how to update the provider's organizations at this location.", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1providers~1%7Bnpi%7D~1locations/put/requestBody/content/application~1json/schema" } } } }, "responses": { "200": { "description": "The organizations list was successfully modified.", "content": { "application/json": { "schema": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/paths/~1custom~1providers~1%7Bnpi%7D~1locations/put/requestBody/content/application~1json/schema" } } } } } }, "400": { "description": "This request attempted to use fields which are not supported or use items that are not valid UUIDs.", "content": { "application/json": { "schema": { "$ref": "#/paths/~1network_analysis/get/responses/400/content/application~1json/schema" } } } }, "403": { "description": "Trial accounts do not have access to custom provider directories", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1tin/get/responses/403/content/application~1json/schema" } } } }, "404": { "description": "The given NPI or location UUID cannot be found", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1tin~1%7Btin_id%7D/get/responses/404/content/application~1json/schema" } } } } } } }, "/custom/providers/filters": { "get": { "summary": "Get Provider Filters", "description": "Fetch all previously created filters for providers.\n", "operationId": "getCustomProviderFilters", "tags": [ "Filters" ], "responses": { "200": { "description": "Returns a list of provider filters", "content": { "application/json": { "schema": { "type": "object", "required": [ "data" ], "properties": { "data": { "type": "array", "items": { "$ref": "#/paths/~1custom~1providers~1filters/post/responses/201/content/application~1json/schema/properties/data" } } } } } } } } }, "post": { "summary": "Create Provider Filter", "description": "Create new filters to be used when searching for providers in the [Search Providers](./getcustomproviders) endpoint. \nYou can create filters for both Ribbon's existing data fields as well as any custom data fields you create.\n\n#### Example Use Case:\nLet's say you add a new field to a bunch of providers that match your use case, for instance `c_section_rate`. You could make this field searchable so that your search through [Search Providers](./getcustomproviders) when you pass through a certain parameter that specifies a maximum threshold.\n", "operationId": "createCustomProviderFilter", "tags": [ "Filters" ], "requestBody": { "required": true, "description": "The new filter to create", "content": { "application/json": { "schema": { "type": "object", "required": [ "parameter", "field", "value_type", "filter_type" ], "properties": { "parameter": { "type": "string", "description": "The name of filter which will be used when applying to a search\n", "example": "max_c_section_rate" }, "field": { "type": "string", "description": "The name of the field that the filter will be applied to\n\nYou can specify nested fields by placing a `.` between each level within the JSON object. For example, `educations.education.uuid`\n", "example": "c_section_rate" }, "value_type": { "type": "string", "enum": [ "string", "float", "integer", "boolean", "list" ], "description": "The data type of the value passed into this filter" }, "filter_type": { "type": "string", "enum": [ "less_than", "greater_than", "equals", "contains", "boost", "equals_any", "contains_any", "fuzzy" ], "description": "The type of comparison that will occur between the value passed into this filter and the field specified in the `field` parameter\n\nNote that `boost` filters have several limitations:\n- A Boost Filter cannot use the following `value_type`s: `float`\n- If a Boost Filter's `field` targets something that is within a list of objects, such as \u2018educations.education.name\u2019, we will not reorder the list to bring these items to the front. We will merely boost records where there is an entry in the list that matches the filter, wherever it is.\n - There is one exception to this: `locations`. If you search for a provider and boost fields nested within the `locations` list, we will reorder the locations to put matching locations first.\n" } } } } } }, "responses": { "201": { "description": "The specified filter was successfully created", "content": { "application/json": { "schema": { "type": "object", "required": [ "data" ], "properties": { "data": { "type": "object", "required": [ "uuid", "filter" ], "properties": { "uuid": { "type": "string", "format": "uuid", "description": "A UUID uniquely identifying this filter", "example": "9da04268-65e4-4422-a095-98208695b8b9" }, "filter": { "$ref": "#/paths/~1custom~1providers~1filters/post/requestBody/content/application~1json/schema" } } } } } } } }, "400": { "description": "The filter you attempted to create was malformed", "content": { "application/json": { "schema": { "$ref": "#/paths/~1network_analysis/get/responses/400/content/application~1json/schema" } } } }, "409": { "description": "A filter with the given `parameter` name already exists", "content": { "application/json": { "schema": { "$ref": "#/paths/~1network_analysis/get/responses/400/content/application~1json/schema" } } } } } } }, "/custom/providers/filters/{filter_uuid}": { "put": { "summary": "Edit Provider Filter", "description": "Edit any of the fields in a custom provider filter you have already created.\n", "operationId": "editCustomProviderFilter", "tags": [ "Filters" ], "parameters": [ { "name": "filter_uuid", "in": "path", "required": true, "description": "The UUID of the filter you want to edit.", "schema": { "type": "string", "format": "uuid", "example": "b5458763-968e-4690-bc70-f29d3a7459a9" } } ], "requestBody": { "required": true, "description": "A JSON object mapping the name of the field to update to its new value.", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1providers~1filters/post/requestBody/content/application~1json/schema" } } } }, "responses": { "200": { "description": "The specified filter was successfully updated.", "content": { "application/json": { "schema": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/paths/~1custom~1providers~1filters/post/responses/201/content/application~1json/schema/properties/data" } } } } } }, "400": { "description": "The filter updates you are trying to make are invalid or malformed.", "content": { "application/json": { "schema": { "$ref": "#/paths/~1network_analysis/get/responses/400/content/application~1json/schema" } } } }, "404": { "description": "The given filter UUID cannot be found.", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1tin~1%7Btin_id%7D/get/responses/404/content/application~1json/schema" } } } }, "409": { "description": "A filter with the given parameter already exists.", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1locations/post/responses/409/content/application~1json/schema" } } } } } }, "delete": { "summary": "Delete Provider Filter", "description": "Delete a provider filter.\n", "operationId": "deleteCustomProviderFilter", "tags": [ "Filters" ], "parameters": [ { "name": "filter_uuid", "in": "path", "required": true, "description": "The UUID of the filter you want to delete.", "schema": { "type": "string", "format": "uuid", "example": "b5458763-968e-4690-bc70-f29d3a7459a9" } } ], "responses": { "204": { "description": "Filter was successfully deleted" }, "404": { "description": "The given filter UUID cannot be found", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1tin~1%7Btin_id%7D/get/responses/404/content/application~1json/schema" } } } } } } }, "/custom/locations": { "get": { "summary": "Search Locations", "description": "Allows you to search for different service locations, including specific location types.\n", "operationId": "getCustomLocations", "tags": [ "Locations" ], "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." }, "fields": { "type": "string", "example": "name,address", "description": "Comma separated list of fields within the location object to return. Can be used to greatly reduce the size of the response by requesting only data you intend to use.\nCannot be used in tandem with `_excl_fields`\n" }, "_excl_fields": { "type": "string", "example": "phone_numbers,insurances", "description": "Comma separated list of fields within the location 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": "Location Search Options", "in": "query", "required": false, "description": "Search options based on aspects of the location objects.", "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" }, "name": { "type": "string", "description": "String input for a 'fuzzy' search on location name.", "example": "Citymd Urgent Care" }, "distance": { "type": "integer", "example": 10, "description": "The proximity radius of locations returned.\n" }, "location_types": { "type": "string", "description": "Comma separated list of values that filter to what type of facilities to show. We categorize locations into 36 types. Clients can add their own locations with unique location_types, and they will also be included in the search.\nSee the Location Types Reference Endpoint for a list of all location types.\n", "example": "Urgent Care" }, "_excl_location_types": { "type": "string", "description": "Comma separated list of the 'types' of locations to exclude. Excludes locations with a matching location type.\n", "example": "Urgent Care" }, "location": { "type": "string", "description": "Latitude/longitude pair of coordinates in lieu of a string address.", "example": "37.7489816,-122.4802092" }, "location_ids": { "type": "string", "description": "Comma separated list of desired practice location uuids.", "example": "48d4eb27-d82b-4ea4-8ad0-4bcb2c46a960" }, "_excl_location_ids": { "type": "string", "description": "Comma separated list of practice location uuids to exclude.", "example": "48d4eb27-d82b-4ea4-8ad0-4bcb2c46a960" }, "insurance_ids": { "type": "string", "description": "Comma separated list of desired insurance uuids. See all locations that accept a given insurance(s).", "example": "24617022-92b3-4b9f-af1c-4df21ad6fb6f" }, "_excl_insurance_ids": { "type": "string", "description": "Comma separated list of insurance uuids to exclude. Exclude locations that accept a given insurance(s).", "example": "24617022-92b3-4b9f-af1c-4df21ad6fb6f" }, "insurance_carrier_name": { "type": "string", "description": "String input of carrier_name in order to search for all locations that take at least one plan from a given insurance carrier.\nFind the individual valid carrier_name values from the insurance objects returned in the Insurances Reference Endpoint.\nNote: This input must be an exact string match to work\n", "example": "Aetna" }, "min_confidence": { "type": "integer", "minimum": 0, "maximum": 5, "description": "Integer input (0-5) of the minimum confidence threshold for returned locations. min_location_confidence=4 will only display locations that have a confidence 4 or higher.\n" }, "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." }, "ultimate_parent_id": { "type": "string", "description": "Exact match on the ultimate parent organization ID. Filters to only locations that have the given ultimate parent ID.\n", "example": "12345" }, "ultimate_parent_name": { "type": "string", "description": "Fuzzy prefix search on the ultimate parent organization name. Returns locations with an ultimate parent name matching the given prefix.\n", "example": "Acme Health" }, "tier": { "type": "integer", "enum": [ 1, 2, 3 ], "example": 1, "description": "Filter to locations with the given quality tier derived from the linked organization's `hco_research` flags.\n\n * `1` - High-confidence facility\n * `2` - Medium-confidence facility\n * `3` - Low-confidence facility\n\nOnly `1`, `2`, or `3` are accepted; any other value returns a 400. Locations whose `tier` is `null` in the index are excluded from the result set when this parameter is set.\n" } } } }, { "name": "Organization Search Criteria", "in": "query", "required": false, "description": "Criteria used to search for locations based on the organizations they belong to.", "explode": true, "schema": { "type": "object", "properties": { "organization_ids": { "type": "string", "description": "Comma separated list of desired organization uuids. Filters to only locations that are affiliated with the given organization uuid(s).\n", "example": "86722ebb-1dd1-4846-a1a9-a7a9e36c944d" }, "_excl_organization_ids": { "type": "string", "description": "Comma separated list of organization uuids to exclude. Excludes locations that are affiliated with the given organization uuid(s).", "example": "86722ebb-1dd1-4846-a1a9-a7a9e36c944d" } } } }, { "name": "Focus Area Search Criteria", "in": "query", "required": false, "description": "Criteria used to search for locations 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.\nReturns all location with this clinical area.\n", "example": "CT" }, "clinical_area_ids": { "type": "string", "description": "Comma-separated list of desired clinical area ids.\nReturns all locations with a clinical area exactly matching any of the entered IDs.\n(Note: Use the `/clinical_areas/` reference endpoint to identify relevant IDs)\n", "example": "4c03ddb4-f6c0-4574-a51e-508f83c43d69" }, "_excl_clinical_area_ids": { "type": "string", "description": "Comma-separated list of clinical area ids to exclude.\nReturns all locations without a clinical area exactly matching any of the entered IDs.\n(Note: Use the `/clinical_areas/` reference endpoint to identify relevant IDs)\n", "example": "4c03ddb4-f6c0-4574-a51e-508f83c43d69" }, "treatment": { "type": "string", "description": "String input that is fuzzy matched to the most relevant `treatments.display` field. Only a single treatment will be selected.\nReturns all locations with this treatment.\n", "example": "Neck X-ray" }, "treatment_ids": { "type": "string", "description": "Comma-separated list of desired treatment ids.\nReturns all locations with a `treatments.uuid` field exactly matching any of the entered IDs.\n(Note: Use the /treatments/ reference endpoint (docs) to identify relevant IDs)\n", "example": "e3079513-bf55-41cc-87c6-f7ff5f923085" }, "_excl_treatment_ids": { "type": "string", "description": "Comma-separated list of treatment ids to exclude.\nReturns all locations without a `treatments.uuid` field exactly matching any of the entered IDs.\n(Note: Use the /treatments/ reference endpoint (docs) to identify relevant IDs)\n", "example": "e3079513-bf55-41cc-87c6-f7ff5f923085" } } } }, { "name": "TINs Search Criteria", "in": "query", "required": false, "description": "Criteria used to search for locations 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 locations that are affiliated with the given TINs.\nNote: This parameter cannot be used in combination with any other TINs related parameters. All other TINs related parameters will be ignored.\n" }, "tin_name": { "type": "string", "description": "String input that is fuzzy matched against the `tins.name` field. Filters to only locations that are affiliated with the given TINs name." }, "tin_legal_name": { "type": "string", "description": "String input that is fuzzy matched against the `tins.legal_name` field. Filters to only locations that are affiliated with the given TINs legal name." } } } } ], "responses": { "200": { "description": "Returns an ordered list of matching locations", "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." }, "fields": { "type": "array", "items": { "type": "string", "example": "locations" }, "example": [ "locations", "age" ], "description": "List of fields within the location object to return. Can be used to greatly reduce the size of the response by requesting only data you intend to use.\n\nCannot be used in tandem with `_excl_fields`\n" }, "_excl_fields": { "type": "array", "items": { "type": "string", "example": "locations" }, "example": [ "locations", "age" ], "description": "List of fields within the location 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": { "address": { "type": "string", "description": "String input of an address that will be interpreted and geocoded in real time.", "example": "New York, NY" }, "name": { "type": "string", "description": "String input for a fuzzy search on location name.", "example": "Citymd Urgent Care" }, "distance": { "type": "integer", "example": 10, "description": "The proximity radius of locations returned.\n" }, "location_types": { "type": "array", "items": { "type": "string", "example": "Urgent Care" }, "description": "List of values that filter to what type of facilities to show. We categorize locations into 34 types. Clients can add their own locations with unique location_types, and they will also be included in the search.\nSee the Location Types Reference Endpoint for a list of all location types.\n", "example": [ "Urgent Care" ] }, "_excl_location_types": { "type": "array", "items": { "type": "string", "example": "Urgent Care" }, "description": "List of the 'types' of locations to exclude. Excludes locations with a matching location type.\n", "example": [ "Urgent Care" ] }, "insurance_ids": { "type": "array", "items": { "type": "string", "format": "uuid", "example": "e527f6e3-fe42-4932-bf34-d81f1c1fd652" }, "description": "List of desired insurance uuids. See all locations that accept a given insurance(s).", "example": [ "e527f6e3-fe42-4932-bf34-d81f1c1fd652" ] }, "_excl_insurance_ids": { "type": "array", "items": { "type": "string", "format": "uuid", "example": "e527f6e3-fe42-4932-bf34-d81f1c1fd652" }, "description": "List of insurance uuids to exclude. Exclude locations that 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 locations that take at least one plan from a given insurance carrier.\nFind the individual valid carrier_name values from the insurance objects returned in the Insurances Reference Endpoint.\nNote: This input must be an exact string match to work\n", "example": "Aetna" }, "min_confidence": { "type": "integer", "minimum": 0, "maximum": 5, "description": "Integer input (0-5) of the minimum confidence threshold for returned locations. min_location_confidence=4 will only display locations that have a confidence 4 or higher.\n" }, "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." }, "tier": { "type": "integer", "enum": [ 1, 2, 3 ], "example": 1, "description": "Filter to locations with the given quality tier (`1` = high, `2` = medium, `3` = low). Locations with `tier = null` are excluded when this filter is set.\n" } } }, { "type": "object", "properties": { "organization_ids": { "type": "array", "items": { "type": "string", "example": "86722ebb-1dd1-4846-a1a9-a7a9e36c944d" }, "description": "Comma separated list of desired organization uuids. Filters to only locations that are affiliated with the given organization uuid(s).\n", "example": [ "86722ebb-1dd1-4846-a1a9-a7a9e36c944d" ] }, "_excl_organization_ids": { "type": "array", "items": { "type": "string", "example": "497a1ac1-52cc-43a9-b796-844dabde10fc" }, "description": "Comma separated list of organization uuids to exclude. Excludes locations that are affiliated with the given organization uuid(s).", "example": [ "86722ebb-1dd1-4846-a1a9-a7a9e36c944d" ] } } }, { "type": "object", "properties": { "clinical_area": { "$ref": "#/paths/~1custom~1clinical_areas~1%7Bclinical_area_uuid%7D/get/responses/200/content/application~1json/schema" }, "clinical_area_ids": { "type": "array", "items": { "type": "string", "example": "4c03ddb4-f6c0-4574-a51e-508f83c43d69" }, "description": "List of desired clinical area ids.\nReturns all locations with a clinical area exactly matching any of the entered IDs.\n(Note: Use the `/clinical_areas/` reference endpoint to identify relevant IDs)\n", "example": [ "4c03ddb4-f6c0-4574-a51e-508f83c43d69" ] }, "treatment": { "$ref": "#/paths/~1custom~1treatments~1%7Btreatment_uuid%7D/get/responses/200/content/application~1json/schema" }, "treatment_ids": { "type": "array", "items": { "type": "string", "example": "e3079513-bf55-41cc-87c6-f7ff5f923085" }, "description": "List of desired treatment ids.\nReturns all providers with a `treatments.uuid` field exactly matching any of the entered IDs.\n(Note: Use the /treatments/ reference endpoint (docs) to identify relevant IDs)\n", "example": [ "e3079513-bf55-41cc-87c6-f7ff5f923085" ] } } }, { "type": "object", "properties": { "tin_ids": { "type": "string", "description": "List of desired TINs." }, "tin_name": { "type": "string" }, "tin_legal_name": { "type": "string" } } } ] }, "data": { "type": "array", "items": { "allOf": [ { "type": "object", "properties": { "distance": { "type": "number", "example": 0.4, "description": "This location's distance from the center of a geographic search, in miles." } } }, { "$ref": "#/paths/~1custom~1locations~1%7Blocation_uuid%7D/get/responses/200/content/application~1json/schema" } ] } } } } } } }, "400": { "description": "The search could not be completed as requested", "content": { "application/json": { "schema": { "$ref": "#/paths/~1network_analysis/get/responses/400/content/application~1json/schema" } } } }, "403": { "description": "Account does not have access to custom locations directory", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1tin/get/responses/403/content/application~1json/schema" } } } } } }, "post": { "summary": "Create Location", "description": "Create new locations and facilities.\n\n#### Example Use Case\nYou want to add new urgent care locations (or labs, imaging centers, therapy centers, etc.) to an area that are not yet included in the existing Ribbon locations listings.\n", "operationId": "postCustomLocations", "tags": [ "Locations" ], "requestBody": { "required": true, "description": "A JSON object describing the location you want to create.", "content": { "application/json": { "schema": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid", "example": "f38b9fd5-1e28-4f6e-953c-1e1493b68e21", "description": "A UUID uniquely identifying this location" }, "name": { "type": [ "string", "null" ] }, "address": { "type": "string", "example": "185 Berry St # 130, San Francisco, CA 94107, US" }, "address_details": { "type": "object", "properties": { "street": { "type": "string", "example": "185 Berry St # 130" }, "address_line_1": { "type": "string", "example": "185 Berry St" }, "address_line_2": { "type": [ "string", "null" ], "example": "# 130" }, "city": { "type": "string", "example": "San Francisco" }, "state": { "type": "string", "example": "CA" }, "zip": { "type": "string", "example": 94107 } } }, "latitude": { "type": "number", "example": 37.7765973 }, "longitude": { "type": "number", "example": -122.3919488 }, "google_maps_link": { "type": "string", "format": "url", "example": "https://www.google.com/maps/@37.7765973-122.3919488?q=185%20Berry%20St%20%23%20130%2C%20SF%2C%20CA%2094107%2C%20US" }, "phone_numbers": { "type": "array", "items": { "type": "object", "properties": { "phone": { "type": "string", "example": 4155146410 }, "details": { "type": "string", "example": "primary" } } } }, "faxes": { "type": "array", "description": "Fax numbers associated with this location.\n\nThis property only appears for customers purchasing fax data. If you would like this property and are not receiving it, please reach out to support.\n", "items": { "type": "object", "properties": { "phone": { "type": "string", "example": 2121234567 }, "details": { "type": "string", "example": "secondary" }, "confidence": { "type": "integer", "example": 3 } } } }, "confidence": { "type": [ "integer", "null" ], "example": 2, "description": "Each location contains a confidence score. This score indicates the probability of the given provider practicing at said location with the included contact information\n\nThis field will only be populated for Ribbon-provided locations. Locations you create yourself will have a confidence score of `null`.\n" }, "insurances": { "type": "array", "items": { "type": "string", "format": "uuid" }, "description": "List of insurances UUIDs accepted at this location" }, "tins": { "type": "string", "description": "Comma separated list of standard 9-digit identification code(s) used by the IRS for business entities and used for contracting and paying provider/facility claims.\n" } } } } } }, "responses": { "201": { "description": "Location was successfully created.", "content": { "application/json": { "schema": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/paths/~1custom~1locations~1%7Blocation_uuid%7D/get/responses/200/content/application~1json/schema" } } } } } }, "400": { "description": "This request attempted to update with invalid schema or was missing required fields.", "content": { "application/json": { "schema": { "$ref": "#/paths/~1network_analysis/get/responses/400/content/application~1json/schema" } } } }, "409": { "description": "A location with this `address` and `name` pair already exists.", "content": { "application/json": { "schema": { "type": "object", "description": "Resource with given fields aready exists", "required": [ "error" ], "properties": { "error": { "type": "object", "required": [ "status", "code", "message" ], "properties": { "status": { "type": "integer", "example": 409 }, "code": { "type": "string", "enum": [ "conflict" ] }, "message": { "type": "string", "enum": [ "resource already exists" ] } } } } } } } } } } }, "/custom/locations/{location_uuid}": { "get": { "summary": "Get Location", "description": "Retrieve data on a specific location.\n", "operationId": "getCustomLocation", "tags": [ "Locations" ], "parameters": [ { "name": "location_uuid", "in": "path", "required": true, "description": "The UUID of the target location.", "schema": { "type": "string", "format": "uuid", "example": "34ecc98a-e49e-49e3-84f9-b0ab2ff00495" } } ], "responses": { "200": { "description": "Returns a single location", "content": { "application/json": { "schema": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid", "example": "f38b9fd5-1e28-4f6e-953c-1e1493b68e21", "description": "A UUID uniquely identifying this location" }, "name": { "type": [ "string", "null" ] }, "address": { "type": "string", "example": "185 Berry St # 130, San Francisco, CA 94107, US" }, "address_details": { "type": "object", "properties": { "street": { "type": "string", "example": "185 Berry St # 130" }, "address_line_1": { "type": "string", "example": "185 Berry St" }, "address_line_2": { "type": [ "string", "null" ], "example": "# 130" }, "city": { "type": "string", "example": "San Francisco" }, "state": { "type": "string", "example": "CA" }, "zip": { "type": "string", "example": 94107 }, "zip_suffix": { "type": [ "string", "null" ], "example": 1234 } } }, "latitude": { "type": "number", "example": 37.7765973 }, "longitude": { "type": "number", "example": -122.3919488 }, "google_maps_link": { "type": "string", "format": "url", "example": "https://www.google.com/maps/@37.7765973-122.3919488?q=185%20Berry%20St%20%23%20130%2C%20SF%2C%20CA%2094107%2C%20US" }, "phone_numbers": { "type": "array", "items": { "type": "object", "properties": { "phone": { "type": "string", "example": 4155146410 }, "details": { "type": "string", "example": "primary" } } } }, "faxes": { "type": "array", "description": "Fax numbers associated with this location.\n\nThis property only appears for customers purchasing fax data. If you would like this property and are not receiving it, please reach out to support.\n", "items": { "type": "object", "properties": { "fax": { "type": "string", "example": 2121234567 }, "details": { "type": "string", "example": "secondary" }, "confidence": { "type": "integer", "example": 3, "description": "Note, this is a premium field and may not be enabled in your API index. Please reach out to H1 Support (support@h1.co) for additional information" } } } }, "confidence": { "type": [ "integer", "null" ], "example": 2, "description": "Each location contains a confidence score. This score indicates the probability of the given provider practicing at said location with the included contact information\n\nThis field will only be populated for Ribbon-provided locations. Locations you create yourself will have a confidence score of `null`.\n" }, "tier": { "type": [ "integer", "null" ], "enum": [ 1, 2, 3, null ], "example": 1, "description": "Quality tier of the location, derived from the linked organization's hco_research flags.\n\n * `1` - High-confidence facility (linked org has `hco_research_high = true`)\n * `2` - Medium-confidence facility (linked org has `hco_research_medium = true`)\n * `3` - Low-confidence facility (linked org has `hco_research_low = true`)\n * `null` - Tier could not be derived because none of the hco_research flags are true, the location has no linked organization, or it is linked to multiple organizations.\n\nLocations with `tier = null` are excluded when filtering with the `tier` query parameter.\n" }, "insurances": { "type": "array", "items": { "$ref": "#/paths/~1custom~1insurances/post/requestBody/content/application~1json/schema" }, "description": "List of insurances the accepted at this location" }, "tins": { "type": "array", "items": { "type": "string" }, "description": "Array of strings of standard 9-digit identification code(s) used by the IRS for business entities and used for contracting and paying provider/facility claims.\n" }, "npis": { "type": "array", "items": { "type": "string" }, "description": "Array of NPI numbers associated with this location." }, "provider_count": { "type": "integer", "example": 12, "description": "Number of unique providers (by NPI) associated with this location." }, "location_types": { "type": "array", "items": { "type": "string" }, "description": "Array of location types associated with this location." }, "ultimate_parent": { "type": [ "object", "null" ], "properties": { "id": { "type": "string", "example": "5401", "description": "The ID of the ultimate parent organization" }, "name": { "type": "string", "example": "Mount Sinai Health System", "description": "The name of the ultimate parent organization" } }, "description": "The ultimate parent organization of this location, if any" } } } } } }, "404": { "description": "The given location UUID cannot be found", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1tin~1%7Btin_id%7D/get/responses/404/content/application~1json/schema" } } } } } }, "put": { "summary": "Add or Edit Location Fields", "description": "Edit all fields that do not fall under `insurances`, `google_maps_link`, `latitude`, or `longitude`. You may also add new fields or remove existing fields.\n", "operationId": "putCustomLocation", "tags": [ "Locations" ], "parameters": [ { "$ref": "#/paths/~1custom~1locations~1%7Blocation_uuid%7D/get/parameters/0" } ], "requestBody": { "required": true, "description": "A JSON object mapping the name of the field to update to its new value", "content": { "application/json": { "schema": { "type": "object", "properties": { "remove_fields": { "type": "array", "items": { "type": "string" }, "description": "An optional list of custom fields name to remove from the location" } }, "additionalProperties": { "type": [ "string", "integer", "boolean", "null" ] }, "example": { "location_types": "Imaging Center", "priority_flag": true } } } } }, "responses": { "200": { "description": "The specified fields were successfully updated or added", "content": { "application/json": { "schema": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/paths/~1custom~1locations~1%7Blocation_uuid%7D/put/requestBody/content/application~1json/schema" } } } } } }, "400": { "description": "This request attempted to update fields which cannot be customized or attempted to set a location_type value which does not exist.", "content": { "application/json": { "schema": { "$ref": "#/paths/~1network_analysis/get/responses/400/content/application~1json/schema" } } } }, "404": { "description": "The given location UUID cannot be found", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1tin~1%7Btin_id%7D/get/responses/404/content/application~1json/schema" } } } } } }, "delete": { "summary": "Delete Location", "description": "Delete a location.\n", "operationId": "deleteCustomLocation", "tags": [ "Locations" ], "parameters": [ { "$ref": "#/paths/~1custom~1locations~1%7Blocation_uuid%7D/get/parameters/0" } ], "responses": { "204": { "description": "Location was successfully deleted" }, "404": { "description": "The given location UUID cannot be found", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1tin~1%7Btin_id%7D/get/responses/404/content/application~1json/schema" } } } } } } }, "/custom/locations/{location_uuid}/insurances": { "put": { "summary": "Add Or Remove Location Insurances", "description": "Add or remove insurances from a location using our standard insurance UUIDs.\n", "operationId": "putCustomLocationInsurances", "tags": [ "Locations" ], "parameters": [ { "$ref": "#/paths/~1custom~1locations~1%7Blocation_uuid%7D/get/parameters/0" } ], "requestBody": { "required": true, "description": "A set of instructions for how to update the location's insurances.", "content": { "application/json": { "schema": { "type": "object", "properties": { "add": { "type": "array", "items": { "type": "string", "format": "uuid", "example": "003aa14f-31ed-4c20-8888-07055d69afb6" }, "description": "A list of UUIDs to add to this location's set.", "example": [ "003aa14f-31ed-4c20-8888-07055d69afb6" ] }, "remove": { "type": "array", "items": { "type": "string", "format": "uuid", "example": "000914b4-d165-4343-bd17-0054505faaa5" }, "description": "A list of UUIDs to remove to this location's set.", "example": [ "000914b4-d165-4343-bd17-0054505faaa5" ] }, "override": { "type": "array", "items": { "type": "string", "format": "uuid", "example": "000914b4-d165-4343-bd17-0054505faaa5" }, "description": "A list of UUIDs to remove to completely replace this location's set with.\nNot supported in combination with either `add` or `remove`." } }, "example": { "add": [ "003aa14f-31ed-4c20-8888-07055d69afb6" ], "remove": [ "000914b4-d165-4343-bd17-0054505faaa5" ] } } } } }, "responses": { "200": { "description": "The insurances list was successfully modified.", "content": { "application/json": { "schema": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/paths/~1custom~1locations~1%7Blocation_uuid%7D~1insurances/put/requestBody/content/application~1json/schema" } } } } } }, "400": { "description": "This request attempted to use fields which are not supported, or attempted to use invalid value type.", "content": { "application/json": { "schema": { "$ref": "#/paths/~1network_analysis/get/responses/400/content/application~1json/schema" } } } }, "404": { "description": "The given location UUID cannot be found, or NPI in request path is not in custom provider directory.", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1tin~1%7Btin_id%7D/get/responses/404/content/application~1json/schema" } } } } } } }, "/custom/locations/{location_uuid}/organizations": { "put": { "summary": "Add Or Remove Location Organizations", "description": "Add or remove organizations from a location using our standard organization UUIDs.\n", "operationId": "putCustomLocationOrganizations", "tags": [ "Locations" ], "parameters": [ { "$ref": "#/paths/~1custom~1locations~1%7Blocation_uuid%7D/get/parameters/0" } ], "requestBody": { "required": true, "description": "A set of instructions for how to update the location's organizations.", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1locations~1%7Blocation_uuid%7D~1insurances/put/requestBody/content/application~1json/schema" } } } }, "responses": { "200": { "description": "The organizations list was successfully modified.", "content": { "application/json": { "schema": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/paths/~1custom~1locations~1%7Blocation_uuid%7D~1insurances/put/requestBody/content/application~1json/schema" } } } } } }, "400": { "description": "This request attempted to use fields which are not supported, or attempted to use invalid value type.", "content": { "application/json": { "schema": { "$ref": "#/paths/~1network_analysis/get/responses/400/content/application~1json/schema" } } } }, "404": { "description": "The given location UUID cannot be found, or NPI in request path is not in custom provider directory.", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1tin~1%7Btin_id%7D/get/responses/404/content/application~1json/schema" } } } } } } }, "/custom/locations/{location_uuid}/clinical_areas": { "put": { "summary": "Add Or Remove Location Clinical Areas", "description": "Add or remove clinical areas from a location using our standard clinical area UUIDs.\n", "operationId": "putCustomLocationClinicalAreas", "tags": [ "Locations" ], "parameters": [ { "$ref": "#/paths/~1custom~1locations~1%7Blocation_uuid%7D/get/parameters/0" } ], "requestBody": { "required": true, "description": "A set of instructions for how to update the location's clinical areas.", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1locations~1%7Blocation_uuid%7D~1insurances/put/requestBody/content/application~1json/schema" } } } }, "responses": { "200": { "description": "The clinical areas list was successfully modified.", "content": { "application/json": { "schema": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/paths/~1custom~1locations~1%7Blocation_uuid%7D~1insurances/put/requestBody/content/application~1json/schema" } } } } } }, "400": { "description": "This request attempted to use fields which are not supported, or attempted to use invalid value type.", "content": { "application/json": { "schema": { "$ref": "#/paths/~1network_analysis/get/responses/400/content/application~1json/schema" } } } }, "404": { "description": "The given location UUID cannot be found, or NPI in request path is not in custom provider directory.", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1tin~1%7Btin_id%7D/get/responses/404/content/application~1json/schema" } } } } } } }, "/custom/locations/filters": { "get": { "summary": "Get Location Filters", "description": "Fetch all previously created custom filters for locations.\n", "operationId": "getCustomLocationFilters", "tags": [ "Filters" ], "responses": { "200": { "description": "Returns a list of location filters", "content": { "application/json": { "schema": { "type": "object", "required": [ "data" ], "properties": { "data": { "type": "array", "items": { "$ref": "#/paths/~1custom~1providers~1filters/post/responses/201/content/application~1json/schema/properties/data" } } } } } } } } }, "post": { "summary": "Create Location Filter", "description": "Create new filters to be used when searching for locations in the [Search Locations](./getcustomlocations) endpoint. \nYou can create filters for both Ribbon's existing data fields as well as any custom data fields you create.\n\n#### Example Use Case:\nLet's say you add a new field to a bunch of locations that match your use case, for instance `c_section_rate`. You could make this field searchable so that your search through [Search Locations](./getcustomlocations) when you pass through a certain parameter that specifies a maximum threshold.\n", "operationId": "createCustomLocationFilter", "tags": [ "Filters" ], "requestBody": { "required": true, "description": "The new filter to create", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1providers~1filters/post/requestBody/content/application~1json/schema" } } } }, "responses": { "201": { "description": "The specified filter was successfully created", "content": { "application/json": { "schema": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/paths/~1custom~1providers~1filters/post/responses/201/content/application~1json/schema/properties/data" } } } } } }, "400": { "description": "The filter you attempted to create was malformed", "content": { "application/json": { "schema": { "$ref": "#/paths/~1network_analysis/get/responses/400/content/application~1json/schema" } } } }, "409": { "description": "A filter with the given `parameter` name already exists", "content": { "application/json": { "schema": { "$ref": "#/paths/~1network_analysis/get/responses/400/content/application~1json/schema" } } } } } } }, "/custom/locations/filters/{filter_uuid}": { "put": { "summary": "Edit Location Filter", "description": "Edit any of the fields in a custom location filter you have already created.\n", "operationId": "editCustomLocationFilter", "tags": [ "Filters" ], "parameters": [ { "name": "filter_uuid", "in": "path", "required": true, "description": "The UUID of the filter you want to edit.", "schema": { "type": "string", "format": "uuid", "example": "b5458763-968e-4690-bc70-f29d3a7459a9" } } ], "requestBody": { "required": true, "description": "A JSON object mapping the name of the field to update to its new value.", "content": { "application/json": { "schema": { "type": "object", "required": [ "parameter", "field", "value_type", "filter_type" ], "properties": { "parameter": { "type": "string", "description": "The name of filter which will be used when applying to a search\n", "example": "location_types_filter" }, "field": { "type": "string", "description": "The name of the field that the filter will be applied to\n\nYou can specify nested fields by placing a `.` between each level within the JSON object. For example, `address_details.state`\n", "example": "location_types" }, "value_type": { "type": "string", "enum": [ "string", "float", "integer", "boolean", "list" ], "description": "The data type of the value passed into this filter", "example": "list" }, "filter_type": { "type": "string", "enum": [ "less_than", "greater_than", "equals", "contains", "boost", "equals_any", "contains_any", "fuzzy" ], "description": "The type of comparison that will occur between the value passed into this filter and the field specified in the `field` parameter\n\nNote that `boost` filters have several limitations:\n- A Boost Filter cannot use the following `value_type`s: `float`\n- If a Boost Filter's `field` targets something that is within a list of objects, such as \u2018educations.education.name\u2019, we will not reorder the list to bring these items to the front. We will merely boost records where there is an entry in the list that matches the filter, wherever it is.\n - There is one exception to this: `locations`. If you search for a provider and boost fields nested within the `locations` list, we will reorder the locations to put matching locations first.\n", "example": "contains_any" } } } } } }, "responses": { "200": { "description": "The specified filter was successfully updated.", "content": { "application/json": { "schema": { "type": "object", "required": [ "data" ], "properties": { "data": { "type": "object", "required": [ "uuid", "filter" ], "properties": { "uuid": { "type": "string", "format": "uuid", "description": "A UUID uniquely identifying this filter", "example": "9da04268-65e4-4422-a095-98208695b8b9" }, "filter": { "$ref": "#/paths/~1custom~1locations~1filters~1%7Bfilter_uuid%7D/put/requestBody/content/application~1json/schema" } } } } } } } }, "400": { "description": "The filter updates you are trying to make are invalid or malformed.", "content": { "application/json": { "schema": { "$ref": "#/paths/~1network_analysis/get/responses/400/content/application~1json/schema" } } } }, "404": { "description": "The given filter UUID cannot be found.", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1tin~1%7Btin_id%7D/get/responses/404/content/application~1json/schema" } } } }, "409": { "description": "A filter with the given parameter already exists.", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1locations/post/responses/409/content/application~1json/schema" } } } } } }, "delete": { "summary": "Delete Location Filter", "description": "Delete a location filter.\n", "operationId": "deleteCustomLocationFilter", "tags": [ "Filters" ], "parameters": [ { "name": "filter_uuid", "in": "path", "required": true, "description": "The UUID of the filter you want to delete.", "schema": { "type": "string", "format": "uuid", "example": "b5458763-968e-4690-bc70-f29d3a7459a9" } } ], "responses": { "204": { "description": "Filter was successfully deleted" }, "404": { "description": "The given filter UUID cannot be found", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1tin~1%7Btin_id%7D/get/responses/404/content/application~1json/schema" } } } } } } }, "/custom/insurances": { "get": { "summary": "Search Insurances", "description": "Search and list insurances that exist within the Ribbon API.\n", "operationId": "getInsurances", "tags": [ "Reference Endpoints" ], "parameters": [ { "name": "Insurance Search Parameters", "in": "query", "required": false, "description": "Search parameters for the insurances reference endpoint.", "explode": true, "schema": { "type": "object", "properties": { "search": { "type": "string", "description": "String input that fuzzy searches across `display_name`, `carrier_name`, and `uuid`.\n", "example": "Aetna" }, "carrier_association": { "type": "string", "description": "Comma separated list of the carrier association of insurances you are searching for.\n\nNote: This input must be an exact string match to work\n", "example": "BCBS Association" }, "carrier_brand": { "type": "string", "description": "Comma separated list of the carrier brand of insurances you are searching for.\n\nNote: This input must be an exact string match to work\n", "example": "BCBS" }, "carrier_name": { "type": "string", "description": "Comma separated list of the carrier name of insurances you are searching for.\n\nNote: This input must be an exact string match to work\n", "example": "Blue Cross Blue Shield of Illinois" }, "state": { "type": "string", "description": "Two letter abbreviated state code of insurances you are searching for.", "example": "NY" }, "plan_name": { "type": "string", "description": "Exact string input of the plan name of insurances you are searching for.", "example": "BlueCare Direct" }, "plan_type": { "type": "string", "description": "Exact string input of the plan type of insurances you are searching for.", "example": "PPO" }, "display_name": { "type": "string", "description": "Exact string input of the display name of insurances you are searching for.", "example": "Blue Cross Blue Shield of Illinois - BlueCare Direct - HMO" }, "category": { "type": "string", "description": "Comma separated list of the category of insurances you are searching for.\n\nNote: This input must be an exact string match to work\n", "example": "Medicare Advantage" }, "_excl_category": { "type": "string", "description": "Comma separated list of the category of insurances you wish to exclude.\n\nNote: This input must be an exact string match to work\n", "example": "Medicare Advantage" }, "codes": { "type": "string", "description": "Single code input to search for plans with an exact string match within the codes field.", "example": "H9572-001" }, "partial_codes": { "type": "string", "description": "Partial string input to match to the codes field.\nFor Medicare Advantage plans this is a contract ID (i.e. H9572). For Federal or State Exchange plans this is the first 10 digits of the HIOS ID (i.e. 36096il100)\n\nNote: This parameter can only be used if the `category` param is also utilized with a single category value.\n", "example": "H9572" } } } } ], "responses": { "200": { "description": "Insurances returned from a valid request", "content": { "application/json": { "schema": { "type": "object", "required": [ "count", "next", "previous", "results" ], "properties": { "count": { "type": "integer", "description": "The total number of results matched, across all pages.", "example": 141 }, "next": { "type": [ "string", "null" ], "example": "https://api.ribbonhealth.com/v1/custom/insurances?search=aetna&page=3" }, "previous": { "type": [ "string", "null" ], "example": "https://api.ribbonhealth.com/v1/custom/insurances?search=aetna&page=1" }, "results": { "type": "array", "items": { "$ref": "#/paths/~1custom~1insurances/post/requestBody/content/application~1json/schema" } } } } } } }, "400": { "description": "A failure due to a malformed request", "content": { "application/json": { "schema": { "$ref": "#/paths/~1network_analysis/get/responses/400/content/application~1json/schema" } } } } } }, "post": { "summary": "Create Insurance", "description": "Create a insurance with desired field values.\n", "operationId": "postCustomInsurance", "tags": [ "Reference Endpoints" ], "requestBody": { "required": true, "description": "A JSON object mapping the name of the field to update to its new value", "content": { "application/json": { "schema": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid", "example": "d8addf29-1054-4ccb-b179-dda65f7fefdd", "description": "A UUID uniquely identifying this insurance" }, "carrier_association": { "type": [ "string", "null" ], "example": "Aetna" }, "carrier_brand": { "type": [ "string", "null" ], "example": "Aetna" }, "carrier_name": { "type": [ "string", "null" ], "example": "Aetna" }, "state": { "type": [ "string", "null" ], "example": "NY" }, "plan_name": { "type": [ "string", "null" ], "example": "Aetna HealthFund Open Choice" }, "plan_type": { "type": [ "string", "null" ], "example": "PPO" }, "metal_level": { "type": [ "string", "null" ] }, "display_name": { "type": "string", "example": "Aetna - HealthFund Open Choice - PPO" }, "network": { "type": [ "string", "null" ] }, "confidence": { "type": [ "integer", "null" ], "example": 4 }, "category": { "type": [ "string", "null" ] }, "codes": { "type": [ "array" ], "items": { "type": "string" } } } } } } }, "responses": { "201": { "description": "Insurance was successfully created.", "content": { "application/json": { "schema": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/paths/~1custom~1insurances/post/requestBody/content/application~1json/schema" } } } } } }, "400": { "description": "This request attempted to update with invalid schema or was missing required fields.", "content": { "application/json": { "schema": { "$ref": "#/paths/~1network_analysis/get/responses/400/content/application~1json/schema" } } } }, "409": { "description": "Insurance object with given fields already exists.", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1locations/post/responses/409/content/application~1json/schema" } } } } } } }, "/custom/insurances/{insurance_uuid}": { "get": { "summary": "Get Insurance", "description": "Retrieve data on a specific insurance.\n", "operationId": "getCustomInsurance", "tags": [ "Reference Endpoints" ], "parameters": [ { "name": "insurance_uuid", "in": "path", "required": true, "description": "The UUID of the target insurance.", "schema": { "type": "string", "format": "uuid", "example": "12403618-49d5-43ee-99ad-5e99194fe05c" } } ], "responses": { "200": { "description": "Returns a single insurance", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1insurances/post/requestBody/content/application~1json/schema" } } } }, "404": { "description": "The given insurance UUID cannot be found", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1tin~1%7Btin_id%7D/get/responses/404/content/application~1json/schema" } } } } } }, "put": { "summary": "Edit Insurance Fields", "description": "Edit fields of a custom created insurance or a Ribbon created insurance.\n", "operationId": "putCustomInsurance", "tags": [ "Reference Endpoints" ], "parameters": [ { "$ref": "#/paths/~1custom~1insurances~1%7Binsurance_uuid%7D/get/parameters/0" } ], "requestBody": { "required": true, "description": "A JSON object mapping the name of the field to update to its new value", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1insurances/post/requestBody/content/application~1json/schema" } } } }, "responses": { "200": { "description": "The insurance object was successfully updated.", "content": { "application/json": { "schema": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/paths/~1custom~1insurances/post/requestBody/content/application~1json/schema" } } } } } }, "400": { "description": "This request attempted to update with invalid schema or was missing required fields.", "content": { "application/json": { "schema": { "$ref": "#/paths/~1network_analysis/get/responses/400/content/application~1json/schema" } } } }, "404": { "description": "The given insurance UUID cannot be found", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1tin~1%7Btin_id%7D/get/responses/404/content/application~1json/schema" } } } }, "409": { "description": "Insurance object with given fields already exists.", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1locations/post/responses/409/content/application~1json/schema" } } } } } }, "delete": { "summary": "Delete Insurance", "description": "Delete an insurance.\n\nNote: If you've added this insurance to doctors, you are deleting all instances of this UUID, and Ribbon will not be able to regenerate them.\n", "operationId": "deleteCustomInsurance", "tags": [ "Reference Endpoints" ], "parameters": [ { "$ref": "#/paths/~1custom~1insurances~1%7Binsurance_uuid%7D/get/parameters/0" } ], "responses": { "204": { "description": "Insurance was successfully deleted" }, "404": { "description": "The given insurance UUID cannot be found", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1tin~1%7Btin_id%7D/get/responses/404/content/application~1json/schema" } } } } } } }, "/custom/specialties": { "get": { "summary": "Search Specialties", "description": "Search and list specialties that exist within the Ribbon API.\n", "operationId": "getSpecialties", "tags": [ "Reference Endpoints" ], "parameters": [ { "name": "Specialty Search Parameters", "in": "query", "required": false, "description": "Search parameters for the specialty reference endpoint.", "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." }, "search": { "type": "string", "description": "String input that fuzzy searches against key fields within each specialties object to return the most relevant options.\n", "example": "Gastroenterology" }, "provider_type": { "type": "string", "description": "'Type' of provider specialty to filter results on. Here are a few key provider types:\n- Doctor\n- Nursing\n- Dental Providers\n", "example": "Doctor" } } } } ], "responses": { "200": { "description": "Specialties returned from a valid request", "content": { "application/json": { "schema": { "type": "object", "required": [ "count", "next", "previous", "results" ], "properties": { "count": { "type": "integer", "description": "The total number of results matched, across all pages.", "example": 141 }, "next": { "type": [ "string", "null" ], "example": "https://api.ribbonhealth.com/v1/custom/specialties?page=3" }, "previous": { "type": [ "string", "null" ], "example": "https://api.ribbonhealth.com/v1/custom/specialties?page=1" }, "results": { "type": "array", "items": { "$ref": "#/paths/~1custom~1specialties~1%7Bspecialty_uuid%7D/get/responses/200/content/application~1json/schema" } } } } } } }, "403": { "description": "Trial accounts do not have access to custom specialties", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1tin/get/responses/403/content/application~1json/schema" } } } } } }, "post": { "summary": "Create Specialty", "description": "Create a custom specialty with desired field values.\n", "operationId": "postCustomSpecialty", "tags": [ "Reference Endpoints" ], "requestBody": { "required": true, "description": "A JSON object mapping the name of the field to update to its new value", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/paths/~1custom~1specialties~1%7Bspecialty_uuid%7D/get/responses/200/content/application~1json/schema" } ], "required": [ "display", "board_specialty", "board_sub_specialty", "non_md_specialty", "non_md_sub_specialty", "provider_name", "colloquial", "provider_type" ] } } } }, "responses": { "201": { "description": "Specialty was successfully created.", "content": { "application/json": { "schema": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/paths/~1custom~1specialties~1%7Bspecialty_uuid%7D/get/responses/200/content/application~1json/schema" } } } } } }, "400": { "description": "This request attempted to update with invalid schema or was missing required fields.", "content": { "application/json": { "schema": { "$ref": "#/paths/~1network_analysis/get/responses/400/content/application~1json/schema" } } } }, "409": { "description": "Specialty object with given fields already exists.", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1locations/post/responses/409/content/application~1json/schema" } } } } } } }, "/custom/specialties/{specialty_uuid}": { "get": { "summary": "Get Specialty", "description": "Retrieve data on a specific specialty.\n", "operationId": "getCustomSpecialty", "tags": [ "Reference Endpoints" ], "parameters": [ { "name": "specialty_uuid", "in": "path", "required": true, "description": "The UUID of the target specialty.", "schema": { "type": "string", "format": "uuid", "example": "a77d23ba-29f1-4afd-a0c4-62d2f0444cf7" } } ], "responses": { "200": { "description": "Returns a single specialty", "content": { "application/json": { "schema": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid", "example": "18d8ad26-7e5f-44ac-9afa-966efb375344", "description": "A UUID uniquely identifying this specialty" }, "taxonomy_code": { "type": [ "string" ], "example": "207Q00000X" }, "board_specialty": { "type": [ "string", "null" ], "example": "Family Medicine" }, "board_sub_specialty": { "type": [ "string", "null" ] }, "non_md_specialty": { "type": [ "string", "null" ] }, "non_md_sub_specialty": { "type": [ "string", "null" ], "example": "None" }, "provider_name": { "type": [ "string", "null" ], "example": "Family Medicine Doctor" }, "colloquial": { "type": [ "string", "null" ] }, "taxonomy_1": { "type": [ "string", "null" ], "example": "Allopathic & Osteopathic Physicians" }, "taxonomy_2": { "type": [ "string", "null" ], "example": "Family Medicine" }, "taxonomy_3": { "type": [ "string", "null" ] }, "display": { "type": "string", "example": "Family Medicine" }, "provider_type": { "type": "string", "example": "Doctor" }, "is_primary": { "type": "boolean", "example": true, "description": "Whether or not a specialty is a provider's primary specialty" } } } } } }, "404": { "description": "The given specialty UUID cannot be found", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1tin~1%7Btin_id%7D/get/responses/404/content/application~1json/schema" } } } } } }, "put": { "summary": "Edit Specialty Fields", "description": "Edit fields of a custom created specialty.\n\nNote: You cannot edit a Ribbon created specialty.\n", "operationId": "putCustomSpecialty", "tags": [ "Reference Endpoints" ], "parameters": [ { "$ref": "#/paths/~1custom~1specialties~1%7Bspecialty_uuid%7D/get/parameters/0" } ], "requestBody": { "required": true, "description": "A JSON object mapping the name of the field to update to its new value", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1specialties/post/requestBody/content/application~1json/schema" } } } }, "responses": { "200": { "description": "The specialty object was successfully updated.", "content": { "application/json": { "schema": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/paths/~1custom~1specialties~1%7Bspecialty_uuid%7D/get/responses/200/content/application~1json/schema" } } } } } }, "400": { "description": "This request attempted to update with invalid schema or was missing required fields.", "content": { "application/json": { "schema": { "$ref": "#/paths/~1network_analysis/get/responses/400/content/application~1json/schema" } } } }, "404": { "description": "The given specialty UUID cannot be found", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1tin~1%7Btin_id%7D/get/responses/404/content/application~1json/schema" } } } }, "409": { "description": "Specialty object with given fields already exists.", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1locations/post/responses/409/content/application~1json/schema" } } } } } }, "delete": { "summary": "Delete Specialty", "description": "Delete a specialty.\n\nNote: You cannot delete a Ribbon created specialty.\n", "operationId": "deleteCustomSpecialty", "tags": [ "Reference Endpoints" ], "parameters": [ { "$ref": "#/paths/~1custom~1specialties~1%7Bspecialty_uuid%7D/get/parameters/0" } ], "responses": { "204": { "description": "Specialty was successfully deleted" }, "404": { "description": "The given specialty UUID cannot be found", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1tin~1%7Btin_id%7D/get/responses/404/content/application~1json/schema" } } } } } } }, "/custom/clinical_areas": { "get": { "summary": "Search Clinical Areas", "description": "Returns clinical areas that exist within the Ribbon API.\n", "operationId": "getClinicalAreas", "tags": [ "Focus Area Endpoints" ], "parameters": [ { "name": "Clinical Area Search Parameters", "in": "query", "required": false, "description": "Search parameters for the clinical area endpoint.", "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." }, "search": { "type": "string", "example": "X-ray", "description": "String input that fuzzy searches against key fields within each clinical area object to return the most relevant options.\n" }, "clinical_area": { "type": "string", "example": "Nutrition", "description": "String input that fuzzy searches on `display` field." }, "_excl_clinical_area_ids": { "type": "string", "example": "ffce41b2-aba4-4202-beba-6aa9dc51ef37,fe7d808b-5f53-4024-af9d-2662515bcd83", "description": "Comma separated list of clinical area UUIDs to exclude from search results." }, "specialty_ids": { "type": "string", "example": "fcc9a22c-7a0f-4405-b0c9-c5f8ad83b93e,8b5d3998-d7e2-4b9e-91d1-17c19cd089f5", "description": "Comma separated list of specialty UUIDs." }, "condition": { "type": "string", "example": "Sleep Disorders", "description": "String input that fuzzy searches on `condition.display` field." }, "condition_ids": { "type": "string", "example": "45c9a22c-7a0f-4405-b0c9-c5f8ad83ba32,219d3998-d7e2-4b9e-91d1-17c19cd0bbc2", "description": "Comma separated list of condition UUIDs." }, "treatment": { "type": "string", "example": "ACL Surgery", "description": "String input that fuzzy searches on `treatment.display` field." }, "treatment_ids": { "type": "string", "example": "bb2ca22c-7a0f-4405-b0c9-c5f8ad839898,2ce33998-d7e2-4b9e-91d1-17c19cd06012", "description": "Comma separated list of treatment UUIDs." }, "type": { "type": "string", "example": "providers", "description": "String input of the type of clinical areas to return. Options for input are either `providers` or `locations`.\nNote: Defaults to returning all clinical areas of any type.\n" } } } } ], "responses": { "200": { "description": "Clinical areas returned from a valid request", "content": { "application/json": { "schema": { "type": "object", "required": [ "count", "next", "previous", "parameters", "results" ], "properties": { "count": { "type": "integer", "description": "The total number of results matched, across all pages.", "example": 107 }, "next": { "type": [ "string", "null" ], "example": "https://api.ribbonhealth.com/v1/custom/clinical_areas?page=3" }, "previous": { "type": [ "string", "null" ], "example": "https://api.ribbonhealth.com/v1/custom/clinical_areas?page=1" }, "parameters": [ { "$ref": "#/paths/~1custom~1clinical_areas/get/parameters/0" } ], "results": { "type": "array", "items": { "$ref": "#/paths/~1custom~1clinical_areas~1%7Bclinical_area_uuid%7D/get/responses/200/content/application~1json/schema" } } } } } } }, "400": { "description": "Each request can only perform one search", "content": { "application/json": { "schema": { "$ref": "#/paths/~1network_analysis/get/responses/400/content/application~1json/schema" } } } } } } }, "/custom/clinical_areas/{clinical_area_uuid}": { "get": { "summary": "Get Clinical Area", "description": "Retrieve data on a specific clinical area.\n", "operationId": "getClinicalArea", "tags": [ "Focus Area Endpoints" ], "parameters": [ { "name": "clinical_area_uuid", "in": "path", "required": true, "description": "The UUID of the target clinical area.", "schema": { "type": "string", "format": "uuid", "example": "f352b596-dfb0-494f-9a03-224794f5d182" } } ], "responses": { "200": { "description": "Returns a single clinical area", "content": { "application/json": { "schema": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid", "example": "f352b596-dfb0-494f-9a03-224794f5d182", "description": "A UUID uniquely identifying this clinical area" }, "display": { "type": "string", "example": "Substance Disorders (e.g. Opioid, Cocaine, Alcohol)" }, "types": { "type": "array", "items": { "type": "string", "enum": [ "providers", "locations" ] } }, "conditions": { "type": "array", "items": { "$ref": "#/paths/~1custom~1conditions~1%7Bcondition_uuid%7D/get/responses/200/content/application~1json/schema" } }, "treatments": { "type": "array", "items": { "$ref": "#/paths/~1custom~1treatments~1%7Btreatment_uuid%7D/get/responses/200/content/application~1json/schema" } }, "specialties": { "type": "array", "items": { "$ref": "#/paths/~1custom~1specialties~1%7Bspecialty_uuid%7D/get/responses/200/content/application~1json/schema" } } } } } } }, "404": { "description": "The given clinical area UUID cannot be found", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1tin~1%7Btin_id%7D/get/responses/404/content/application~1json/schema" } } } } } } }, "/custom/conditions": { "get": { "summary": "Search Conditions", "description": "Returns conditions that exist within the Ribbon API.\n", "operationId": "getConditions", "tags": [ "Focus Area Endpoints" ], "parameters": [ { "name": "Condition Search Parameters", "in": "query", "required": false, "description": "Search parameters for the condition endpoint.", "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." }, "search": { "type": "string", "description": "String input that fuzzy searches against key fields within each condition object to return the most relevant options.\n", "example": "depression" }, "_excl_condition_ids": { "type": "string", "example": "2938baf9-f064-44d6-8251-6e4b9fbb6fd2,c9d21735-8a78-45fe-982b-d216cb94beb7", "description": "Comma separated list of condition UUIDs to exclude from search results." }, "specialty_ids": { "type": "string", "example": "fcc9a22c-7a0f-4405-b0c9-c5f8ad83b93e,8b5d3998-d7e2-4b9e-91d1-17c19cd089f5", "description": "Comma separated list of specialty UUIDs." }, "module": { "type": "string", "example": "focus_areas", "description": "String input of the type of clinical areas to return. Options for input are either `focus_areas` or `condition_cost_estimate`.\nNote: This input must be an exact string match to work\n" } } } } ], "responses": { "200": { "description": "Conditions returned from a valid request", "content": { "application/json": { "schema": { "type": "object", "required": [ "count", "next", "previous", "parameters", "results" ], "properties": { "count": { "type": "integer", "description": "The total number of results matched, across all pages.", "example": 480 }, "next": { "type": [ "string", "null" ], "example": "https://api.ribbonhealth.com/v1/custom/conditions?page=3" }, "previous": { "type": [ "string", "null" ], "example": "https://api.ribbonhealth.com/v1/custom/conditions?page=1" }, "parameters": [ { "$ref": "#/paths/~1custom~1conditions/get/parameters/0" } ], "results": { "type": "array", "items": { "$ref": "#/paths/~1custom~1conditions~1%7Bcondition_uuid%7D/get/responses/200/content/application~1json/schema" } } } } } } }, "400": { "description": "Module does not exist", "content": { "application/json": { "schema": { "$ref": "#/paths/~1network_analysis/get/responses/400/content/application~1json/schema" } } } } } } }, "/custom/conditions/{condition_uuid}": { "get": { "summary": "Get Condition", "description": "Retrieve data on a specific condition.\n", "operationId": "getCondition", "tags": [ "Focus Area Endpoints" ], "parameters": [ { "name": "condition_uuid", "in": "path", "required": true, "description": "The UUID of the target condition.", "schema": { "type": "string", "format": "uuid", "example": "fd7c10f3-fbec-482a-929b-be94a8bb3bc1" } } ], "responses": { "200": { "description": "Returns a single condition", "content": { "application/json": { "schema": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid", "example": "99f4762e-c4c2-4d1d-983a-2b8b303e691d", "description": "A UUID uniquely identifying this condition" }, "display": { "type": "string", "example": "Chronic Depression" }, "types": { "type": "array", "items": { "type": "string", "enum": [ "focus_areas", "condition_cost_estimate" ] } }, "specialties": { "type": "array", "items": { "$ref": "#/paths/~1custom~1specialties~1%7Bspecialty_uuid%7D/get/responses/200/content/application~1json/schema" } }, "modules": { "type": "array", "items": { "type": "string" } } } } } } }, "404": { "description": "The given condition UUID cannot be found", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1tin~1%7Btin_id%7D/get/responses/404/content/application~1json/schema" } } } } } } }, "/custom/treatments": { "get": { "summary": "Search Treatments", "description": "Returns treatments that exist within the Ribbon API.\n", "operationId": "getTreatments", "tags": [ "Focus Area Endpoints" ], "parameters": [ { "name": "Treatment Search Parameters", "in": "query", "required": false, "description": "Search parameters for the treatment endpoint.", "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." }, "search": { "type": "string", "description": "String input that fuzzy searches against key fields within each treatment object to return the most relevant options.\n", "example": "Ankle X-Ray" }, "_excl_treatment_ids": { "type": "string", "example": "ffb31993-8265-45f6-98ac-18a495d614b5,ff36f4f1-7031-46b0-a297-e85b73aa8e90", "description": "Comma separated list of treatment UUIDs to exclude from search results." }, "specialty_ids": { "type": "string", "example": "fcc9a22c-7a0f-4405-b0c9-c5f8ad83b93e,8b5d3998-d7e2-4b9e-91d1-17c19cd089f5", "description": "Comma separated list of specialty UUIDs." }, "type": { "type": "string", "example": "providers", "description": "String input of the type of clinical areas to return. Options for input are either `providers` or `locations`.\nNote: Defaults to returning all clinical areas of any type.\n" } } } } ], "responses": { "200": { "description": "Treatments returned from a valid request", "content": { "application/json": { "schema": { "type": "object", "required": [ "count", "next", "previous", "parameters", "results" ], "properties": { "count": { "type": "integer", "description": "The total number of results matched, across all pages.", "example": 477 }, "next": { "type": [ "string", "null" ], "example": "https://api.ribbonhealth.com/v1/custom/treatments?page=3" }, "previous": { "type": [ "string", "null" ], "example": "https://api.ribbonhealth.com/v1/custom/treatments?page=1" }, "parameters": [ { "$ref": "#/paths/~1custom~1treatments/get/parameters/0" } ], "results": { "type": "array", "items": { "$ref": "#/paths/~1custom~1treatments~1%7Btreatment_uuid%7D/get/responses/200/content/application~1json/schema" } } } } } } } } } }, "/custom/treatments/{treatment_uuid}": { "get": { "summary": "Get Treatment", "description": "Retrieve data on a specific treatment.\n", "operationId": "getTreatment", "tags": [ "Focus Area Endpoints" ], "parameters": [ { "name": "treatment_uuid", "in": "path", "required": true, "description": "The UUID of the target treatment.", "schema": { "type": "string", "format": "uuid", "example": "88a70b34-d0a7-47e2-89ac-4fed203eca2f" } } ], "responses": { "200": { "description": "Returns a single treatment", "content": { "application/json": { "schema": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid", "example": "88a70b34-d0a7-47e2-89ac-4fed203eca2f", "description": "A UUID uniquely identifying this treatment" }, "display": { "type": "string", "example": "Knee Replacement" }, "types": { "type": "array", "items": { "type": "string", "enum": [ "providers", "locations" ] } }, "specialties": { "type": "array", "items": { "$ref": "#/paths/~1custom~1specialties~1%7Bspecialty_uuid%7D/get/responses/200/content/application~1json/schema" } } } } } } }, "404": { "description": "The given treatment UUID cannot be found", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1tin~1%7Btin_id%7D/get/responses/404/content/application~1json/schema" } } } } } } }, "/custom/organizations": { "get": { "summary": "Search Organizations", "description": "Search for different organizations.\n\n#### Example Use Case\nDisplay a map of all of all nearby health systems and their relevant information so that a patient can find care.\n", "operationId": "getOrganizations", "tags": [ "Organizations" ], "parameters": [ { "name": "address", "in": "query", "required": false, "description": "String input of an address that will be interpreted and geocoded in real time.", "schema": { "type": "string", "example": "New York, NY" } }, { "name": "name", "in": "query", "required": false, "description": "String input that is fuzzy matched to against the `organization.name` field.", "schema": { "type": "string", "example": "baptist" } }, { "name": "distance", "in": "query", "required": false, "description": "Constrains the search to within this many miles of the center point", "schema": { "type": "integer", "example": 10 } }, { "name": "location", "in": "query", "required": false, "description": "Latitude/longitude pair of coordinates in lieu of a string address.", "schema": { "type": "string", "example": "37.7489816,-122.4802092" } }, { "$ref": "#/paths/~1procedures/get/parameters/2" }, { "$ref": "#/paths/~1procedures/get/parameters/3" } ], "responses": { "200": { "description": "Specialties returned from a valid request", "content": { "application/json": { "schema": { "type": "object", "required": [ "parameters", "data" ], "properties": { "parameters": { "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." }, "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." }, "distance": { "type": "integer", "example": 10, "description": "The proximity radius of locations returned." }, "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." } } }, "address": { "type": [ "string", "null" ], "description": "String input of an address that will be interpreted and geocoded in real time.", "example": "Jacksonville, FL, USA" }, "name": { "type": "string", "description": "String input that is fuzzy matched to against the `organization.name` field.", "example": "baptist" } } }, "data": { "type": "array", "items": { "$ref": "#/paths/~1custom~1organizations~1%7Borganization_uuid%7D/get/responses/200/content/application~1json/schema" } } } } } } } } } }, "/custom/organizations/{organization_uuid}": { "get": { "summary": "Get Organization", "description": "Retrieve detailed information for any organization given its UUID\n", "operationId": "getOrganization", "tags": [ "Organizations" ], "parameters": [ { "name": "organization_uuid", "in": "path", "required": true, "description": "The UUID of the target organization.", "schema": { "type": "string", "format": "uuid", "example": "a1dbf998-a65b-4780-8361-648357785d96" } } ], "responses": { "200": { "description": "The requested organization is returned", "content": { "application/json": { "schema": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid", "example": "a1dbf998-a65b-4780-8361-648357785d96", "description": "A UUID uniquely identifying this organization" }, "name": { "type": "string", "example": "Baptist Health (Jacksonville)" }, "organization_types": { "type": "array", "items": { "type": "string", "enum": [ "Health System" ] }, "description": "The types of this organization. We currently only support `Health System` organizations, but plan to expand this in the future" }, "websites": { "type": "array", "items": { "type": "object", "properties": { "url": { "type": "string", "example": "https://www.baptistjax.com/" } } }, "description": "Website(s) of this organization" }, "ids": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "example": "5" }, "id_type": { "type": "string", "example": "AHA_ID" } } } }, "address": { "type": "string", "example": "841 Prudential Dr # 1601, Jacksonville, FL 32207, US" }, "address_details": { "type": "object", "properties": { "zip": { "type": "string", "example": "32207" }, "city": { "type": "string", "example": "Jacksonville" }, "state": { "type": "string", "example": "FL" }, "street": { "type": "string", "example": "841 Prudential Dr # 1601" }, "address_line_1": { "type": "string", "example": "841 Prudential Dr" }, "address_line_2": { "type": [ "string", "null" ], "example": "# 1601" } } }, "latitude": { "type": "number", "example": 30.3159499 }, "longitude": { "type": "number", "example": 81.6630919 }, "phone_numbers": { "type": "array", "items": { "type": "object", "properties": { "phone": { "type": "string", "example": "9042022000" }, "detail": { "type": "string", "example": "primary" } } } } } } } } }, "404": { "description": "The given UUID cannot be found", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1tin~1%7Btin_id%7D/get/responses/404/content/application~1json/schema" } } } } } } }, "/custom/tin": { "get": { "summary": "Search TINs", "description": "Search and list tins that exist within the Ribbon API.\n", "operationId": "getTins", "tags": [ "TINs" ], "parameters": [ { "name": "Tins Search Parameters", "in": "query", "required": false, "description": "Search parameters for the tin reference endpoint.", "explode": true, "schema": { "type": "object", "properties": { "search": { "type": "string", "description": "String input that fuzzy searches across tins, name, address, and legal_name.\n" }, "name": { "type": "string", "description": "The billing entity name that appears on claims data, or if available, the official legal name of the billing entity.\nString input that is fuzzy matched against the `name` field.\nNote: This parameter will not match with the `legal_name` field, only the `name` field.\n" }, "legal_name": { "type": "string", "description": "The legal name of the entity associated with the TIN.\nString input that is fuzzy matched against the `legal_name` field.\n" }, "tin_ids": { "type": "string", "description": "Comma separated list of TINs.\nNote: This parameter cannot be used in combination with any other parameters.\n" }, "has_tin": { "type": "boolean", "description": "Boolean input that applies to tin_confirmed field." }, "page": { "type": "integer", "description": "The page of the results which was returned." }, "page_size": { "type": "integer", "description": "How many results are in each page." } } } } ], "responses": { "200": { "description": "Tins returned from a valid request", "content": { "application/json": { "schema": { "type": "object", "required": [ "parameters", "tins" ], "properties": { "parameters": { "oneOf": [ { "type": "object", "properties": { "tin_ids": { "type": "string", "description": "Comma separated list of TINS." } } }, { "type": "object", "properties": { "search": { "type": "string", "description": "String input that fuzzy searches across TINs, names, address, and legal_name." }, "name": { "type": "string", "description": "The billing entity name that appears on claims data, or if available, the official legal name of the billing entity.\nString input that is fuzzy matched against the `name` field.\n" }, "legal_name": { "type": "string", "description": "The legal name of the entity associated with the TIN.\nString input that is fuzzy matched against the `legal_name` field.\n" }, "has_tin": { "type": "boolean", "description": "Boolean input that applies to tin_confirmed field." }, "page": { "type": "integer", "description": "The page of the results which was returned." }, "page_size": { "type": "integer", "description": "The number of results per page." } } } ] }, "tins": { "type": "array", "description": "array of returned TIN objects", "items": { "type": "object", "properties": { "tin": { "type": "string", "description": "Standard 9-digit identification code used by the IRS for business entities and used for contracting and paying provider/facility claims.\n" }, "name": { "type": "string", "description": "The billing entity name that appears on claims data, or if available, the official legal name of the billing entity.\n" }, "legal_name": { "type": "string", "description": "The legal name of the entity associated with the TIN." }, "address": { "type": "string", "description": "The address of the organization with the TIN. This could be the primary service location or billing location.\n" }, "tin_confirmed": { "type": "boolean", "description": "A yes/no field that assesses whether a TIN is likely to be valid or not. The field is powered by business logic that triangulates IRS data and claims data.\n" } } } } } } } } }, "403": { "description": "Trial accounts do not have access to custom tins", "content": { "application/json": { "schema": { "type": "object", "description": "You are not allow to make this request", "required": [ "error" ], "properties": { "error": { "type": "object", "required": [ "status", "code", "message" ], "properties": { "status": { "type": "integer", "example": 403 }, "code": { "type": "string", "enum": [ "permission_denied" ] }, "message": { "type": "string", "example": "a trial account does not have access to this functionality" } } } } } } } } } } }, "/custom/tin/{tin_id}": { "get": { "summary": "Get TIN", "description": "Retrieve data on a specific TIN.\n", "operationId": "getCustomTin", "tags": [ "TINs" ], "parameters": [ { "name": "tin_id", "in": "path", "required": true, "description": "The target TIN.", "schema": { "type": "string", "format": "uuid", "example": 123454321 } } ], "responses": { "200": { "description": "Returns a single TIN", "content": { "application/json": { "schema": { "type": "object", "properties": { "tin": { "type": "string", "description": "Standard 9-digit identification code used by the IRS for business entities and used for contracting and paying provider/facility claims." }, "name": { "type": "string", "description": "The billing entity name that appears on claims data, or if available, the official legal name of the billing entity." }, "legal_name": { "type": "string", "description": "The legal name of the entity associated with the TIN." }, "address": { "type": "string", "description": "The address of the organization with the TIN. This could be the primary service location or billing location." }, "tin_confirmed": { "type": "boolean", "description": "A yes/no field that assesses whether a TIN is likely to be valid or not. The field is powered by business logic that triangulates IRS data and claims data." } } } } } }, "404": { "description": "The given TIN UUID cannot be found", "content": { "application/json": { "schema": { "type": "object", "description": "The requested resource could not be found", "required": [ "error" ], "properties": { "error": { "type": "object", "required": [ "status", "code", "message" ], "properties": { "status": { "type": "integer", "example": 404 }, "code": { "type": "string", "enum": [ "not_found" ] }, "message": { "type": "string", "enum": [ "resource not found" ] } } } } } } } } } } }, "/provider_types": { "get": { "summary": "Search Provider Types", "description": "Search and list provider types that exist within the Ribbon API.\n", "operationId": "getCustomProviderTypes", "tags": [ "Reference Endpoints" ], "parameters": [ { "$ref": "#/paths/~1languages/get/parameters/0" } ], "responses": { "200": { "description": "Provider types returned from a valid request", "content": { "application/json": { "schema": { "type": "object", "required": [ "count", "data" ], "properties": { "count": { "type": "integer", "description": "The total number of results matched, across all pages.", "example": 23 }, "results": { "type": "array", "items": { "$ref": "#/paths/~1custom~1provider_types~1%7Bprovider_type_uuid%7D/get/responses/200/content/application~1json/schema" } } } } } } } } } }, "/custom/provider_types": { "post": { "summary": "Create Provider Type", "description": "Create a custom provider type with desired field values.\n", "operationId": "postCustomProviderType", "tags": [ "Reference Endpoints" ], "requestBody": { "required": true, "description": "A JSON object mapping the name of the field to update to its new value", "content": { "application/json": { "schema": { "type": "object", "properties": { "display_name": { "type": "string", "example": "Certified Nurse Midwife" } } } } } }, "responses": { "201": { "description": "Provider type was successfully created.", "content": { "application/json": { "schema": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/paths/~1custom~1provider_types~1%7Bprovider_type_uuid%7D/get/responses/200/content/application~1json/schema" } } } } } }, "400": { "description": "This request attempted to create with invalid schema or was missing required fields.", "content": { "application/json": { "schema": { "$ref": "#/paths/~1network_analysis/get/responses/400/content/application~1json/schema" } } } }, "409": { "description": "Provider type object with given display_name already exists.", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1locations/post/responses/409/content/application~1json/schema" } } } } } } }, "/custom/provider_types/{provider_type_uuid}": { "get": { "summary": "Get Provider Type", "description": "Retrieve data on a specific provider type.\n", "operationId": "getCustomProviderType", "tags": [ "Reference Endpoints" ], "parameters": [ { "name": "provider_type_uuid", "in": "path", "required": true, "description": "The UUID of the target provider type.", "schema": { "type": "string", "format": "uuid", "example": "edeb875a-494a-4907-babb-5377ef1f49f9" } } ], "responses": { "200": { "description": "Returns a single provider type", "content": { "application/json": { "schema": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid", "example": "854a242b-9fa6-4427-b36f-ae7ba858e2c8", "description": "A UUID uniquely identifying this provider type" }, "display_name": { "type": "string", "example": "Pediatrician" } } } } } }, "404": { "description": "The given provider type UUID cannot be found", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1tin~1%7Btin_id%7D/get/responses/404/content/application~1json/schema" } } } } } }, "put": { "summary": "Edit Provider Type Fields", "description": "Edit fields of a custom created provider type.\n\nNote: You cannot edit a Ribbon created provider type.\n", "operationId": "putCustomProviderType", "tags": [ "Reference Endpoints" ], "parameters": [ { "$ref": "#/paths/~1custom~1provider_types~1%7Bprovider_type_uuid%7D/get/parameters/0" } ], "requestBody": { "required": true, "description": "A JSON object mapping the name of the field to update to its new value", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1provider_types/post/requestBody/content/application~1json/schema" } } } }, "responses": { "200": { "description": "The provider type object was successfully updated.", "content": { "application/json": { "schema": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/paths/~1custom~1provider_types~1%7Bprovider_type_uuid%7D/get/responses/200/content/application~1json/schema" } } } } } }, "400": { "description": "This request attempted to update with invalid schema or was missing required fields.", "content": { "application/json": { "schema": { "$ref": "#/paths/~1network_analysis/get/responses/400/content/application~1json/schema" } } } }, "403": { "description": "This resource is managed by Ribbon and cannot be modified.", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1tin/get/responses/403/content/application~1json/schema" } } } }, "404": { "description": "The given provider type UUID cannot be found.", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1tin~1%7Btin_id%7D/get/responses/404/content/application~1json/schema" } } } }, "409": { "description": "Provider Type object with given display_name already exists.", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1locations/post/responses/409/content/application~1json/schema" } } } } } }, "delete": { "summary": "Delete Provider Type", "description": "Delete a provider type.\n\nNote: You cannot edit a Ribbon created provider type.\n", "operationId": "deleteCustomProviderType", "tags": [ "Reference Endpoints" ], "parameters": [ { "$ref": "#/paths/~1custom~1provider_types~1%7Bprovider_type_uuid%7D/get/parameters/0" } ], "responses": { "204": { "description": "Provider type was successfully deleted" }, "403": { "description": "This resource is managed by Ribbon and cannot be deleted.", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1tin/get/responses/403/content/application~1json/schema" } } } }, "404": { "description": "The given provider type UUID cannot be found", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1tin~1%7Btin_id%7D/get/responses/404/content/application~1json/schema" } } } } } } }, "/location_types": { "get": { "summary": "Search Location Types", "description": "Search and list location types that exist within the Ribbon API.\n", "operationId": "getCustomLocationTypes", "tags": [ "Reference Endpoints" ], "parameters": [ { "$ref": "#/paths/~1languages/get/parameters/0" } ], "responses": { "200": { "description": "Location types returned from a valid request", "content": { "application/json": { "schema": { "type": "object", "required": [ "count", "data" ], "properties": { "count": { "type": "integer", "description": "The total number of results matched, across all pages.", "example": 7 }, "results": { "type": "array", "items": { "$ref": "#/paths/~1custom~1location_types~1%7Blocation_type_uuid%7D/get/responses/200/content/application~1json/schema" } } } } } } } } } }, "/custom/location_types": { "post": { "summary": "Create Location Type", "description": "Create a location type with desired field values.\n", "operationId": "postCustomLocationType", "tags": [ "Reference Endpoints" ], "requestBody": { "required": true, "description": "A JSON object mapping the name of the field to update to its new value", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1provider_types/post/requestBody/content/application~1json/schema" } } } }, "responses": { "201": { "description": "Location type was successfully created.", "content": { "application/json": { "schema": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/paths/~1custom~1location_types~1%7Blocation_type_uuid%7D/get/responses/200/content/application~1json/schema" } } } } } }, "400": { "description": "This request attempted to create with invalid schema or was missing required fields.", "content": { "application/json": { "schema": { "$ref": "#/paths/~1network_analysis/get/responses/400/content/application~1json/schema" } } } }, "409": { "description": "Location type object with given display_name already exists.", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1locations/post/responses/409/content/application~1json/schema" } } } } } } }, "/custom/location_types/{location_type_uuid}": { "get": { "summary": "Get Location Type", "description": "Retrieve data on a specific location type.\n", "operationId": "getCustomLocationType", "tags": [ "Reference Endpoints" ], "parameters": [ { "name": "location_type_uuid", "in": "path", "required": true, "description": "The UUID of the target location type.", "schema": { "type": "string", "format": "uuid", "example": "b5458763-968e-4690-bc70-f29d3a7459a9" } } ], "responses": { "200": { "description": "Returns a single location type", "content": { "application/json": { "schema": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid", "example": "cd7f242d-3016-4db6-94f4-77b8237127a3", "description": "A UUID uniquely identifying this location type" }, "display_name": { "type": "string", "example": "Radiology" } } } } } }, "404": { "description": "The given location type UUID cannot be found", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1tin~1%7Btin_id%7D/get/responses/404/content/application~1json/schema" } } } } } }, "put": { "summary": "Edit Location Type Fields", "description": "Edit fields of a custom created location type.\n\nNote: You cannot edit a Ribbon created location type.\n", "operationId": "putCustomLocationType", "tags": [ "Reference Endpoints" ], "parameters": [ { "$ref": "#/paths/~1custom~1location_types~1%7Blocation_type_uuid%7D/get/parameters/0" } ], "requestBody": { "required": true, "description": "A JSON object mapping the name of the field to update to its new value", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1provider_types/post/requestBody/content/application~1json/schema" } } } }, "responses": { "200": { "description": "The location type object was successfully updated.", "content": { "application/json": { "schema": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/paths/~1custom~1location_types~1%7Blocation_type_uuid%7D/get/responses/200/content/application~1json/schema" } } } } } }, "400": { "description": "This request attempted to update with invalid schema or was missing required fields.", "content": { "application/json": { "schema": { "$ref": "#/paths/~1network_analysis/get/responses/400/content/application~1json/schema" } } } }, "403": { "description": "This resource is managed by Ribbon and cannot be modified.", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1tin/get/responses/403/content/application~1json/schema" } } } }, "404": { "description": "The given location type UUID cannot be found.", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1tin~1%7Btin_id%7D/get/responses/404/content/application~1json/schema" } } } }, "409": { "description": "Location Type object with given display_name already exists.", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1locations/post/responses/409/content/application~1json/schema" } } } } } }, "delete": { "summary": "Delete Location Type", "description": "Delete a location type.\n\nNote: You cannot edit a Ribbon created location type.\n", "operationId": "deleteCustomLocationType", "tags": [ "Reference Endpoints" ], "parameters": [ { "$ref": "#/paths/~1custom~1location_types~1%7Blocation_type_uuid%7D/get/parameters/0" } ], "responses": { "204": { "description": "Location type was successfully deleted" }, "403": { "description": "This resource is managed by Ribbon and cannot be deleted.", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1tin/get/responses/403/content/application~1json/schema" } } } }, "404": { "description": "The given location type UUID cannot be found", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1tin~1%7Btin_id%7D/get/responses/404/content/application~1json/schema" } } } } } } }, "/custom/virtual_care_platforms": { "get": { "summary": "Search Virtual Care Platforms", "description": "Search for different at-home or virtual platforms.\n\n#### Example Use Case\nEnable a patient to find a virtual care platform that focuses on their speciality need, has licensure in the state they live in, and is in-network for their insurance plan.\n", "operationId": "getCustomVirtualCarePlatforms", "tags": [ "Virtual Care Platforms" ], "parameters": [ { "name": "Virtual Care Platform Search Options", "in": "query", "required": false, "description": "Search options based on aspects of the virtual care platform objects.", "explode": true, "schema": { "type": "object", "properties": { "name": { "type": "string", "description": "A full or partial platform name.\n\nNote: This parameter performs a case-insensitive exact string match (i.e. is not fuzzy).\n", "example": "Virtual Care Platform" }, "address_string": { "type": "string", "description": "An address that will be interpreted and geocoded in real time.", "example": "100 Main Street" }, "insurance_ids": { "type": "string", "description": "Comma-delimited list of desired insurance uuids. Returns all platforms which accept at least one of the given insurances.", "example": "7b815b2f-ba65-4024-80aa-0ac1a9dcd4e0" }, "specialty_ids": { "type": "string", "description": "Comma-delimited list of desired specialty uuids. Returns all platforms which specialize in at least one of the given specialties.", "example": "fff41986-41dc-46c0-93f0-5fb3fbd47678" }, "npis": { "type": "string", "description": "Comma-delimited list of type 2 NPIs associated with the platform.", "example": 1558319491 }, "offers_appts": { "type": "boolean", "description": "Returns platforms that offer appointments.", "example": true }, "panel_ages": { "type": [ "string", "integer" ], "enum": [ "Pediatric", "Adolescent", "Adult", "Senior" ], "description": "Desired Panel Ages string, or an integer age.\n\nReturns all platforms with a `panel_demographics.ages` label field corresponding to the entered string or integer.\n", "example": "Adolescent" }, "panel_sexes": { "type": "string", "enum": [ "Female", "F", "Male", "M" ], "description": "Returns all platforms with a `panel_demographics.sexes` label field corresponding to the entered string.", "example": "Female" }, "payment_method": { "type": "string", "enum": [ "Cash Pay", "Insurance" ], "description": "Returns all platforms which accept the designated payment method.", "example": "Cash Pay" }, "provider_types": { "type": "string", "description": "Comma-delimited list of the `type`s of providers you are searching for. Provider types are higher level groupings of specialties.", "example": "Doctor" }, "profile_claimed": { "type": "boolean", "description": "Returns care platform profiles which are curated directly by the platform.\n\nWhen `False`, Ribbon has curated on behalf of the platform and may not have complete information for concepts such as licensure or insurances accepted.\n", "example": true } } } } ], "responses": { "200": { "description": "Returns an ordered list of matching virtual care platforms", "content": { "application/json": { "schema": { "type": "object", "required": [ "parameters", "data" ], "properties": { "parameters": { "type": "object", "properties": { "total_count": { "type": "integer", "example": 141, "description": "The total number of results matched, across all pages." }, "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." }, "specialty_ids": { "type": "array", "items": { "type": "string", "format": "uuid" }, "example": [ "058148f1-3a99-4bbe-9722-6c2a54ddb860" ] }, "insurance_ids": { "type": "array", "items": { "type": "string", "format": "uuid" }, "example": [ "0082f872-5383-44de-9319-511f090fc56b" ] }, "address": { "type": "string", "example": "408 broadway" }, "geocoded_state": { "type": "string", "example": "NY" } } }, "data": { "type": "array", "items": { "$ref": "#/paths/~1custom~1virtual_care_platforms~1%7Bvirtual_care_platform_uuid%7D/get/responses/200/content/application~1json/schema" } } } } } } }, "400": { "description": "The search could not be completed as requested", "content": { "application/json": { "schema": { "$ref": "#/paths/~1network_analysis/get/responses/400/content/application~1json/schema" } } } } } } }, "/custom/virtual_care_platforms/{virtual_care_platform_uuid}": { "get": { "summary": "Get Virtual Care Platform", "description": "Retrieve detailed information for any virtual care platform given its UUID.\n", "operationId": "getVirtualCarePlatform", "tags": [ "Virtual Care Platforms" ], "parameters": [ { "name": "virtual_care_platform_uuid", "in": "path", "required": true, "description": "The UUID of the target virtual care platform.", "schema": { "type": "string", "format": "uuid", "example": "c8fdf322-e562-479b-840d-e44931fb2a12" } } ], "responses": { "200": { "description": "Returns a single virtual care platform", "content": { "application/json": { "schema": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid", "description": "Primary ID of this virtual care platform.", "example": "c8fdf322-e562-479b-840d-e44931fb4112" }, "name": { "type": "string", "description": "Name of the virtual care platform.", "example": "RibbonCare Platform" }, "website": { "format": "string", "description": "URL of the virtual care platform's website.", "example": "https://www.ribbonvirtualcare.com" }, "description": { "type": "string", "example": "

RibbonCare is a virtual dermatology platform for eczema and psoriasis treatment.

" }, "geographies_served": { "type": "array", "items": { "type": "string", "description": "2-letter state code of covered states.", "example": "NY" }, "example": [ "NY", "TX", "CA" ] }, "npis": { "type": "array", "items": { "type": "integer", "example": 1234567890 }, "description": "NPIs of providers associated with this platform." }, "specialties": { "type": "array", "items": { "$ref": "#/paths/~1custom~1specialties~1%7Bspecialty_uuid%7D/get/responses/200/content/application~1json/schema" } }, "specialties_detail": { "type": "string", "example": "

We focus on eczma and psoriasis care

" }, "insurances": { "type": "array", "items": { "type": "string", "format": "uuid", "example": "0082f872-5383-44de-9319-511f090fc56b" } }, "insurances_detail": { "type": "string", "example": "

We have flexibility to do single case agreements with other payers/plans not listed on our profile

" }, "sign_up_instructions": { "type": "string", "example": "
  1. Create an account
  2. Complete an online consultation to help your provider find the best treatment plan for your needs.
  3. A provider trained in your specialty of concern will review your information and suggest a personalized treatment plan
  4. If prescribed, we send your medication directly to your door
  5. Get unlimited access messaging with your provider team to answer any questions and make changes as needed
" }, "care_delivery": { "type": "array", "items": { "type": "string", "example": "Virtual Care - Asynchronous" }, "description": "Methods by which care can be delivered from this platform.", "example": [ "Virtual Care - Asynchronous", "Virtual Care - Live" ] }, "provider_types": { "type": "array", "items": { "type": "string", "example": "Doctor" }, "description": "Types of the providers associated with this platform." }, "provider_types_detail": { "type": "string", "example": "

We also employ allied health professionals and lactation consultants

" }, "panel_demographics": { "type": "object", "properties": { "ages": { "type": "array", "items": { "type": "string", "enum": [ "Pediatric (0-12)", "Adolescent (13-21)", "Adult (22-44)", "Adult (45-64)", "Senior (65 and over)" ] }, "example": [ "Senior (65 and over)" ] }, "sexes": { "type": "array", "items": { "type": "string", "enum": [ "Both female and male", "Primarily female", "Primarily male" ] }, "example": [ "Both female and male" ] }, "detail": { "type": [ "string", "null" ] } } }, "offers_appointments": { "type": "boolean", "example": true, "description": "Whether this virtual care platform accepts appointments or not." }, "appointment_booking_detail": { "type": "string", "example": "

Patients can book an appointment through the Age Bold website: https://www.ribbonvirtualcare.com/booking

" }, "payment_method": { "type": "array", "items": { "type": "string", "example": "Cash Pay" }, "description": "The methods of payment accepted by this platform.", "example": [ "Cash Pay", "Insurance" ] }, "pricing_detail": { "type": "string", "example": "

Patients have to join the RibbonCare membership to be able to consult with a doctor. The membership is an annual membership and cost $192 per year.

The visit is then billed through insurance (if we are in network with their insurance) or the cash price for a live visit is $42 per visit.

" }, "claimed_profile": { "type": "boolean", "example": true, "description": "Returns care platform profiles which are curated directly by the platform.\n\nWhen `False`, Ribbon has curated on behalf of the platform and may not have complete information for concepts such as licensure or insurances accepted.\n" }, "disclaimer": { "type": [ "string", "null" ], "description": "Any disclaimer associated with this platform." } } } } } }, "404": { "description": "The given UUID cannot be found", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1tin~1%7Btin_id%7D/get/responses/404/content/application~1json/schema" } } } } } } }, "/procedures": { "get": { "summary": "Search Procedures", "description": "Search and list procedures that exist within the Ribbon API.\n", "operationId": "getProcedures", "tags": [ "Reference Endpoints" ], "parameters": [ { "$ref": "#/paths/~1languages/get/parameters/0" }, { "name": "procedure_code", "in": "query", "required": false, "description": "A specific billing code (e.g., CPT, DRG) to search for", "schema": { "type": "string", "example": 73222 } }, { "name": "page", "in": "query", "required": false, "description": "The page of the results which was returned.", "schema": { "type": "integer", "example": 1 } }, { "name": "page_size", "in": "query", "required": false, "description": "How many results are in each page.", "schema": { "type": "integer", "example": 15 } } ], "responses": { "200": { "description": "Procedures returned from a valid request", "content": { "application/json": { "schema": { "type": "object", "required": [ "count", "next", "previous", "results" ], "properties": { "count": { "type": "integer", "description": "The total number of results matched, across all pages.", "example": 141 }, "next": { "type": [ "string", "null" ], "example": "https://api.ribbonhealth.com/v1/procedures?page=3" }, "previous": { "type": [ "string", "null" ], "example": "https://api.ribbonhealth.com/v1/procedures?page=1" }, "results": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid", "example": "0a9a245f-2f52-4cc0-a5c3-77a811acc6f7", "description": "A UUID uniquely identifying this procedure" }, "display_name": { "type": "string", "example": "MRI, arm" } } } } } } } } } } } }, "/procedures/{procedure_uuid}": { "get": { "summary": "Get Procedure", "description": "Retrieve data on a specific procedure.\n", "operationId": "getProcedure", "tags": [ "Reference Endpoints" ], "parameters": [ { "name": "procedure_uuid", "in": "path", "required": true, "description": "The UUID of the target procedure.", "schema": { "type": "string", "format": "uuid", "example": "3c51144e-3385-4933-b581-4081c84b3cb9" } } ], "responses": { "200": { "description": "Returns a single procedure", "content": { "application/json": { "schema": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid", "example": "0a9a245f-2f52-4cc0-a5c3-77a811acc6f7", "description": "A UUID uniquely identifying this procedure" }, "display": { "type": "string", "example": "MRI, arm" }, "procedure_code_count": { "type": "integer", "example": 7 }, "procedure_codes": { "type": "array", "items": { "type": "object", "properties": { "code": { "type": "string", "example": "73222" }, "type": { "type": "string", "example": "CPT" }, "description": { "type": "string", "example": "MRI, arm" } } } } } } } } }, "404": { "description": "The given procedure UUID cannot be found", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1tin~1%7Btin_id%7D/get/responses/404/content/application~1json/schema" } } } } } } }, "/languages": { "get": { "summary": "Search Languages", "description": "Search and list provider languages that exist in the Ribbon API.\n", "operationId": "getLanguages", "tags": [ "Reference Endpoints" ], "parameters": [ { "name": "search", "in": "query", "required": false, "description": "Search parameter for reference endpoints (Provider Type, Location Type, Languages)", "schema": { "type": "string", "description": "String input that fuzzy searches on `display_name` field within each object to return the most relevant options.\n", "example": [ "Pediatrician", "Clinic", "Spanish" ] } } ], "responses": { "200": { "description": "Languages returned from a valid request", "content": { "application/json": { "schema": { "type": "object", "required": [ "count", "data" ], "properties": { "count": { "type": "integer", "description": "The total number of results matched, across all pages.", "example": 333 }, "results": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid", "example": "9b79819b-a1e3-489d-8010-b0b9f591c201", "description": "A UUID uniquely identifying this language" }, "display_name": { "type": "string", "example": "arabic" } } } } } } } } } } } }, "/pricing/providers": { "get": { "summary": "Provider Price Search", "description": "Search for providers that perform a given procedure and find the lowest insurance-specific price for a procedure in your area.\n\n#### Example Use Case\nSearch for all applicable provider negotiated rates, given a specific insurance and procedure (and optionally, a specific location/address and distance). For example, search for all providers near me who perform Leg MRIs and who take a given insurance, sorted by lowest price.\n", "operationId": "getPricingProviders", "tags": [ "Price Transparency" ], "parameters": [ { "name": "Provider Price Search Criteria", "in": "query", "required": false, "description": "Criteria used to search for providers based on their specialties.", "explode": true, "schema": { "type": "object", "properties": { "procedure_id": { "type": "string", "format": "uuid", "description": "Search for prices for the procedure with the given UUID.\n\nIf the given ID is for a procedure bundle but do not have data for the insurance specified by the `plan_id` parameter, we will return data for its anchor procedure instead.\n\nExactly one of `procedure`, `procedure_id`, or `procedure_code` must be specified.\n", "example": "7ad7c4ef-baf9-4789-8e58-51d2308a1143" }, "procedure": { "type": "string", "description": "Search for prices for the given procedure. This input is fuzzy matched to the most relevant procedure `display` field.\n\nWe will preferentially match procedure bundles. If we match a procedure bundle but do not have data for the insurance specified by the `plan_id` parameter, we will return data for its anchor procedure instead.\n\nExactly one of `procedure`, `procedure_id`, or `procedure_code` must be specified.\n", "example": "MRI, thoracic spine" }, "procedure_code": { "type": "string", "description": "Search for prices for procedures with the given billing code.\n\nWe will preferentially match procedure bundles. If we match a procedure bundle but do not have data for the insurance specified by the `plan_id` parameter, we will return data for its anchor procedure instead.\n\nExactly one of `procedure`, `procedure_id`, or `procedure_code` must be specified.\n", "example": 73720 }, "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." }, "plan_id": { "type": "string", "format": "uuid", "description": "Search for negotiated rates for the insurance plan with this UUID.", "example": "81ba3a1a-05a9-48d9-b9b2-cb8f9eafc902" }, "specialty_ids": { "type": "string", "description": "A comma separated list of specialty UUIDs. Filter to providers with any of the given specialties.", "example": "fcc9a22c-7a0f-4405-b0c9-c5f8ad83b93e,8b5d3998-d7e2-4b9e-91d1-17c19cd089f5,44b0284c-f360-4312-a17d-d601651cb0ea" }, "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.\n", "example": "gastroenterology" }, "address": { "type": "string", "description": "String input of an address that will be interpreted and geocoded in real time.", "example": "2074 23rd Ave, San Francisco, CA 94116" }, "location": { "type": "string", "description": "Latitude/longitude pair of coordinates in lieu of a string address.", "example": "37.7489816,-122.4802092" }, "distance": { "type": "integer", "example": 10, "description": "The proximity radius of providers returned." }, "fields": { "type": "string", "example": "matched_location,npi", "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.\n\nNote that all price information is nested under the `matched_location` field. You almost certainly want to return this field.\n\nCannot be used in tandem with `_excl_fields`.\n" }, "_excl_fields": { "type": "string", "example": "insurances,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.\n\nCannot be used in tandem with `fields`.\n" } } } } ], "responses": { "200": { "description": "Returns per provider prices for the given procedure", "content": { "application/json": { "schema": { "type": "object", "required": [ "parameters", "data" ], "properties": { "parameters": { "properties": { "total_count": { "type": "integer", "example": 141, "description": "The total number of results matched, across all pages." }, "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." }, "procedure_id": { "type": "string", "format": "uuid", "description": "The UUID of the procedure that results were filtered to.\n\nOnly populated when the `procedure_id` search parameter was used.\n", "example": "7ad7c4ef-baf9-4789-8e58-51d2308a1143" }, "procedure": { "$ref": "#/paths/~1procedures~1%7Bprocedure_uuid%7D/get/responses/200/content/application~1json/schema" }, "insurances": { "type": "array", "items": { "type": "string", "format": "uuid" }, "description": "List of insurance UUIDs for this provider.\n" }, "insurance": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid", "example": "d8addf29-1054-4ccb-b179-dda65f7fefdd", "description": "A UUID uniquely identifying this insurance" }, "plan_name": { "type": [ "string", "null" ], "example": "Aetna HealthFund Open Choice" }, "carrier_name": { "type": [ "string", "null" ], "example": "Aetna" } } }, "specialty_ids": { "type": "array", "items": { "type": "string", "format": "uuid", "example": "fcc9a22c-7a0f-4405-b0c9-c5f8ad83b93e" }, "description": "A comma separated list of specialty UUIDs. Filter to providers with any of the given specialties.", "example": [ "fcc9a22c-7a0f-4405-b0c9-c5f8ad83b93e", "8b5d3998-d7e2-4b9e-91d1-17c19cd089f5", "44b0284c-f360-4312-a17d-d601651cb0ea" ] }, "specialty": { "$ref": "#/paths/~1custom~1specialties~1%7Bspecialty_uuid%7D/get/responses/200/content/application~1json/schema" }, "address": { "type": "string", "description": "String input of an address that will be interpreted and geocoded in real time.", "example": "2074 23rd Ave, San Francisco, CA 94116" }, "location": { "type": "string", "description": "Latitude/longitude pair of coordinates in lieu of a string address.", "example": "37.7489816,-122.4802092" }, "distance": { "type": "integer", "example": 10, "description": "The proximity radius of providers returned." }, "fields": { "type": "array", "items": { "type": "string", "example": "matched_location" }, "example": [ "matched_location", "npi" ], "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.\n\nNote that all price information is nested under the `matched_location` field. You almost certainly want to return this field.\n\nCannot be used in tandem with `_excl_fields`\n" }, "_excl_fields": { "type": "array", "items": { "type": "string", "example": "insurances" }, "example": [ "insurances", "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.\n\nCannot be used in tandem with `fields`\n" } } }, "data": { "type": "array", "items": { "allOf": [ { "type": "object", "properties": { "insurance": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid", "description": "The UUID of the insurance these prices correspond to.", "example": "ef704f14-c906-4857-acd4-d811f1394c32" }, "plan_name": { "type": "string", "description": "The name of the insurance plan this UUID represents.", "example": "Aetna" }, "carrier_name": { "type": [ "string", "null" ], "description": "The carrier that this insurance plan is associated with, if any." } } }, "procedure": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid", "description": "The UUID of the procedure these prices correspond to.", "example": "7ad7c4ef-baf9-4789-8e58-51d2308a1143" }, "name": { "type": "string", "description": "The name of the procedure these prices correspond to.", "example": "MRI, leg" } } }, "matched_location": { "allOf": [ { "type": "object", "properties": { "costs": { "description": "The costs associated with this location.", "type": "object", "properties": { "min": { "type": "string", "example": "239.0", "description": "The minimum cost for this procedure in dollars" }, "median": { "type": "string", "example": "520.5350000000001", "description": "The median cost for this procedure in dollars" }, "max": { "type": "string", "example": "714.93", "description": "The maximum cost for this procedure in dollars" }, "is_bundle": { "type": "boolean", "example": true, "description": "Where this data is the costs for a procedure bundle rather than a regular procedure." }, "outpatient": { "$ref": "#/paths/~1pricing~1providers~1%7Bnpi%7D~1procedures~1%7Bprocedure_uuid%7D~1locations~1%7Blocation_uuid%7D/get/responses/200/content/application~1json/schema/properties/data/properties/costs/properties/inpatient", "description": "Costs associated with this procedure in an outpatient setting.\n\nThis key will only be populated for procedure bundles, and only if we have relevant data. A regular procedure will always have a `null` value here.\n" }, "inpatient": { "$ref": "#/paths/~1pricing~1providers~1%7Bnpi%7D~1procedures~1%7Bprocedure_uuid%7D~1locations~1%7Blocation_uuid%7D/get/responses/200/content/application~1json/schema/properties/data/properties/costs/properties/inpatient", "description": "Costs associated with this procedure in an inpatient setting.\n\nThis key will only be populated for procedure bundles, and only if we have relevant data. A regular procedure will always have a `null` value here.\n" } } } } }, { "$ref": "#/paths/~1custom~1locations~1%7Blocation_uuid%7D/get/responses/200/content/application~1json/schema" } ], "description": "All of the metadata on the matched location plus a `costs` key." } } }, { "type": "object", "properties": { "npi": { "type": "integer", "minimum": 1000000000, "maximum": 9999999999, "example": 1861664294, "description": "The healthcare provider's 10-digit National Provider Identifier (NPI)" }, "first_name": { "type": "string", "example": "Jane", "description": "First name of the provider" }, "middle_name": { "type": [ "string", "null" ], "example": "J", "description": "Middle name of the provider" }, "last_name": { "type": "string", "example": "Doe", "description": "Last name of the provider" }, "age": { "type": [ "integer", "null" ], "example": 38, "description": "The estimated age of the provider" }, "gender": { "type": "string", "enum": [ "m", "f" ], "description": "The gender of the provider" }, "ratings_count": { "type": "integer", "example": 20, "description": "Total number of ratings collected across different sources" }, "ratings_avg": { "type": [ "number", "null" ], "example": 9.8, "description": "Average patient satisfaction rating out of 10 points across multiple sources" }, "degrees": { "type": "array", "items": { "type": "string", "example": "MD" }, "description": "Lists all degrees associated with this provider (e.g. MD, OD, PhD)" }, "specialties": { "type": "array", "items": { "type": "string", "format": "uuid" }, "description": "This lists the UUIDs of all the specialties for a given provider" }, "languages": { "type": "array", "items": { "type": "string", "example": "english" }, "description": "List of confirmed languages spoken" }, "educations": { "type": "array", "items": { "$ref": "#/paths/~1custom~1providers~1%7Bnpi%7D/get/responses/200/content/application~1json/schema/properties/educations/items" }, "description": "List of the schools attended by the provider" }, "insurances": { "type": "array", "items": { "type": "string", "format": "uuid" }, "description": "List of the UUIDs of insurances the provider accepts" }, "provider_types": { "type": "array", "items": { "type": "string", "example": "Doctor" }, "description": "There are high level classifications for different provider types -- e.g. \"Doctor\", \"Optometry\", \"Dental Providers\", \"Nursing\", etc." }, "locations": { "type": "array", "items": { "$ref": "#/paths/~1custom~1locations~1%7Blocation_uuid%7D/get/responses/200/content/application~1json/schema" }, "description": "List of all locations this provider is known to practice at including any known phone numbers at these locations" }, "online_profiles": { "type": "array", "items": { "type": "object", "properties": { "url": { "type": "string" } } }, "description": "We aggregate profiles across a variety of different online sources, including booking platforms" } } } ] }, "description": "All of the metadata on a specific provider plus a `matched_location` key showing the costs at the least expensive location." } } } } } }, "400": { "description": "The given search was not valid. It combined parameters that may not be combined, or did not specify a procedure in any way, or the specified procedure could not be found, etc.", "content": { "application/json": { "schema": { "$ref": "#/paths/~1network_analysis/get/responses/400/content/application~1json/schema" } } } } } } }, "/pricing/providers/{npi}/procedures": { "get": { "summary": "Provider Procedures", "description": "Fetch the list of procedures that a single provider performs, with the lowest available negotiated rates specific to a given insurance for each procedure.\n\n#### Example Use Case\nFor a given provider, search the full list of procedures that they are likely to perform where there are negotiated rates available for a particular insurance, and return the minimum price for each procedure.\n", "operationId": "getPricingProviderProcedures", "tags": [ "Price Transparency" ], "parameters": [ { "$ref": "#/paths/~1custom~1providers~1%7Bnpi%7D/get/parameters/0" }, { "name": "plan_id", "in": "query", "required": false, "description": "Search for negotiated rates for the insurance plan with this UUID.", "schema": { "type": "string", "format": "uuid", "example": "81ba3a1a-05a9-48d9-b9b2-cb8f9eafc902" } }, { "$ref": "#/paths/~1procedures/get/parameters/2" }, { "$ref": "#/paths/~1procedures/get/parameters/3" } ], "responses": { "200": { "description": "Returns the procedures for the given provider for which we have price data", "content": { "application/json": { "schema": { "type": "object", "required": [ "parameters", "data" ], "properties": { "parameters": { "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." }, "insurance": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid", "example": "d8addf29-1054-4ccb-b179-dda65f7fefdd", "description": "A UUID uniquely identifying this insurance" }, "display": { "type": [ "string" ], "example": "Aetna" } } } } }, "data": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid", "description": "The UUID of the procedure these prices correspond to.", "example": "7ad7c4ef-baf9-4789-8e58-51d2308a1143" }, "display": { "type": "string", "description": "The name of the procedure these prices correspond to.", "example": "MRI, leg" }, "min_cost": { "type": "number", "description": "The minimum cost for this procedure with this provider, in dollars." } } } } } } } } }, "400": { "description": "The given search was not valid. The given insurance could not be found, etc.", "content": { "application/json": { "schema": { "$ref": "#/paths/~1network_analysis/get/responses/400/content/application~1json/schema" } } } }, "404": { "description": "The given NPI cannot be found", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1tin~1%7Btin_id%7D/get/responses/404/content/application~1json/schema" } } } } } } }, "/pricing/providers/{npi}/procedures/{procedure_uuid}": { "get": { "summary": "Provider Procedure Pricing", "description": "Find the prices offered by a single provider for a specific procedure, with a given insurance, across practice locations.\n\n#### Example Use Case\nCompare insurance-specific price estimates of a Leg MRI for a single provider at multiple relevant practices (e.g., compare this provider's rates when performing the procedure at both the provider's private outpatient facility, as well as a nearby hospital system clinic where they also practice).\n", "operationId": "getPricingProviderProcedure", "tags": [ "Price Transparency" ], "parameters": [ { "$ref": "#/paths/~1custom~1providers~1%7Bnpi%7D/get/parameters/0" }, { "name": "procedure_uuid", "in": "path", "required": true, "description": "The UUID of the target procedure. If the target procedure is a procedure bundle but we do not have any data for it, we will return data for its anchor procedure instead.", "schema": { "type": "string", "format": "uuid", "example": "3c51144e-3385-4933-b581-4081c84b3cb9" } }, { "$ref": "#/paths/~1pricing~1providers~1%7Bnpi%7D~1procedures/get/parameters/1" }, { "$ref": "#/paths/~1procedures/get/parameters/2" }, { "$ref": "#/paths/~1procedures/get/parameters/3" } ], "responses": { "200": { "description": "Returns costs for the given procedure with the given provider at each location", "content": { "application/json": { "schema": { "type": "object", "required": [ "parameters", "locations" ], "properties": { "parameters": { "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." }, "insurance": { "$ref": "#/paths/~1pricing~1providers~1%7Bnpi%7D~1procedures/get/responses/200/content/application~1json/schema/properties/parameters/properties/insurance" } } }, "locations": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid", "description": "The UUID of the location these prices correspond to.", "example": "7ad7c4ef-baf9-4789-8e58-51d2308a1143" }, "costs": { "$ref": "#/paths/~1pricing~1providers~1%7Bnpi%7D~1procedures~1%7Bprocedure_uuid%7D~1locations~1%7Blocation_uuid%7D/get/responses/200/content/application~1json/schema/properties/data/properties/costs" } } } } } } } } }, "400": { "description": "The given search was not valid. The given insurance could not be found, etc.", "content": { "application/json": { "schema": { "$ref": "#/paths/~1network_analysis/get/responses/400/content/application~1json/schema" } } } }, "404": { "description": "The given NPI cannot be found", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1tin~1%7Btin_id%7D/get/responses/404/content/application~1json/schema" } } } } } } }, "/pricing/providers/{npi}/procedures/{procedure_uuid}/locations/{location_uuid}": { "get": { "summary": "Provider Location Procedure Pricing", "description": "Search for a price estimate for a specific procedure from a specific provider at a specific location, with a given insurance plan.\n\n#### Example Use Case\nGiven an insurance, identify the expected price of a particular procedure from a specific provider at a known facility.\n", "operationId": "getPricingProviderProcedureLocation", "tags": [ "Price Transparency" ], "parameters": [ { "$ref": "#/paths/~1custom~1providers~1%7Bnpi%7D/get/parameters/0" }, { "$ref": "#/paths/~1pricing~1providers~1%7Bnpi%7D~1procedures~1%7Bprocedure_uuid%7D/get/parameters/1" }, { "$ref": "#/paths/~1custom~1locations~1%7Blocation_uuid%7D/get/parameters/0" }, { "$ref": "#/paths/~1pricing~1providers~1%7Bnpi%7D~1procedures/get/parameters/1" } ], "responses": { "200": { "description": "Returns the costs associated with the given provider, procedure, and location", "content": { "application/json": { "schema": { "type": "object", "required": [ "parameters", "data" ], "properties": { "parameters": { "properties": { "insurance": { "$ref": "#/paths/~1custom~1insurances/post/requestBody/content/application~1json/schema" } } }, "data": { "type": "object", "properties": { "costs": { "type": "object", "properties": { "min": { "type": "number", "example": 239, "description": "The minimum cost for this procedure in dollars" }, "avg": { "type": "number", "example": 520.5350000000001, "description": "The median cost for this procedure in dollars\n\nThis key is misnamed. For backwards compatibility, we have retained the legacy name.\n" }, "max": { "type": "number", "example": 714.93, "description": "The maximum cost for this procedure in dollars" }, "is_bundle": { "type": "boolean", "example": true, "description": "Where this data is the costs for a procedure bundle rather than a regular procedure." }, "outpatient": { "$ref": "#/paths/~1pricing~1providers~1%7Bnpi%7D~1procedures~1%7Bprocedure_uuid%7D~1locations~1%7Blocation_uuid%7D/get/responses/200/content/application~1json/schema/properties/data/properties/costs/properties/inpatient", "description": "Costs associated with this procedure in an outpatient setting.\n\nThis key will only be populated for procedure bundles, and only if we have relevant data. A regular procedure will always have a `null` value here.\n" }, "inpatient": { "description": "Costs associated with this procedure in an inpatient setting.\n\nThis key will only be populated for procedure bundles, and only if we have relevant data. A regular procedure will always have a `null` value here.\n", "type": [ "object", "null" ], "required": [ "min", "median", "max", "is_bundle", "components" ], "properties": { "min": { "type": "number", "example": 239, "description": "The minimum cost for this procedure in this place of service, in dollars." }, "median": { "type": "number", "example": 520.5350000000001, "description": "The median cost for this procedure in this place of service, in dollars.\n" }, "max": { "type": "number", "example": 714.93, "description": "The maximum cost for this procedure in this place of service, in dollars." }, "is_bundle": { "type": "boolean", "example": true, "description": "Where this data is the costs for a procedure bundle rather than a regular procedure." }, "components": { "type": [ "array", "null" ], "description": "Individual costs for the components that make up this procedure bundle.\n\nFor a regular procedure, this field will always be `null`.\n", "items": { "type": "object", "properties": { "display": { "type": "string", "example": "Knee replacement surgery", "description": "The display name for this component of a procedure bundle." }, "min": { "type": "number", "example": 239, "description": "The minimum cost for this component in this place of service, in dollars." }, "median": { "type": "number", "example": 520.5350000000001, "description": "The median cost for this component in this place of service, in dollars.\n" }, "max": { "type": "number", "example": 714.93, "description": "The maximum cost for this component in this place of service, in dollars." } } } } } } } } } } } } } } }, "400": { "description": "The given search was not valid. The given insurance could not be found, etc.", "content": { "application/json": { "schema": { "$ref": "#/paths/~1network_analysis/get/responses/400/content/application~1json/schema" } } } }, "404": { "description": "The given NPI cannot be found", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1tin~1%7Btin_id%7D/get/responses/404/content/application~1json/schema" } } } } } } }, "/pricing/carriers": { "get": { "summary": "List Carriers", "description": "This endpoint will show the carriers for which we have data. This can be used to fetch the recency of the data used per carrier.\n", "operationId": "getPricingCarriers", "tags": [ "Price Transparency" ], "responses": { "200": { "description": "Returns all carriers we have price data for", "content": { "application/json": { "schema": { "type": "object", "required": [ "data" ], "properties": { "data": { "type": "array", "items": { "$ref": "#/paths/~1pricing~1carrier~1%7Bcarrier_uuid%7D/get/responses/200/content/application~1json/schema" } } } } } } } } } }, "/pricing/carrier/{carrier_uuid}": { "get": { "summary": "Get Carrier", "description": "Fetch metadata including the recency of the pricing data used for a specific carrier.\n", "operationId": "getPricingCarrier", "tags": [ "Price Transparency" ], "parameters": [ { "name": "carrier_uuid", "in": "path", "required": true, "description": "The UUID of the insurance carrier.", "schema": { "type": "string", "format": "uuid", "example": "ef704f14-c906-4857-acd4-d811f1394c32" } } ], "responses": { "200": { "description": "Returns metadata for the given carrier", "content": { "application/json": { "schema": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid", "example": "ef704f14-c906-4857-acd4-d811f1394c32", "description": "A UUID uniquely identifying this carrier" }, "name": { "type": "string", "example": "Aetna", "description": "A human-friendly name for this carrier" }, "last_updated": { "type": "string", "description": "A month-granularity ISO-format date representing when we last updated price data for this carrier", "example": "2023-01" } } } } } }, "404": { "description": "The given carrier cannot be found", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1tin~1%7Btin_id%7D/get/responses/404/content/application~1json/schema" } } } } } } }, "/pricing/version": { "get": { "summary": "Carrier Names", "description": "This endpoint will the names of the carriers for which we have data. This can be used to fetch the recency of the data used per carrier.\n\nThis endpoint is deprecated. Please use [List Carriers](./getpricingcarriers) instead.\n", "operationId": "getPricingCarrierNames", "tags": [ "Price Transparency" ], "deprecated": true, "responses": { "200": { "description": "Returns all carriers we have price data for", "content": { "application/json": { "schema": { "type": "object", "properties": { "carriers": { "type": "array", "items": { "type": "string", "description": "The name of an insurance carrier we have pricing data for", "example": "Aetna" }, "description": "The name of the insurance carriers we have pricing data for", "example": [ "Aetna", "Cigna" ] } } } } } } } } }, "/pricing/version/{carrier_name}": { "get": { "summary": "Carrier Data Versions By Name", "description": "Fetch the recency of the pricing data used for a specific carrier by name.\n\nThis endpoint is deprecated. Please use [Get Carrier](./getpricingcarrier) instead.\n", "operationId": "getPricingVersionCarrier", "tags": [ "Price Transparency" ], "deprecated": true, "parameters": [ { "name": "carrier_name", "in": "path", "required": true, "description": "The name of the insurance carrier.", "schema": { "type": "string", "example": "Aetna" } } ], "responses": { "200": { "description": "Returns the recency for the given carrier", "content": { "application/json": { "schema": { "type": "object", "properties": { "last_updated": { "type": "string", "description": "A month-granularity ISO-format date representing when we last updated price data for this carrier", "example": "2023-01" } } } } } }, "404": { "description": "The given carrier cannot be found", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1tin~1%7Btin_id%7D/get/responses/404/content/application~1json/schema" } } } } } } }, "/eligibility": { "post": { "summary": "Check Member Eligibility", "description": "Verify a member's current insurance coverage and benefits. You can access detailed information including a member\u2019s progress on their Deductible and Out-of-pocket, as well as Copay and Coinsurance information for different services.\n\n#### Example Use Case\nInform a member of their current progress against their Deductible as well as their Copay and Coinsurance summaries so they can better estimate their out-of pocket costs.\n", "operationId": "getEligibility", "tags": [ "Cost Estimates" ], "parameters": [ { "name": "include_full_response", "in": "query", "required": false, "description": "Whether to return the full eligibility response from the payer. Defaults to `false` when not provided.", "schema": { "type": "boolean", "default": false, "example": true } } ], "requestBody": { "required": true, "description": "Identifying information for the member to be checked", "content": { "application/json": { "schema": { "type": "object", "properties": { "member_id": { "type": "string", "example": "000000000-00", "description": "The member's identification number" }, "first_name": { "type": "string", "example": "John", "description": "The member's first name" }, "last_name": { "type": "string", "example": "Doe", "description": "The member's last name" }, "birth_date": { "type": "string", "format": "date", "example": "1980-12-31", "description": "The member's birth date as an ISO-format date string" }, "insurance_partner": { "type": "string", "example": "aetna_better_health_il", "description": "The identifier for this insurance partner in the Ribbon API" }, "place_of_service": { "type": "string", "description": "The Place of Service (POS) code to include in the eligibility request", "nullable": true } } } } } }, "responses": { "200": { "description": "Eligibility information for the given member", "content": { "application/json": { "schema": { "type": "object", "required": [ "parameters", "status", "request_id" ], "properties": { "parameters": { "type": "object", "properties": { "member_id": { "type": "string", "example": "000000000-00", "description": "The member's identification number" }, "first_name": { "type": "string", "example": "John", "description": "The member's first name" }, "last_name": { "type": "string", "example": "Doe", "description": "The member's last name" }, "birth_date": { "type": "string", "format": "date", "example": "1980-12-31", "description": "The member's birth date as an ISO-format date string" }, "insurance_partner": { "type": "string", "example": "aetna_better_health_il", "description": "The identifier for this insurance partner in the Ribbon API" } } }, "status": { "type": "object", "properties": { "is_valid": { "type": "boolean", "example": true, "description": "Whether the eligibility check was successful" }, "error": { "type": [ "string", "null" ], "description": "If `is_valid` is `true`, an error code explaining what went wrong. When `is_valid` is `false`, this will be `null`." } } }, "request_id": { "type": "string", "example": "40610978", "description": "A unique identifier for the given response which Ribbon can use to find it in our logs during support requests" }, "plan_info": { "type": "object", "properties": { "insurance_partner": { "type": "string", "example": "aetna_better_health_il", "description": "The identifier for this insurance partner in the Ribbon API" }, "plan_name": { "type": "string", "example": "Aetna Better Health of Illinois", "description": "User-friendly display name for this insurance partner" }, "is_active": { "type": "boolean", "example": true, "description": "Whether the member is actively covered by this plan" }, "plan_start_date": { "type": "string", "format": "date", "example": "2012-02-01", "description": "The starting date for the member's coverage by this plan" }, "plan_end_date": { "type": [ "string", "null" ], "format": "date", "example": "2024-01-01", "description": "The ending date for the member's coverage by this plan" } } }, "deductible_detail": { "type": "object", "properties": { "individual": { "type": "object", "properties": { "in_network": { "type": "object", "properties": { "spend": { "type": [ "string", "null" ], "example": "16.43", "description": "The amount the member has paid towards in-network deductibles, in dollars" }, "maximum": { "type": [ "string", "null" ], "example": "3000", "description": "The maximum amount the member can pay towards in-network deductibles, in dollars" }, "remaining": { "type": "string", "example": "2983.57", "description": "The remaining amount the member can pay towards in-network deductibles, in dollars" } } }, "out_of_network": { "type": "object", "properties": { "spend": { "type": [ "string", "null" ], "example": "16.43", "description": "The amount the member has paid towards out-of-network deductibles, in dollars" }, "maximum": { "type": [ "string", "null" ], "example": "6000", "description": "The maximum amount the member can pay towards out-of-network deductibles, in dollars" }, "remaining": { "type": [ "string", "null" ], "example": "5983.57", "description": "The remaining amount the member can pay towards out-of-network deductibles, in dollars" } } } } }, "family": { "type": "object", "properties": { "in_network": { "type": "object", "properties": { "spend": { "type": [ "string", "null" ], "example": "16.43", "description": "The amount the member has paid towards in-network deductibles, in dollars" }, "maximum": { "type": [ "string", "null" ], "example": "6000", "description": "The maximum amount the member can pay towards in-network deductibles, in dollars" }, "remaining": { "type": [ "string", "null" ], "example": "5983.57", "description": "The remaining amount the member can pay towards in-network deductibles, in dollars" } } }, "out_of_network": { "type": "object", "properties": { "spend": { "type": [ "string", "null" ], "example": "16.43", "description": "The amount the member has paid towards out-of-network deductibles, in dollars" }, "maximum": { "type": [ "string", "null" ], "example": "12000", "description": "The maximum amount the member can pay towards out-of-network deductibles, in dollars" }, "remaining": { "type": [ "string", "null" ], "example": "11983.57", "description": "The remaining amount the member can pay towards out-of-network deductibles, in dollars" } } } } } } }, "out_of_pocket_detail": { "type": "object", "properties": { "individual": { "type": "object", "properties": { "in_network": { "type": "object", "properties": { "spend": { "type": [ "string", "null" ], "example": "16.43", "description": "The amount the member has paid towards their in-network out-of-pocket maximum, in dollars" }, "maximum": { "type": [ "string", "null" ], "example": "3000", "description": "The maximum amount the member can pay towards their in-network out-of-pocket maximum, in dollars" }, "remaining": { "type": [ "string", "null" ], "example": "2983.57", "description": "The remaining amount the member can pay towards their in-network out-of-pocket maximum, in dollars" } } }, "out_of_network": { "type": "object", "properties": { "spend": { "type": [ "string", "null" ], "example": "16.43", "description": "The amount the member has paid towards their out-of-network out-of-pocket maximum, in dollars" }, "maximum": { "type": [ "string", "null" ], "example": "6000", "description": "The maximum amount the member can pay towards their out-of-network out-of-pocket maximum, in dollars" }, "remaining": { "type": [ "string", "null" ], "example": "5983.57", "description": "The remaining amount the member can pay towards their out-of-network out-of-pocket maximum, in dollars" } } } } }, "family": { "type": "object", "properties": { "in_network": { "type": "object", "properties": { "spend": { "type": [ "string", "null" ], "example": "16.43", "description": "The amount the member has paid towards their in-network out-of-pocket maximum, in dollars" }, "maximum": { "type": [ "string", "null" ], "example": "6000", "description": "The maximum amount the member can pay towards their in-network out-of-pocket maximum, in dollars" }, "remaining": { "type": [ "string", "null" ], "example": "5983.57", "description": "The remaining amount the member can pay towards their in-network out-of-pocket maximum, in dollars" } } }, "out_of_network": { "type": "object", "properties": { "spend": { "type": [ "string", "null" ], "example": "16.43", "description": "The amount the member has paid towards their out-of-network out-of-pocket maximum, in dollars" }, "maximum": { "type": [ "string", "null" ], "example": "12000", "description": "The maximum amount the member can pay towards their out-of-network out-of-pocket maximum, in dollars" }, "remaining": { "type": [ "string", "null" ], "example": "11983.57", "description": "The remaining amount the member can pay towards their out-of-network out-of-pocket maximum, in dollars" } } } } } } }, "primary_care_summary": { "$ref": "#/paths/~1eligibility/post/responses/200/content/application~1json/schema/properties/dme_summary" }, "dme_summary": { "type": "object", "properties": { "in_network": { "type": "object", "properties": { "copay": { "type": "string", "example": "30.0", "description": "The amount of the member's in-network copay, in dollars" }, "coinsurance": { "type": [ "string", "null" ], "example": "0.0" } } }, "out_of_network": { "type": "object", "properties": { "copay": { "type": "string", "example": "30.0", "description": "The amount of the member's out-of-network copay, in dollars" }, "coinsurance": { "type": [ "string", "null" ], "example": "0.0" } } } } }, "oncology_summary": { "$ref": "#/paths/~1eligibility/post/responses/200/content/application~1json/schema/properties/dme_summary" }, "vision_optometry_summary": { "$ref": "#/paths/~1eligibility/post/responses/200/content/application~1json/schema/properties/dme_summary" }, "physical_therapy_summary": { "$ref": "#/paths/~1eligibility/post/responses/200/content/application~1json/schema/properties/dme_summary" }, "specialist_office_summary": { "$ref": "#/paths/~1eligibility/post/responses/200/content/application~1json/schema/properties/dme_summary" }, "mental_health_summary": { "$ref": "#/paths/~1eligibility/post/responses/200/content/application~1json/schema/properties/dme_summary" }, "surgical_summary": { "$ref": "#/paths/~1eligibility/post/responses/200/content/application~1json/schema/properties/dme_summary" }, "urgent_care_summary": { "$ref": "#/paths/~1eligibility/post/responses/200/content/application~1json/schema/properties/dme_summary" }, "diagnostic_lab_summary": { "$ref": "#/paths/~1eligibility/post/responses/200/content/application~1json/schema/properties/dme_summary" }, "asc_facility_summary": { "$ref": "#/paths/~1eligibility/post/responses/200/content/application~1json/schema/properties/dme_summary" }, "chiropractic_summary": { "$ref": "#/paths/~1eligibility/post/responses/200/content/application~1json/schema/properties/dme_summary" }, "mri_ct_scan_summary": { "$ref": "#/paths/~1eligibility/post/responses/200/content/application~1json/schema/properties/dme_summary" }, "x_ray_summary": { "$ref": "#/paths/~1eligibility/post/responses/200/content/application~1json/schema/properties/dme_summary" }, "speech_therapy_summary": { "$ref": "#/paths/~1eligibility/post/responses/200/content/application~1json/schema/properties/dme_summary" }, "occupational_therapy_summary": { "$ref": "#/paths/~1eligibility/post/responses/200/content/application~1json/schema/properties/dme_summary" }, "emergency_medical_summary": { "$ref": "#/paths/~1eligibility/post/responses/200/content/application~1json/schema/properties/dme_summary" }, "wellness_or_routine_visit_summary": { "$ref": "#/paths/~1eligibility/post/responses/200/content/application~1json/schema/properties/dme_summary" }, "podiatry_office_summary": { "$ref": "#/paths/~1eligibility/post/responses/200/content/application~1json/schema/properties/dme_summary" }, "outpatient_professional_summary": { "$ref": "#/paths/~1eligibility/post/responses/200/content/application~1json/schema/properties/dme_summary" }, "anesthesia_summary": { "$ref": "#/paths/~1eligibility/post/responses/200/content/application~1json/schema/properties/dme_summary" }, "substance_abuse_professional_summary": { "$ref": "#/paths/~1eligibility/post/responses/200/content/application~1json/schema/properties/dme_summary" }, "substance_abuse_in_patient_facility_summary": { "$ref": "#/paths/~1eligibility/post/responses/200/content/application~1json/schema/properties/dme_summary" }, "substance_abuse_out_patient_facility_summary": { "$ref": "#/paths/~1eligibility/post/responses/200/content/application~1json/schema/properties/dme_summary" }, "flu_vaccination_summary": { "$ref": "#/paths/~1eligibility/post/responses/200/content/application~1json/schema/properties/dme_summary" }, "hospital_inpatient_summary": { "$ref": "#/paths/~1eligibility/post/responses/200/content/application~1json/schema/properties/dme_summary" }, "pharmacy_summary": { "$ref": "#/paths/~1eligibility/post/responses/200/content/application~1json/schema/properties/dme_summary" }, "hospital_outpatient_summary": { "$ref": "#/paths/~1eligibility/post/responses/200/content/application~1json/schema/properties/dme_summary" }, "telemedicine_primary_care_summary": { "$ref": "#/paths/~1eligibility/post/responses/200/content/application~1json/schema/properties/dme_summary" }, "telemedicine_specialist_summary": { "$ref": "#/paths/~1eligibility/post/responses/200/content/application~1json/schema/properties/dme_summary" }, "telemedicine_urgent_care_summary": { "$ref": "#/paths/~1eligibility/post/responses/200/content/application~1json/schema/properties/dme_summary" }, "telemedicine_physical_therapy_summary": { "$ref": "#/paths/~1eligibility/post/responses/200/content/application~1json/schema/properties/dme_summary" }, "telemedicine_mental_health_summary": { "$ref": "#/paths/~1eligibility/post/responses/200/content/application~1json/schema/properties/dme_summary" }, "psychotherapy_summary": { "$ref": "#/paths/~1eligibility/post/responses/200/content/application~1json/schema/properties/dme_summary" }, "snf_summary": { "$ref": "#/paths/~1eligibility/post/responses/200/content/application~1json/schema/properties/dme_summary" }, "snf_room_board_summary": { "$ref": "#/paths/~1eligibility/post/responses/200/content/application~1json/schema/properties/dme_summary" }, "home_health_care_summary": { "$ref": "#/paths/~1eligibility/post/responses/200/content/application~1json/schema/properties/dme_summary" }, "hospice_summary": { "$ref": "#/paths/~1eligibility/post/responses/200/content/application~1json/schema/properties/dme_summary" }, "professional_physician_visit_inpatient_summary": { "$ref": "#/paths/~1eligibility/post/responses/200/content/application~1json/schema/properties/dme_summary" } } } } } } }, "x-readme": { "explorer-enabled": false } } }, "/eligibility_insurance_partners": { "get": { "summary": "Search Supported Eligibility Insurances", "description": "Search or list all insurance partners supported by our eligibility features.\n", "operationId": "getEligibilityInsurancePartners", "tags": [ "Cost Estimates" ], "parameters": [ { "name": "search", "in": "query", "required": false, "description": "Fuzzy search input for insurance names", "schema": { "type": "string", "example": "aetna" } } ], "responses": { "200": { "description": "Returns a list of supported insurances", "content": { "application/json": { "schema": { "type": "object", "required": [ "count", "data" ], "properties": { "count": { "type": "integer", "example": 332, "description": "The total number of results matched." }, "data": { "type": "array", "items": { "$ref": "#/paths/~1eligibility_insurance_partners~1%7Binsurance_partner%7D/get/responses/200/content/application~1json/schema" } } } } } } } } } }, "/eligibility_insurance_partners/{insurance_partner}": { "get": { "summary": "Get Eligibility Insurance", "description": "Fetch an insurance partner supported by our eligibility features.\n", "operationId": "getEligibilityInsurancePartner", "tags": [ "Cost Estimates" ], "parameters": [ { "name": "insurance_partner", "in": "path", "required": true, "description": "The identifier for this insurance partner in the Ribbon API", "schema": { "type": "string", "example": "aetna_better_health_il" } } ], "responses": { "200": { "description": "Returns a single supported insurance", "content": { "application/json": { "schema": { "type": "object", "properties": { "insurance_partner": { "type": "string", "example": "aetna_better_health_il", "description": "Identifier for this insurance partner used by other endpoints in the Ribbon API" }, "display": { "type": "string", "example": "Aetna Better Health of Illinois", "description": "User-friendly display name for this insurance partner" } } } } } }, "404": { "description": "The given insurance partner identifier cannot be found", "content": { "application/json": { "schema": { "$ref": "#/paths/~1custom~1tin~1%7Btin_id%7D/get/responses/404/content/application~1json/schema" } } } } } } }, "/procedure_cost_estimate": { "get": { "summary": "Procedure Cost Estimate", "description": "Calculates estimated costs for a given procedure based on a user's location.\n\n#### Example Use Case\nEstimate the cost of a knee replacement surgery for a user in Boston so they can plan their personal finances accordingly.\n", "operationId": "getProcedureCostEstimate", "tags": [ "Cost Estimates" ], "parameters": [ { "name": "procedure_ids", "in": "query", "required": true, "description": "The UUIDs of the procedures to filter results to, as a comma-delimited string", "schema": { "type": "string", "example": "9f3fd9e8-96b0-4cc7-ab2c-8d538e9164ae,fbb223e6-9806-45b5-95b1-4d7a36cc9164" } }, { "name": "member_zip", "in": "query", "required": true, "description": "The zip code of the member we are generating cost estimates for", "schema": { "type": "string", "example": "60606" } }, { "name": "type", "in": "query", "required": false, "description": "The type of data to base cost estimates on: `claims` data or payer-filed `price_transparency` data. Defaults to `claims`.", "schema": { "type": "string", "enum": [ "claims", "price_transparency" ], "default": "claims", "example": "price_transparency" } }, { "name": "plan_id", "in": "query", "required": false, "description": "The UUID of the insurance plan to use when fetching negotiated rates with providers. Necessary only if searching for estimates using the 'price_transparency' `type`.", "schema": { "type": "string", "format": "uuid", "example": "a5a0c8ff-c62b-4a9e-af86-55e52bd7dc55" } } ], "responses": { "200": { "description": "Estimated costs for the given procedures", "content": { "application/json": { "schema": { "type": "object", "properties": { "parameters": { "type": "object", "properties": { "procedures": { "type": "array", "items": { "$ref": "#/paths/~1procedures~1%7Bprocedure_uuid%7D/get/responses/200/content/application~1json/schema" } }, "member_zip": { "type": "string", "example": "60606" } } }, "data": { "type": "object", "properties": { "cost_estimates": { "type": "object", "properties": { "minimum": { "type": "number", "example": 100, "description": "Minimum cost for all of the given procedures combined." }, "median": { "type": "number", "example": 300, "description": "Median cost for all of the given procedures combined." }, "maximum": { "type": "number", "example": 500, "description": "Maximum cost for all of the given procedures combined." } } } } } } } } } } } } }, "/network_analysis": { "get": { "summary": "Network Analysis Based on Geography", "description": "View a provider network across different geographies (i.e. counties).\n\n#### Example Use Case\nIn looking to expand to a new region, analyze existing provider networks in the region to understand how best to construct your own.\n", "operationId": "getNetworkAnalysis", "tags": [ "Networks" ], "parameters": [ { "name": "insurance_id", "in": "query", "required": true, "description": "A unique identifier for a single provider network from the Insurances reference endpoint.", "schema": { "type": "string", "format": "uuid", "example": "000912ad-5674-4c23-9b00-dca4e76aaa07" } }, { "name": "ssa_codes", "in": "query", "required": true, "description": "SSA codes of the counties to run a network analysis on. \n\nA maximum of 50 codes may be included in a single request.\n", "schema": { "type": "string", "example": "14141,14150" } }, { "name": "exclude_npis", "in": "query", "required": false, "description": "When set to `true` the response will not list specific NPIs in the network but will continue to include the `npi_count` fields to let you know how many there are.\n\nThis parameter can be used to greater lower the amount of data sent back when specific NPIs are not necessary.\n", "schema": { "type": "boolean", "default": false, "example": true } } ], "responses": { "200": { "description": "Returns the size of the provider network for the given insurance in the given counties.", "content": { "application/json": { "schema": { "type": "object", "required": [ "parameters", "data" ], "properties": { "parameters": { "type": "object", "required": [ "insurance_id", "ssa_codes", "npi_count" ], "properties": { "insurance_id": { "type": "string", "format": "uuid", "example": "000912ad-5674-4c23-9b00-dca4e76aaa07", "description": "A unique identifier for a single provider network from the Insurances reference endpoint." }, "ssa_codes": { "type": "array", "items": { "type": "string", "example": "14141" }, "description": "The SSA codes the network analysis was run on.", "example": [ "14141", "14150" ] }, "npi_count": { "type": "integer", "description": "How many unique NPIs accept the given insurance across all requested counties.", "example": 2999 } } }, "data": { "type": "array", "items": { "type": "object", "required": [ "ssa_code", "display", "npi_count" ], "properties": { "ssa_code": { "type": "string", "example": "14141", "description": "The SSA code of the county this data is for." }, "display": { "type": "string", "example": "Cook, IL", "description": "The display name of the county this data is for." }, "npi_count": { "type": "integer", "example": 2103, "description": "How many unique NPIs accept the given insurance in this county." }, "npis": { "type": "array", "items": { "type": "string", "example": "1234567890" }, "description": "The NPIs of providers who accept the given insurance in this county.\n\nIf the `exclude_npis` parameter was set to true, this key will not be present.\n" } } } } } } } } }, "400": { "description": "The given request was invalid - the required parameters were missing or invalid, or it specified too many SSA codes.", "content": { "application/json": { "schema": { "type": "object", "description": "An error returned from the API", "required": [ "error" ], "properties": { "error": { "type": "object", "required": [ "status", "code", "message" ], "properties": { "status": { "type": "integer", "description": "The HTTP error code associated with this error", "example": 400 }, "code": { "type": "string", "enum": [ "invalid_query_params", "bad_request" ] }, "message": { "type": [ "object", "string" ], "description": "An object representing what exactly went wrong. The keys available in this object vary with the type of error returned.\n", "example": { "query": { "_schema": [ "parameters 'npis' and 'location_ids' cannot be used together" ] } } } } } } } } } } } } } }, "components": { "securitySchemes": { "BearerAuth": { "type": "http", "scheme": "bearer" } } }, "security": [ { "BearerAuth": [] } ] }