{"id":27044003,"url":"https://github.com/nikothomas/ribbon-health","last_synced_at":"2026-02-14T03:15:17.066Z","repository":{"id":286075443,"uuid":"951239361","full_name":"nikothomas/ribbon-health","owner":"nikothomas","description":"An API client for interacting with the data provided by Ribbon Health, including information about healthcare providers, locations, insurances, and more.","archived":false,"fork":false,"pushed_at":"2025-03-19T13:33:43.000Z","size":220,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-04T07:47:23.503Z","etag":null,"topics":["api-client","healthcare","medical","openapi","ribbon","ribbon-health"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nikothomas.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-03-19T11:24:02.000Z","updated_at":"2025-03-19T13:33:33.000Z","dependencies_parsed_at":"2025-04-04T07:47:25.124Z","dependency_job_id":"777a9195-beac-43be-86a9-a744f1872df2","html_url":"https://github.com/nikothomas/ribbon-health","commit_stats":null,"previous_names":["nikothomas/ribbon-health"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nikothomas%2Fribbon-health","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nikothomas%2Fribbon-health/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nikothomas%2Fribbon-health/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nikothomas%2Fribbon-health/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nikothomas","download_url":"https://codeload.github.com/nikothomas/ribbon-health/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247289436,"owners_count":20914464,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api-client","healthcare","medical","openapi","ribbon","ribbon-health"],"created_at":"2025-04-05T05:17:46.671Z","updated_at":"2026-02-14T03:15:12.042Z","avatar_url":"https://github.com/nikothomas.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Rust API client for Ribbon Health\n\nAn API client for interacting with the data provided by Ribbon Health, including information about healthcare providers, locations, insurances, and more.\n\n[![Crates.io Version](https://img.shields.io/crates/v/ribbon-health.svg)](https://crates.io/crates/ribbon-health)\n[![Tests Status](https://github.com/nikothomas/ribbon-health/actions/workflows/test.yml/badge.svg)](https://github.com/nikothomas/ribbon-health/actions/workflows/test.yml)\n[![codecov](https://codecov.io/gh/nikothomas/ribbon-health/branch/main/graph/badge.svg)](https://codecov.io/gh/nikothomas/ribbon-health)\n[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fnikothomas%2Fribbon-health.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2Fnikothomas%2Fribbon-health?ref=badge_shield)\n[![Documentation](https://docs.rs/ribbon-health/badge.svg)](https://docs.rs/ribbon-health)\n[![License](https://img.shields.io/badge/license-MIT%2FApache--2.0-blue.svg)](LICENSE-MIT)\n\n## Overview\n\nThis API client was generated by the [OpenAPI Generator](https://openapi-generator.tech) project along with some custom tooling where necessary.\n\n- API version: 2.2\n- Package version: 2.0.1\n- Generator version: 7.12.0\n- Build package: `org.openapitools.codegen.languages.RustClientCodegen`\n\n## Installation\n\n### From crates.io\n\nAdd the dependency to your `Cargo.toml`:\n\n```toml\n[dependencies]\nribbon-health = \"2.0.1\"\n```\n\n### With specific features\n\nThe crate offers optional features:\n\n```toml\n[dependencies]\nribbon-health = { version = \"2.0.1\", features = [\"bon\"] }\n```\n\n### From GitHub repository\n\nYou can also add the dependency directly from this GitHub repository:\n\n```toml\n[dependencies]\nribbon-health = { git = \"https://github.com/nikothomas/ribbon-health-rs\", branch = \"main\" }\n```\n\n### Local Development\n\nIf you're developing with a local copy, put the package under your project folder in a directory named `ribbon-health` and add the following to `Cargo.toml` under `[dependencies]`:\n\n```toml\nribbon-health = { path = \"./ribbon-health\" }\n```\n\n## Usage Examples\n\n### Basic Setup\n\n```rust\nuse std::sync::Arc;\nuse ribbon_health::{\n    apis::{\n        configuration::Configuration,\n        ApiClient, Api, providers_api::GetCustomProvidersParams\n    },\n};\n\n#[tokio::main]\nasync fn main() -\u003e Result\u003c(), Box\u003cdyn std::error::Error\u003e\u003e {\n    // Create a configuration with your Ribbon Health API token\n    let mut config = Configuration::default();\n    config.bearer_access_token = Some(\"YOUR_API_TOKEN\".to_string());\n    \n    // Create an API client with the configuration\n    let client = ApiClient::new(Arc::new(config));\n    \n    // Now you can use any of the API endpoints\n    let providers_api = client.providers_api();\n    \n    // Example: Search for healthcare providers\n    let params = GetCustomProvidersParams {\n        specialty: Some(\"Cardiology\".to_string()),\n        state: Some(\"NY\".to_string()),\n        page_size: Some(10),\n        page: Some(1),\n        // Optional parameters can be set as needed\n        min_rating: Some(4),\n        // Set other fields to None\n        max_locations: None,\n        fields: None,\n        _excl_fields: None,\n        npis: None,\n        name: None,\n        provider_types: None,\n        _excl_provider_types: None,\n        gender: None,\n        max_age: None,\n        min_age: None,\n        language: None,\n        _excl_language: None,\n        address: None,\n        location_ids: None,\n        _excl_location_ids: None,\n        location: None,\n        min_location_confidence: None,\n        min_confidence: None,\n        distance: None,\n        insurance_ids: None,\n        _excl_insurance_ids: None,\n        insurance_carrier_name: None,\n        location_insurance_ids: None,\n        _excl_location_insurance_ids: None,\n        national_bluecard: None,\n        specialty_ids: None,\n        _excl_specialty_ids: None,\n        specialty_ids_primary: None,\n        _excl_specialty_ids_primary: None,\n        specialty_primary: None,\n        apply_specialty_grouping: None,\n        procedure_ids: None,\n        _excl_procedure_ids: None,\n        procedure: None,\n        min_experience_index: None,\n        max_cost_index: None,\n        clinical_area: None,\n        clinical_area_ids: None,\n        _excl_clinical_area_ids: None,\n        condition: None,\n        condition_ids: None,\n        _excl_condition_ids: None,\n        treatment: None,\n        treatment_ids: None,\n        _excl_treatment_ids: None,\n        panel_ages: None,\n        _excl_panel_ages: None,\n        panel_sexes: None,\n        min_outcomes_index: None,\n        min_efficiency_index: None,\n        max_unit_cost_index: None,\n        max_ribbon_cost_score: None,\n        location_organization_ids: None,\n        _excl_location_organization_ids: None,\n        tin_ids: None,\n        tin_name: None,\n        tin_legal_name: None,\n    };\n    \n    // Execute the API call\n    let response = providers_api.get_custom_providers(params).await?;\n    \n    // Process the response\n    match response.entity {\n        Some(entity) =\u003e {\n            println!(\"Found {} providers\", entity.data.len());\n            for provider in entity.data {\n                println!(\"Provider: {} {} (NPI: {})\", \n                    provider.first_name.unwrap_or_default(), \n                    provider.last_name.unwrap_or_default(),\n                    provider.npi);\n            }\n        },\n        None =\u003e println!(\"No providers found\"),\n    }\n    \n    Ok(())\n}\n```\n\n### Get Provider by NPI\n\n```rust\nuse std::sync::Arc;\nuse ribbon_health::{\n    apis::{\n        configuration::Configuration,\n        ApiClient, Api, providers_api::GetCustomProviderParams\n    },\n};\n\nasync fn get_provider_by_npi(npi: \u0026str) -\u003e Result\u003c(), Box\u003cdyn std::error::Error\u003e\u003e {\n    // Create configuration and client\n    let mut config = Configuration::default();\n    config.bearer_access_token = Some(\"YOUR_API_TOKEN\".to_string());\n    let client = ApiClient::new(Arc::new(config));\n    \n    // Set up parameters\n    let params = GetCustomProviderParams {\n        npi: npi.to_string(),\n        max_insurances: Some(10),\n    };\n    \n    // Make the API call\n    let response = client.providers_api().get_custom_provider(params).await?;\n    \n    // Process the result\n    if let Some(provider) = response.entity {\n        println!(\"Provider details: {}\", provider.npi);\n        if let Some(locations) = provider.locations {\n            println!(\"Practice at {} locations\", locations.len());\n            for location in locations {\n                println!(\"- {}\", location.address.unwrap_or_default());\n            }\n        }\n    }\n    \n    Ok(())\n}\n```\n\n### Using the Builder Pattern with the `bon` Feature\n\nThe `bon` feature adds builder pattern support to parameter structs, making it easier to construct API requests with many optional parameters:\n\n```rust\nuse std::sync::Arc;\nuse ribbon_health::{\n    apis::{\n        configuration::Configuration,\n        ApiClient, Api, providers_api::GetCustomProvidersParams\n    },\n};\n\n#[tokio::main]\nasync fn main() -\u003e Result\u003c(), Box\u003cdyn std::error::Error\u003e\u003e {\n    // Create a configuration with your Ribbon Health API token\n    let mut config = Configuration::default();\n    config.bearer_access_token = Some(\"YOUR_API_TOKEN\".to_string());\n    \n    // Create an API client with the configuration\n    let client = ApiClient::new(Arc::new(config));\n    \n    // Use the builder pattern to construct parameters\n    // This is much cleaner than setting dozens of fields to None\n    let params = GetCustomProvidersParams::builder()\n        .specialty(Some(\"Cardiology\".to_string()))\n        .state(Some(\"NY\".to_string()))\n        .page_size(Some(10))\n        .page(Some(1))\n        .min_rating(Some(4))\n        .gender(Some(\"f\".to_string()))  // Only female providers\n        .insurance_carrier_name(Some(\"Aetna\".to_string()))\n        .distance(Some(25.0))  // Within 25 miles\n        .location(Some(\"40.7128,-74.0060\".to_string()))  // NYC coordinates\n        .build();\n    \n    // Execute the API call\n    let response = client.providers_api().get_custom_providers(params).await?;\n    \n    // Process the response\n    if let Some(entity) = response.entity {\n        println!(\"Found {} providers\", entity.data.len());\n        // Process providers...\n    }\n    \n    Ok(())\n}\n```\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnikothomas%2Fribbon-health","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnikothomas%2Fribbon-health","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnikothomas%2Fribbon-health/lists"}