{"id":43009895,"url":"https://github.com/merge-api/merge-csharp-client","last_synced_at":"2026-01-31T05:08:44.130Z","repository":{"id":231615766,"uuid":"777843960","full_name":"merge-api/merge-csharp-client","owner":"merge-api","description":"The C Sharp SDK for accessing various Merge Unified APIs","archived":false,"fork":false,"pushed_at":"2025-07-31T23:58:34.000Z","size":4326,"stargazers_count":6,"open_issues_count":3,"forks_count":3,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-10-08T15:54:36.070Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/merge-api.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,"zenodo":null}},"created_at":"2024-03-26T15:54:06.000Z","updated_at":"2025-09-30T14:08:23.000Z","dependencies_parsed_at":"2024-04-04T23:23:09.237Z","dependency_job_id":"ef94adc5-f380-4d34-9e8a-1d9885601532","html_url":"https://github.com/merge-api/merge-csharp-client","commit_stats":null,"previous_names":["merge-api/merge-csharp-client"],"tags_count":21,"template":false,"template_full_name":null,"purl":"pkg:github/merge-api/merge-csharp-client","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/merge-api%2Fmerge-csharp-client","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/merge-api%2Fmerge-csharp-client/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/merge-api%2Fmerge-csharp-client/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/merge-api%2Fmerge-csharp-client/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/merge-api","download_url":"https://codeload.github.com/merge-api/merge-csharp-client/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/merge-api%2Fmerge-csharp-client/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28929865,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-31T04:05:25.756Z","status":"ssl_error","status_checked_at":"2026-01-31T04:02:35.005Z","response_time":128,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":[],"created_at":"2026-01-31T05:08:43.494Z","updated_at":"2026-01-31T05:08:44.123Z","avatar_url":"https://github.com/merge-api.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Merge .NET Library\n\nThe official Merge C# library, supporting .NET Standard, .NET Core, and .NET Framework. \n\n## Documentation\n\nAPI reference documentation is available [here](https://docs.merge.dev/basics/authentication/).\n\n## Installation\n\nUsing the .NET Core command-line interface (CLI) tools:\n\n```sh\ndotnet add package Merge.Client\n```\n\nUsing the NuGet Command Line Interface (CLI):\n\n```sh\nnuget install Merge.Client\n```\n\n## Instantiation \nInstantiate the SDK using the `MergeClient` class. Note that all \nof the SDK methods are awaitable!\n\n```csharp\nusing Merge.Client;\nusing Merge.Client.Ats;\n\nvar merge = new MergeClient(\n  \"YOUR_API_KEY\", \"YOUR_ACCOUNT_TOKEN\"\n)\n```\n\n## Categories\n\nThis SDK contains the ATS, HRIS, CRM, Ticketing, Accounting, and File Storage categories. Even if you do not plan on \nusing more than one Merge API category right now, the SDK provides upgrade-flexibility in case you find new Merge API categories useful in the future.\n\nEach category is namespaced:\n\n```csharp\nvar merge = new MergeClient(\n  \"YOUR_API_KEY\", \"YOUR_ACCOUNT_TOKEN\"\n)\n\nmerge.ATS. # APIs specific to the ATS Category\n\nmerge.HRIS. # APIs specific to the HRIS Category\n```\n\n## HTTP Client\nYou can override the HttpClient by passing in `ClientOptions`. \n\n```csharp\nvar merge = new MergeClient(\"YOUR_API_KEY\", \"YOUR_ACCOUNT_ID\", new ClientOptions{\n    HttpClient = ... // Override the Http Client\n    BaseURL = ... // Override the Base URL\n})\n```\n\n## Exception Handling\nWhen the API returns a non-zero status code, (4xx or 5xx response), \na subclass of MergeException will be thrown:\n\n```csharp\nusing Merge.Client;\n\ntry {\n  merge.Ats.Candidates.Retrieve(...);    \n} catch (MergeException e) {\n  System.Console.WriteLine(e.Message) \n  System.Console.WriteLine(e.StatusCode) \n}\n```\n\n## Usage \n\nBelow are code snippets of how you can use the C# SDK.\n\n### Create Link Token\n\n```c#\nusing Merge.Client;\nusing Merge.Client.Ats;\n\nvar merge = new MergeClient(\"YOUR_API_KEY\", \"YOUR_ACCOUNT_TOKEN\")\n\nmerge.Ats.LinkToken.Create(new EndUserDetailsRequest{\n  EndUserEmailAddress = \"john.smith@gmail.com\",\n  EndUserOrganizationName = \"acme\",\n  EndUserOriginId = \"1234\",\n})\n```\n\n### Get Employee\n\n```c#\nusing Merge.Client;\nusing Merge.Client.Hris;\n\nvar merge = new MergeClient(\n  \"YOUR_API_KEY\", \"YOUR_ACCOUNT_ID\"\n)\nEmployee employee = merge.Hris.Employees.RetrieveAsync(\"0958cbc6-6040-430a-848e-aafacbadf4ae\",\n    new EmployeesRetrieveRequest{\n        IncludeRemoteData = true\n    }\n);\n```\n\n## Retries \n429 Rate Limit, and \u003e=500 Internal errors will all be \nretried twice with exponential backoff. You can override this behavior \nglobally or per-request. \n\n```csharp\nvar merge = new MergeClient(\"...\", new ClientOptions{\n    MaxRetries = 1 // Only retry once\n});\n```\n\n## Timeouts\nThe SDK defaults to a 60s timeout. You can override this behaviour\nglobally or per-request. \n\n```csharp\nvar merge = new MergeClient(\"...\", new ClientOptions{\n    TimeoutInSeconds = 20 // Lower timeout\n});\n```\n\n## Contributing\nWhile we value open-source contributions to this SDK, this library\nis generated programmatically. Additions made directly to this library\nwould have to be moved over to our generation code, otherwise they would\nbe overwritten upon the next generated release. Feel free to open a PR as a\nproof of concept, but know that we will not be able to merge it as-is.\nWe suggest opening an issue first to discuss with us!\n\nOn the other hand, contributions to the README are always very welcome!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmerge-api%2Fmerge-csharp-client","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmerge-api%2Fmerge-csharp-client","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmerge-api%2Fmerge-csharp-client/lists"}