{"id":26188173,"url":"https://github.com/peopledatalabs/peopledatalabs-rust","last_synced_at":"2026-04-04T06:12:44.120Z","repository":{"id":194541186,"uuid":"684349750","full_name":"peopledatalabs/peopledatalabs-rust","owner":"peopledatalabs","description":"A Rust client for the People Data Labs API","archived":false,"fork":false,"pushed_at":"2025-02-21T04:23:14.000Z","size":93,"stargazers_count":2,"open_issues_count":1,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-28T12:51:17.725Z","etag":null,"topics":["api","companies","company-enrichment","company-search","contact-data","data-enrichment","enrichment","people","peopledatalabs","person-data","person-enrichment","person-search","rust","rust-sdk","search"],"latest_commit_sha":null,"homepage":"https://docs.peopledatalabs.com/docs/rust-sdk","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/peopledatalabs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2023-08-29T00:43:13.000Z","updated_at":"2025-02-21T04:23:00.000Z","dependencies_parsed_at":"2023-09-14T00:45:53.844Z","dependency_job_id":"84c8a9ff-3175-486b-879d-1bc401727dee","html_url":"https://github.com/peopledatalabs/peopledatalabs-rust","commit_stats":null,"previous_names":["peopledatalabs/peopledatalabs-rust"],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peopledatalabs%2Fpeopledatalabs-rust","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peopledatalabs%2Fpeopledatalabs-rust/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peopledatalabs%2Fpeopledatalabs-rust/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peopledatalabs%2Fpeopledatalabs-rust/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/peopledatalabs","download_url":"https://codeload.github.com/peopledatalabs/peopledatalabs-rust/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248508887,"owners_count":21115889,"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","companies","company-enrichment","company-search","contact-data","data-enrichment","enrichment","people","peopledatalabs","person-data","person-enrichment","person-search","rust","rust-sdk","search"],"created_at":"2025-03-11T23:57:10.814Z","updated_at":"2026-04-04T06:12:44.106Z","avatar_url":"https://github.com/peopledatalabs.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://www.peopledatalabs.com/images/logos/company-logo.png\" style=\"background-color: white; padding: 5px 10px;\" width=\"250\" alt=\"People Data Labs Logo\"\u003e\n\u003c/p\u003e\n\u003ch1 align=\"center\"\u003ePeople Data Labs Rust Client\u003c/h1\u003e\n\u003cp align=\"center\"\u003eOfficial Rust client for the People Data Labs API.\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/peopledatalabs/peopledatalabs-rust\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/repo%20status-Active-limegreen\" alt=\"Repo Status\"\u003e\n  \u003c/a\u003e\u0026nbsp;\n  \u003ca href=\"https://github.com/peopledatalabs/peopledatalabs-rust/actions/workflows/test.yml\"\u003e\n    \u003cimg src=\"https://github.com/peopledatalabs/peopledatalabs-rust/actions/workflows/test.yml/badge.svg\" alt=\"Tests Status\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n## Table of Contents\n\n- [🔧 Installation](#installation)\n- [🚀 Usage](#usage)\n- [🏝 Sandbox Usage](#sandbox)\n- [🌐 Endpoints](#endpoints)\n- [📘 Documentation](#documentation)\n\n## 🔧 Installation \u003ca name=\"installation\"\u003e\u003c/a\u003e\n\n1. To use peopledatalabs SDK in your project initialize your Rust crate then run:\n\n```bash\ncargo add peopledatalabs\n```\n\n2. Sign up for a [free PDL API key](https://www.peopledatalabs.com/signup).\n3. Set your API key as a environment variable.\n\n## 🚀 Usage \u003ca name=\"usage\"\u003e\u003c/a\u003e\n\nFirst, create the PeopleDataLabs client:\n\n```rust\nlet api_key = std::env::var(\"PDL_API_KEY\").unwrap();\nlet client = PDL::new(\u0026api_key);\n```\n\nThen, send requests to any PDL API Endpoint.\n\n### Person Data\n\n#### Enrichment\n\n```rust\nlet mut person_params = PersonParams::default();\nperson_params.name = Some(vec![\"josh finnie\".to_string()]);\nperson_params.location = Some(vec![\"washington, dc\".to_string()]);\n\nlet mut enrich_params = EnrichPersonParams::default();\nenrich_params.person_params = person_params.clone();\n\nlet results = client.person.enrich(enrich_params);\n```\n\n#### Bulk Enrichment\n\n```rust\nlet mut person_params = PersonParams::default();\nperson_params.name = Some(vec![\"josh finnie\".to_string()]);\nperson_params.location = Some(vec![\"washington, dc\".to_string()]);\n\nlet request = BulkEnrichSinglePersonParams {\n    params: person_params.clone(),\n    metadata: None,\n};\nlet bulk_enrich_params = BulkEnrichPersonParams {\n    requests: vec![request],\n};\n\nlet results = client.person.bulk_enrich(bulk_enrich_params);\n```\n\n#### Search (Elasticsearch)\n\n```rust\nlet mut search_base_params = SearchBaseParams::default();\nsearch_base_params.query = Some(serde_json::value::Value::String(\n    \"{'bool':{'must': [{'term': {'job_title_role': 'health'}},]}}\".to_string(),\n));\n\nlet mut search_params = SearchParams::default();\nsearch_params.search_base_params = search_base_params;\n\nlet search_results = client.person.search(search_params);\n```\n\n#### Search (SQL)\n\n```rust\nlet query = r#\"\n    SELECT * FROM person\n        WHERE location_country='mexico'\n        AND job_title_role='health'\n        AND phone_numbers IS NOT NULL;\n\"#.to_string();\nlet mut search_base_params = SeachBaseParams::default();\nsearch_base_params.sql = query;\n\nlet mut seach_params = SearchParams::default();\nsearch_params.search_base_params = search_base_params;\n\nlet search_results = client.person.searach(seach_params);\n```\n\n#### `PDL_ID` (Retrieve API)\n\n```rust\nlet retrieve_person_params = RetrievePersonParams {\n    base_params: None,\n    person_id: \"82MYIGZzMttzdyKiQBv4ZQ_0000\".to_string(),\n};\n\nlet retrieve_results = client.person.retrieve(retrieve_person_params);\n```\n\n#### Bulk Retrieve API\n\n```rust\nlet retrieve_request = BulkRetrieveSinglePersonParams {\n    id: \"82MYIGZzMttzdyKiQBv4ZQ_0000\".to_string(),\n    metadata: None,\n};\n\nlet mut bulk_retrieve_params = BulkRetrievePersonParams::default();\nbulk_retrieve_params.requests = vec![retrieve_request];\n\nlet bulk_retrieve_results = client.person.bulk_retrieve(bulk_retrieve_params);\n```\n\n#### Fuzzy Enrichment (Identify API)\n\n```rust\nlet mut person_params = PersonParams::default();\nperson_params.name = Some(vec![\"josh finnie\".to_string()]);\nperson_params.location = Some(vec![\"washington, dc\".to_string()]);\n\nlet mut identify_params = IdentifyPersonParams::default();\nidentify_params.person_params = person_params.clone();\n\nlet identify_results = client.person.identify(identify_params);\n```\n\n### Company Data\n\n#### Enrichment\n\n```rust\nlet mut company_params = CompanyParams::default();\ncompany_params.name = Some(\"google\".to_string());\n\nlet enrich_params = EnrichCompanyParams {\n    base_params: None,\n    company_params,\n    additional_params: None,\n};\n\nlet enrich_request = client.company.enrich(enrich_params);\n```\n\n#### Search (Elasticsearch)\n\n```rust\nlet mut search_base_params = SearchBaseParams::default();\nsearch_base_params.query = Some(serde_json::value::Value::String(\n    r#\"{'query': {'bool': {'must': {\n            {\"term\": {\"tags\": \"bigdata\"}},\n            {\"term\": {\"industry\": \"financial services\"}},\n            {\"term\": {\"location.country\": \"united states\"}},\n        },},},\n    }\"#.to_string(),\n));\n\nlet mut search_params = SearchParams::default();\nsearch_params.search_base_params = search_base_params;\n\nlet search_results = client.company.search(search_params);\n```\n\n#### Search (SQL)\n\n```rust\nlet mut search_base_params = SearchBaseParams::default();\nsearch_base_params.sql = Some(\"SELECT * FROM company WHERE website='google.com';\".to_string());\n\nlet search_params = SearchParams {\n    base_params: None,\n    search_base_params,\n    additional_params: None,\n};\n\nlet search_results = client.company.search(search_params);\n```\n\n### Supporting APIs\n\n#### Get Autocomplete Suggestions\n\n```rust\nlet autocomplete_base_params = AutocompleteBaseParams{\n    field: \"text\".to_string(),\n    text: Some(\"full\".to_string())\n};\nlet autocomplete_params = AutocompleteParams {\n    base_params: None,\n    autocomplete_base_params,\n};\n\nlet request = client.autocomplete.autocomplete(autocomplete_params);\n```\n\n#### Clean Raw Company Strings\n\n```rust\nlet mut clean_params = CleanCompanyParams::default();\nclean_params.name = Some(\"google\".to_string());\n\nlet clean_results = client.company.clean(clean_params);\n```\n\n#### Clean Raw Location Strings\n\n```rust\nlet base_params = BaseParams::default();\nlet location_params = LocationParams {\n    location: Some(\"New York, NY\".to_string()),\n};\nlet params = CleanLocationParams {\n    base_params: None,\n    location_params,\n    additional_params: None,\n};\n\nlet results = client.location.clean(params);\n```\n\n#### Clean Raw School Strings\n\n```rust\nlet mut school_params = SchoolParams::default();\nschool_params.name = Some(\"UConn\".to_string());\nlet params = CleanSchoolParams {\n    base_params: None,\n    school_params,\n    additional_params: None,\n};\n\nlet results = client.school.clean(params);\n```\n\n#### Enrich Job Title\n\n```rust\nlet job_title_base_params = JobTitleBaseParams {\n    job_title: Some(\"software engineer\".to_string()),\n};\nlet params = JobTitleParams {\n    base_params: None,\n    job_title_base_params,\n};\n\nlet results = client.job_title.get(params);\n```\n\n#### Enrich IP\n\n```rust\nlet mut ip_base_params = IPBaseParams::default();\nip_base_params.ip = Some(\"72.212.42.228\".to_string());\nlet params = IPParams {\n    base_params: None,\n    ip_base_params,\n};\n\nlet results = client.ip.get(params);\n```\n\n## 🏝 Sandbox Usage \u003ca name=\"sandbox\"\u003e\u003c/a\u003e\n```rust\n// To enable sandbox usage, pass in the following options to the PDLClient before building\nlet api_key = std::env::var(\"PDL_API_KEY\").unwrap();\nlet mut client_options = PDLCLientOptions::default();\nclient_options.sandbox = true;\nlet client = PDLClient::new(\u0026api_key).options(client_options).build();\n```\n\n## 🌐 Endpoints \u003ca name=\"endpoints\"\u003e\u003c/a\u003e\n\n**Person Endpoints**\n\n| API Endpoint                                                                           | SDK Function                         |\n|----------------------------------------------------------------------------------------|--------------------------------------|\n| [Person Enrichment API](https://docs.peopledatalabs.com/docs/enrichment-api)           | `client.person.enrich(params)`       |\n| [Person Bulk Enrichment API](https://docs.peopledatalabs.com/docs/bulk-enrichment-api) | `client.person.bulk_enrich(params)`   |\n| [Person Search API](https://docs.peopledatalabs.com/docs/search-api)                   | `client.person.search(params)`       |\n| [Person Retrieve API](https://docs.peopledatalabs.com/docs/person-retrieve-api)        | `client.person.retrieve(params)`     |\n| [Person Bulk Retrieve API](https://docs.peopledatalabs.com/docs/bulk-person-retrieve)  | `client.person.bulk_retrieve(params)` |\n| [Person Identify API](https://docs.peopledatalabs.com/docs/identify-api)               | `client.person.identify(params)`     |\n\n**Company Endpoints**\n\n| API Endpoint                                                                          | SDK Function                    |\n| ------------------------------------------------------------------------------------- |---------------------------------|\n| [Company Enrichment API](https://docs.peopledatalabs.com/docs/company-enrichment-api) | `client.company.enrich(params)` |\n| [Company Search API](https://docs.peopledatalabs.com/docs/company-search-api)         | `client.company.search(params)` |\n\n**Supporting Endpoints**\n\n| API Endpoint                                                                            | SDK Function                    |\n| --------------------------------------------------------------------------------------- |---------------------------------|\n| [Autocomplete API](https://docs.peopledatalabs.com/docs/autocomplete-api)               | `client.autocomplete.autocomplete(params)`   |\n| [Company Cleaner API](https://docs.peopledatalabs.com/docs/cleaner-apis#companyclean)   | `client.company.clean(params)`  |\n| [Location Cleaner API](https://docs.peopledatalabs.com/docs/cleaner-apis#locationclean) | `client.location.clean(params)` |\n| [School Cleaner API](https://docs.peopledatalabs.com/docs/cleaner-apis#schoolclean)     | `client.school.clean(params)`   |\n| [Job Title Enrichment API](https://docs.peopledatalabs.com/docs/job-title-enrichment-api) | `client.job_title.enrich(params)` |\n| [IP Enrichment API](https://docs.peopledatalabs.com/docs/ip-enrichment-api) | `client.ip.enrich(params)` |\n\n## 📘 Documentation \u003ca name=\"documentation\"\u003e\u003c/a\u003e\n\nAll of our API endpoints are documented at: https://docs.peopledatalabs.com/\n\nThese docs describe the supported input parameters, output responses and also provide additional technical context.\n\nAs illustrated in the [Endpoints](#endpoints) section above, each of our API endpoints is mapped to a specific method in the API Client. For each of these class methods, **all function inputs are mapped as input parameters to the respective API endpoint**, meaning that you can use the API documentation linked above to determine the input parameters for each endpoint.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpeopledatalabs%2Fpeopledatalabs-rust","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpeopledatalabs%2Fpeopledatalabs-rust","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpeopledatalabs%2Fpeopledatalabs-rust/lists"}