{"id":28393045,"url":"https://github.com/apideck-libraries/sdk-csharp","last_synced_at":"2026-04-25T15:00:47.563Z","repository":{"id":266833432,"uuid":"889067575","full_name":"apideck-libraries/sdk-csharp","owner":"apideck-libraries","description":null,"archived":false,"fork":false,"pushed_at":"2026-04-21T14:49:30.000Z","size":10299,"stargazers_count":3,"open_issues_count":2,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-04-21T16:39:36.557Z","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":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/apideck-libraries.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":null,"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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-11-15T14:48:21.000Z","updated_at":"2026-04-18T13:00:26.000Z","dependencies_parsed_at":"2024-12-21T02:19:05.662Z","dependency_job_id":"b565e1f4-7a4c-4ca0-8349-70a5a77ff2d0","html_url":"https://github.com/apideck-libraries/sdk-csharp","commit_stats":null,"previous_names":["apideck-libraries/sdk-csharp"],"tags_count":66,"template":false,"template_full_name":null,"purl":"pkg:github/apideck-libraries/sdk-csharp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apideck-libraries%2Fsdk-csharp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apideck-libraries%2Fsdk-csharp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apideck-libraries%2Fsdk-csharp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apideck-libraries%2Fsdk-csharp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/apideck-libraries","download_url":"https://codeload.github.com/apideck-libraries/sdk-csharp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apideck-libraries%2Fsdk-csharp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32265977,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-25T09:15:33.318Z","status":"ssl_error","status_checked_at":"2026-04-25T09:15:31.997Z","response_time":59,"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":"2025-05-31T15:10:34.302Z","updated_at":"2026-04-25T15:00:47.548Z","avatar_url":"https://github.com/apideck-libraries.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ApideckUnifySdk\n\nDeveloper-friendly \u0026 type-safe Csharp SDK specifically catered to leverage *ApideckUnifySdk* API.\n\n\u003cdiv align=\"left\"\u003e\n    \u003ca href=\"https://www.speakeasy.com/?utm_source=apideck-unify-sdk\u0026utm_campaign=csharp\"\u003e\u003cimg src=\"https://custom-icon-badges.demolab.com/badge/-Built%20By%20Speakeasy-212015?style=for-the-badge\u0026logoColor=FBE331\u0026logo=speakeasy\u0026labelColor=545454\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://opensource.org/licenses/MIT\"\u003e\n        \u003cimg src=\"https://img.shields.io/badge/License-MIT-blue.svg\" style=\"width: 100px; height: 28px;\" /\u003e\n    \u003c/a\u003e\n\u003c/div\u003e\n\n\n\u003c!-- Start Summary [summary] --\u003e\n## Summary\n\nApideck: The Apideck OpenAPI Spec: SDK Optimized\n\nFor more information about the API: [Apideck Developer Docs](https://developers.apideck.com)\n\u003c!-- End Summary [summary] --\u003e\n\n\u003c!-- Start Table of Contents [toc] --\u003e\n## Table of Contents\n\u003c!-- $toc-max-depth=2 --\u003e\n* [ApideckUnifySdk](#apideckunifysdk)\n  * [SDK Installation](#sdk-installation)\n  * [SDK Example Usage](#sdk-example-usage)\n  * [Authentication](#authentication)\n  * [Available Resources and Operations](#available-resources-and-operations)\n  * [Pagination](#pagination)\n  * [Retries](#retries)\n  * [Error Handling](#error-handling)\n  * [Server Selection](#server-selection)\n  * [Custom HTTP Client](#custom-http-client)\n* [Development](#development)\n  * [Maturity](#maturity)\n  * [Contributions](#contributions)\n\n\u003c!-- End Table of Contents [toc] --\u003e\n\n\u003c!-- Start SDK Installation [installation] --\u003e\n## SDK Installation\n\n### NuGet\n\nTo add the [NuGet](https://www.nuget.org/) package to a .NET project:\n```bash\ndotnet add package ApideckUnifySdk\n```\n\n### Locally\n\nTo add a reference to a local instance of the SDK in a .NET project:\n```bash\ndotnet add reference src/ApideckUnifySdk/ApideckUnifySdk.csproj\n```\n\u003c!-- End SDK Installation [installation] --\u003e\n\n\u003c!-- Start SDK Example Usage [usage] --\u003e\n## SDK Example Usage\n\n### Example\n\n```csharp\nusing ApideckUnifySdk;\nusing ApideckUnifySdk.Models.Components;\nusing ApideckUnifySdk.Models.Requests;\nusing System.Collections.Generic;\n\nvar sdk = new Apideck(\n    consumerId: \"test-consumer\",\n    appId: \"dSBdXd2H6Mqwfg0atXHXYcysLJE9qyn1VwBtXHX\",\n    apiKey: \"\u003cYOUR_BEARER_TOKEN_HERE\u003e\"\n);\n\nAccountingTaxRatesAllRequest req = new AccountingTaxRatesAllRequest() {\n    ServiceId = \"salesforce\",\n    CompanyId = \"12345\",\n    Filter = new TaxRatesFilter() {\n        Assets = true,\n        Equity = true,\n        Expenses = true,\n        Liabilities = true,\n        Revenue = true,\n    },\n    PassThrough = new Dictionary\u003cstring, object\u003e() {\n        { \"search\", \"San Francisco\" },\n    },\n    Fields = \"id,updated_at\",\n};\n\nAccountingTaxRatesAllResponse? res = await sdk.Accounting.TaxRates.ListAsync(req);\n\nwhile(res != null)\n{\n    // handle items\n\n    res = await res.Next!();\n}\n```\n\u003c!-- End SDK Example Usage [usage] --\u003e\n\n\u003c!-- Start Authentication [security] --\u003e\n## Authentication\n\n### Per-Client Security Schemes\n\nThis SDK supports the following security scheme globally:\n\n| Name     | Type | Scheme      |\n| -------- | ---- | ----------- |\n| `ApiKey` | http | HTTP Bearer |\n\nTo authenticate with the API the `ApiKey` parameter must be set when initializing the SDK client instance. For example:\n```csharp\nusing ApideckUnifySdk;\nusing ApideckUnifySdk.Models.Components;\nusing ApideckUnifySdk.Models.Requests;\nusing System.Collections.Generic;\n\nvar sdk = new Apideck(\n    apiKey: \"\u003cYOUR_BEARER_TOKEN_HERE\u003e\",\n    consumerId: \"test-consumer\",\n    appId: \"dSBdXd2H6Mqwfg0atXHXYcysLJE9qyn1VwBtXHX\"\n);\n\nAccountingTaxRatesAllRequest req = new AccountingTaxRatesAllRequest() {\n    ServiceId = \"salesforce\",\n    CompanyId = \"12345\",\n    Filter = new TaxRatesFilter() {\n        Assets = true,\n        Equity = true,\n        Expenses = true,\n        Liabilities = true,\n        Revenue = true,\n    },\n    PassThrough = new Dictionary\u003cstring, object\u003e() {\n        { \"search\", \"San Francisco\" },\n    },\n    Fields = \"id,updated_at\",\n};\n\nAccountingTaxRatesAllResponse? res = await sdk.Accounting.TaxRates.ListAsync(req);\n\nwhile(res != null)\n{\n    // handle items\n\n    res = await res.Next!();\n}\n```\n\u003c!-- End Authentication [security] --\u003e\n\n\u003c!-- Start Available Resources and Operations [operations] --\u003e\n## Available Resources and Operations\n\n\u003cdetails open\u003e\n\u003csummary\u003eAvailable methods\u003c/summary\u003e\n\n### [Accounting.AgedCreditors](docs/sdks/agedcreditors/README.md)\n\n* [Get](docs/sdks/agedcreditors/README.md#get) - Get Aged Creditors\n\n### [Accounting.AgedDebtors](docs/sdks/ageddebtors/README.md)\n\n* [Get](docs/sdks/ageddebtors/README.md#get) - Get Aged Debtors\n\n### [Accounting.Attachments](docs/sdks/attachments/README.md)\n\n* [List](docs/sdks/attachments/README.md#list) - List Attachments\n* [Upload](docs/sdks/attachments/README.md#upload) - Upload attachment\n* [Get](docs/sdks/attachments/README.md#get) - Get Attachment\n* [Delete](docs/sdks/attachments/README.md#delete) - Delete Attachment\n* [Download](docs/sdks/attachments/README.md#download) - Download Attachment\n\n### [Accounting.BalanceSheet](docs/sdks/balancesheet/README.md)\n\n* [Get](docs/sdks/balancesheet/README.md#get) - Get BalanceSheet\n\n### [Accounting.BankAccounts](docs/sdks/bankaccounts/README.md)\n\n* [List](docs/sdks/bankaccounts/README.md#list) - List Bank Accounts\n* [Create](docs/sdks/bankaccounts/README.md#create) - Create Bank Account\n* [Get](docs/sdks/bankaccounts/README.md#get) - Get Bank Account\n* [Update](docs/sdks/bankaccounts/README.md#update) - Update Bank Account\n* [Delete](docs/sdks/bankaccounts/README.md#delete) - Delete Bank Account\n\n### [Accounting.BankFeedAccounts](docs/sdks/bankfeedaccounts/README.md)\n\n* [List](docs/sdks/bankfeedaccounts/README.md#list) - List Bank Feed Accounts\n* [Create](docs/sdks/bankfeedaccounts/README.md#create) - Create Bank Feed Account\n* [Get](docs/sdks/bankfeedaccounts/README.md#get) - Get Bank Feed Account\n* [Update](docs/sdks/bankfeedaccounts/README.md#update) - Update Bank Feed Account\n* [Delete](docs/sdks/bankfeedaccounts/README.md#delete) - Delete Bank Feed Account\n\n### [Accounting.BankFeedStatements](docs/sdks/bankfeedstatements/README.md)\n\n* [List](docs/sdks/bankfeedstatements/README.md#list) - List Bank Feed Statements\n* [Create](docs/sdks/bankfeedstatements/README.md#create) - Create Bank Feed Statement\n* [Get](docs/sdks/bankfeedstatements/README.md#get) - Get Bank Feed Statement\n* [Update](docs/sdks/bankfeedstatements/README.md#update) - Update Bank Feed Statement\n* [Delete](docs/sdks/bankfeedstatements/README.md#delete) - Delete Bank Feed Statement\n\n### [Accounting.BillPayments](docs/sdks/billpayments/README.md)\n\n* [List](docs/sdks/billpayments/README.md#list) - List Bill Payments\n* [Create](docs/sdks/billpayments/README.md#create) - Create Bill Payment\n* [Get](docs/sdks/billpayments/README.md#get) - Get Bill Payment\n* [Update](docs/sdks/billpayments/README.md#update) - Update Bill Payment\n* [Delete](docs/sdks/billpayments/README.md#delete) - Delete Bill Payment\n\n### [Accounting.Bills](docs/sdks/bills/README.md)\n\n* [List](docs/sdks/bills/README.md#list) - List Bills\n* [Create](docs/sdks/bills/README.md#create) - Create Bill\n* [Get](docs/sdks/bills/README.md#get) - Get Bill\n* [Update](docs/sdks/bills/README.md#update) - Update Bill\n* [Delete](docs/sdks/bills/README.md#delete) - Delete Bill\n\n### [Accounting.Categories](docs/sdks/categories/README.md)\n\n* [List](docs/sdks/categories/README.md#list) - List Categories\n* [Get](docs/sdks/categories/README.md#get) - Get Category\n\n### [Accounting.Companies](docs/sdks/companies/README.md)\n\n* [List](docs/sdks/companies/README.md#list) - List companies\n\n### [Accounting.CompanyInfo](docs/sdks/companyinfo/README.md)\n\n* [Get](docs/sdks/companyinfo/README.md#get) - Get company info\n\n### [Accounting.CreditNotes](docs/sdks/creditnotes/README.md)\n\n* [List](docs/sdks/creditnotes/README.md#list) - List Credit Notes\n* [Create](docs/sdks/creditnotes/README.md#create) - Create Credit Note\n* [Get](docs/sdks/creditnotes/README.md#get) - Get Credit Note\n* [Update](docs/sdks/creditnotes/README.md#update) - Update Credit Note\n* [Delete](docs/sdks/creditnotes/README.md#delete) - Delete Credit Note\n\n### [Accounting.Customers](docs/sdks/customers/README.md)\n\n* [List](docs/sdks/customers/README.md#list) - List Customers\n* [Create](docs/sdks/customers/README.md#create) - Create Customer\n* [Get](docs/sdks/customers/README.md#get) - Get Customer\n* [Update](docs/sdks/customers/README.md#update) - Update Customer\n* [Delete](docs/sdks/customers/README.md#delete) - Delete Customer\n\n### [Accounting.Departments](docs/sdks/departments/README.md)\n\n* [List](docs/sdks/departments/README.md#list) - List Departments\n* [Create](docs/sdks/departments/README.md#create) - Create Department\n* [Get](docs/sdks/departments/README.md#get) - Get Department\n* [Update](docs/sdks/departments/README.md#update) - Update Department\n* [Delete](docs/sdks/departments/README.md#delete) - Delete Department\n\n### [Accounting.Employees](docs/sdks/employees/README.md)\n\n* [List](docs/sdks/employees/README.md#list) - List Employees\n* [Create](docs/sdks/employees/README.md#create) - Create Employee\n* [Get](docs/sdks/employees/README.md#get) - Get Employee\n* [Update](docs/sdks/employees/README.md#update) - Update Employee\n* [Delete](docs/sdks/employees/README.md#delete) - Delete Employee\n\n### [Accounting.ExpenseCategories](docs/sdks/expensecategories/README.md)\n\n* [List](docs/sdks/expensecategories/README.md#list) - List Expense Categories\n* [Create](docs/sdks/expensecategories/README.md#create) - Create Expense Category\n* [Get](docs/sdks/expensecategories/README.md#get) - Get Expense Category\n* [Update](docs/sdks/expensecategories/README.md#update) - Update Expense Category\n* [Delete](docs/sdks/expensecategories/README.md#delete) - Delete Expense Category\n\n### [Accounting.ExpenseReports](docs/sdks/expensereports/README.md)\n\n* [List](docs/sdks/expensereports/README.md#list) - List Expense Reports\n* [Create](docs/sdks/expensereports/README.md#create) - Create Expense Report\n* [Get](docs/sdks/expensereports/README.md#get) - Get Expense Report\n* [Update](docs/sdks/expensereports/README.md#update) - Update Expense Report\n* [Delete](docs/sdks/expensereports/README.md#delete) - Delete Expense Report\n\n### [Accounting.Expenses](docs/sdks/expenses/README.md)\n\n* [List](docs/sdks/expenses/README.md#list) - List Expenses\n* [Create](docs/sdks/expenses/README.md#create) - Create Expense\n* [Get](docs/sdks/expenses/README.md#get) - Get Expense\n* [Update](docs/sdks/expenses/README.md#update) - Update Expense\n* [Delete](docs/sdks/expenses/README.md#delete) - Delete Expense\n\n### [Accounting.InvoiceItems](docs/sdks/invoiceitems/README.md)\n\n* [List](docs/sdks/invoiceitems/README.md#list) - List Invoice Items\n* [Create](docs/sdks/invoiceitems/README.md#create) - Create Invoice Item\n* [Get](docs/sdks/invoiceitems/README.md#get) - Get Invoice Item\n* [Update](docs/sdks/invoiceitems/README.md#update) - Update Invoice Item\n* [Delete](docs/sdks/invoiceitems/README.md#delete) - Delete Invoice Item\n\n### [Accounting.Invoices](docs/sdks/invoices/README.md)\n\n* [List](docs/sdks/invoices/README.md#list) - List Invoices\n* [Create](docs/sdks/invoices/README.md#create) - Create Invoice\n* [Get](docs/sdks/invoices/README.md#get) - Get Invoice\n* [Update](docs/sdks/invoices/README.md#update) - Update Invoice\n* [Delete](docs/sdks/invoices/README.md#delete) - Delete Invoice\n\n### [Accounting.JournalEntries](docs/sdks/journalentries/README.md)\n\n* [List](docs/sdks/journalentries/README.md#list) - List Journal Entries\n* [Create](docs/sdks/journalentries/README.md#create) - Create Journal Entry\n* [Get](docs/sdks/journalentries/README.md#get) - Get Journal Entry\n* [Update](docs/sdks/journalentries/README.md#update) - Update Journal Entry\n* [Delete](docs/sdks/journalentries/README.md#delete) - Delete Journal Entry\n\n### [Accounting.LedgerAccounts](docs/sdks/ledgeraccounts/README.md)\n\n* [List](docs/sdks/ledgeraccounts/README.md#list) - List Ledger Accounts\n* [Create](docs/sdks/ledgeraccounts/README.md#create) - Create Ledger Account\n* [Get](docs/sdks/ledgeraccounts/README.md#get) - Get Ledger Account\n* [Update](docs/sdks/ledgeraccounts/README.md#update) - Update Ledger Account\n* [Delete](docs/sdks/ledgeraccounts/README.md#delete) - Delete Ledger Account\n\n### [Accounting.Locations](docs/sdks/locations/README.md)\n\n* [List](docs/sdks/locations/README.md#list) - List Locations\n* [Create](docs/sdks/locations/README.md#create) - Create Location\n* [Get](docs/sdks/locations/README.md#get) - Get Location\n* [Update](docs/sdks/locations/README.md#update) - Update Location\n* [Delete](docs/sdks/locations/README.md#delete) - Delete Location\n\n### [Accounting.Payments](docs/sdks/payments/README.md)\n\n* [List](docs/sdks/payments/README.md#list) - List Payments\n* [Create](docs/sdks/payments/README.md#create) - Create Payment\n* [Get](docs/sdks/payments/README.md#get) - Get Payment\n* [Update](docs/sdks/payments/README.md#update) - Update Payment\n* [Delete](docs/sdks/payments/README.md#delete) - Delete Payment\n\n### [Accounting.ProfitAndLoss](docs/sdks/profitandloss/README.md)\n\n* [Get](docs/sdks/profitandloss/README.md#get) - Get Profit and Loss\n\n### [Accounting.Projects](docs/sdks/projects/README.md)\n\n* [List](docs/sdks/projects/README.md#list) - List projects\n* [Create](docs/sdks/projects/README.md#create) - Create project\n* [Get](docs/sdks/projects/README.md#get) - Get project\n* [Update](docs/sdks/projects/README.md#update) - Update project\n* [Delete](docs/sdks/projects/README.md#delete) - Delete project\n\n### [Accounting.PurchaseOrders](docs/sdks/purchaseorders/README.md)\n\n* [List](docs/sdks/purchaseorders/README.md#list) - List Purchase Orders\n* [Create](docs/sdks/purchaseorders/README.md#create) - Create Purchase Order\n* [Get](docs/sdks/purchaseorders/README.md#get) - Get Purchase Order\n* [Update](docs/sdks/purchaseorders/README.md#update) - Update Purchase Order\n* [Delete](docs/sdks/purchaseorders/README.md#delete) - Delete Purchase Order\n\n### [Accounting.Quotes](docs/sdks/quotes/README.md)\n\n* [List](docs/sdks/quotes/README.md#list) - List Quotes\n* [Create](docs/sdks/quotes/README.md#create) - Create Quote\n* [Get](docs/sdks/quotes/README.md#get) - Get Quote\n* [Update](docs/sdks/quotes/README.md#update) - Update Quote\n* [Delete](docs/sdks/quotes/README.md#delete) - Delete Quote\n\n### [Accounting.Refunds](docs/sdks/refunds/README.md)\n\n* [List](docs/sdks/refunds/README.md#list) - List Refunds\n* [Create](docs/sdks/refunds/README.md#create) - Create Refund\n* [Get](docs/sdks/refunds/README.md#get) - Get Refund\n* [Update](docs/sdks/refunds/README.md#update) - Update Refund\n* [Delete](docs/sdks/refunds/README.md#delete) - Delete Refund\n\n### [Accounting.Subsidiaries](docs/sdks/subsidiaries/README.md)\n\n* [List](docs/sdks/subsidiaries/README.md#list) - List Subsidiaries\n* [Create](docs/sdks/subsidiaries/README.md#create) - Create Subsidiary\n* [Get](docs/sdks/subsidiaries/README.md#get) - Get Subsidiary\n* [Update](docs/sdks/subsidiaries/README.md#update) - Update Subsidiary\n* [Delete](docs/sdks/subsidiaries/README.md#delete) - Delete Subsidiary\n\n### [Accounting.Suppliers](docs/sdks/suppliers/README.md)\n\n* [List](docs/sdks/suppliers/README.md#list) - List Suppliers\n* [Create](docs/sdks/suppliers/README.md#create) - Create Supplier\n* [Get](docs/sdks/suppliers/README.md#get) - Get Supplier\n* [Update](docs/sdks/suppliers/README.md#update) - Update Supplier\n* [Delete](docs/sdks/suppliers/README.md#delete) - Delete Supplier\n\n### [Accounting.TaxRates](docs/sdks/taxrates/README.md)\n\n* [List](docs/sdks/taxrates/README.md#list) - List Tax Rates\n* [Create](docs/sdks/taxrates/README.md#create) - Create Tax Rate\n* [Get](docs/sdks/taxrates/README.md#get) - Get Tax Rate\n* [Update](docs/sdks/taxrates/README.md#update) - Update Tax Rate\n* [Delete](docs/sdks/taxrates/README.md#delete) - Delete Tax Rate\n\n### [Accounting.TrackingCategories](docs/sdks/trackingcategories/README.md)\n\n* [List](docs/sdks/trackingcategories/README.md#list) - List Tracking Categories\n* [Create](docs/sdks/trackingcategories/README.md#create) - Create Tracking Category\n* [Get](docs/sdks/trackingcategories/README.md#get) - Get Tracking Category\n* [Update](docs/sdks/trackingcategories/README.md#update) - Update Tracking Category\n* [Delete](docs/sdks/trackingcategories/README.md#delete) - Delete Tracking Category\n\n### [Ats.Applicants](docs/sdks/applicants/README.md)\n\n* [List](docs/sdks/applicants/README.md#list) - List Applicants\n* [Create](docs/sdks/applicants/README.md#create) - Create Applicant\n* [Get](docs/sdks/applicants/README.md#get) - Get Applicant\n* [Update](docs/sdks/applicants/README.md#update) - Update Applicant\n* [Delete](docs/sdks/applicants/README.md#delete) - Delete Applicant\n\n### [Ats.Applications](docs/sdks/applications/README.md)\n\n* [List](docs/sdks/applications/README.md#list) - List Applications\n* [Create](docs/sdks/applications/README.md#create) - Create Application\n* [Get](docs/sdks/applications/README.md#get) - Get Application\n* [Update](docs/sdks/applications/README.md#update) - Update Application\n* [Delete](docs/sdks/applications/README.md#delete) - Delete Application\n\n### [Ats.Jobs](docs/sdks/jobs/README.md)\n\n* [List](docs/sdks/jobs/README.md#list) - List Jobs\n* [Create](docs/sdks/jobs/README.md#create) - Create Job\n* [Get](docs/sdks/jobs/README.md#get) - Get Job\n* [Update](docs/sdks/jobs/README.md#update) - Update Job\n* [Delete](docs/sdks/jobs/README.md#delete) - Delete Job\n\n### [Connector.ApiResourceCoverage](docs/sdks/apiresourcecoverage/README.md)\n\n* [Get](docs/sdks/apiresourcecoverage/README.md#get) - Get API Resource Coverage\n\n### [Connector.ApiResources](docs/sdks/apiresources/README.md)\n\n* [Get](docs/sdks/apiresources/README.md#get) - Get API Resource\n\n### [Connector.Apis](docs/sdks/apis/README.md)\n\n* [List](docs/sdks/apis/README.md#list) - List APIs\n* [Get](docs/sdks/apis/README.md#get) - Get API\n\n### [Connector.ConnectorDocs](docs/sdks/connectordocs/README.md)\n\n* [Get](docs/sdks/connectordocs/README.md#get) - Get Connector Doc content\n\n### [Connector.ConnectorResources](docs/sdks/connectorresources/README.md)\n\n* [Get](docs/sdks/connectorresources/README.md#get) - Get Connector Resource\n\n### [Connector.Connectors](docs/sdks/connectors/README.md)\n\n* [List](docs/sdks/connectors/README.md#list) - List Connectors\n* [Get](docs/sdks/connectors/README.md#get) - Get Connector\n\n### [Crm.Activities](docs/sdks/activities/README.md)\n\n* [List](docs/sdks/activities/README.md#list) - List activities\n* [Create](docs/sdks/activities/README.md#create) - Create activity\n* [Get](docs/sdks/activities/README.md#get) - Get activity\n* [Update](docs/sdks/activities/README.md#update) - Update activity\n* [Delete](docs/sdks/activities/README.md#delete) - Delete activity\n\n### [Crm.Companies](docs/sdks/apideckcompanies/README.md)\n\n* [List](docs/sdks/apideckcompanies/README.md#list) - List companies\n* [Create](docs/sdks/apideckcompanies/README.md#create) - Create company\n* [Get](docs/sdks/apideckcompanies/README.md#get) - Get company\n* [Update](docs/sdks/apideckcompanies/README.md#update) - Update company\n* [Delete](docs/sdks/apideckcompanies/README.md#delete) - Delete company\n\n### [Crm.Contacts](docs/sdks/contacts/README.md)\n\n* [List](docs/sdks/contacts/README.md#list) - List contacts\n* [Create](docs/sdks/contacts/README.md#create) - Create contact\n* [Get](docs/sdks/contacts/README.md#get) - Get contact\n* [Update](docs/sdks/contacts/README.md#update) - Update contact\n* [Delete](docs/sdks/contacts/README.md#delete) - Delete contact\n\n### [Crm.CustomObjects](docs/sdks/customobjects/README.md)\n\n* [List](docs/sdks/customobjects/README.md#list) - List custom objects\n* [Create](docs/sdks/customobjects/README.md#create) - Create custom object\n* [Get](docs/sdks/customobjects/README.md#get) - Get custom object\n* [Update](docs/sdks/customobjects/README.md#update) - Update custom object\n* [Delete](docs/sdks/customobjects/README.md#delete) - Delete custom object\n\n### [Crm.CustomObjectSchemas](docs/sdks/customobjectschemas/README.md)\n\n* [List](docs/sdks/customobjectschemas/README.md#list) - List custom object schemas\n* [Create](docs/sdks/customobjectschemas/README.md#create) - Create custom object schema\n* [Get](docs/sdks/customobjectschemas/README.md#get) - Get custom object schema\n* [Update](docs/sdks/customobjectschemas/README.md#update) - Update custom object schema\n* [Delete](docs/sdks/customobjectschemas/README.md#delete) - Delete custom object schema\n\n### [Crm.Leads](docs/sdks/leads/README.md)\n\n* [List](docs/sdks/leads/README.md#list) - List leads\n* [Create](docs/sdks/leads/README.md#create) - Create lead\n* [Get](docs/sdks/leads/README.md#get) - Get lead\n* [Update](docs/sdks/leads/README.md#update) - Update lead\n* [Delete](docs/sdks/leads/README.md#delete) - Delete lead\n\n### [Crm.Notes](docs/sdks/notes/README.md)\n\n* [List](docs/sdks/notes/README.md#list) - List notes\n* [Create](docs/sdks/notes/README.md#create) - Create note\n* [Get](docs/sdks/notes/README.md#get) - Get note\n* [Update](docs/sdks/notes/README.md#update) - Update note\n* [Delete](docs/sdks/notes/README.md#delete) - Delete note\n\n### [Crm.Opportunities](docs/sdks/opportunities/README.md)\n\n* [List](docs/sdks/opportunities/README.md#list) - List opportunities\n* [Create](docs/sdks/opportunities/README.md#create) - Create opportunity\n* [Get](docs/sdks/opportunities/README.md#get) - Get opportunity\n* [Update](docs/sdks/opportunities/README.md#update) - Update opportunity\n* [Delete](docs/sdks/opportunities/README.md#delete) - Delete opportunity\n\n### [Crm.Pipelines](docs/sdks/pipelines/README.md)\n\n* [List](docs/sdks/pipelines/README.md#list) - List pipelines\n* [Create](docs/sdks/pipelines/README.md#create) - Create pipeline\n* [Get](docs/sdks/pipelines/README.md#get) - Get pipeline\n* [Update](docs/sdks/pipelines/README.md#update) - Update pipeline\n* [Delete](docs/sdks/pipelines/README.md#delete) - Delete pipeline\n\n### [Crm.Users](docs/sdks/users/README.md)\n\n* [List](docs/sdks/users/README.md#list) - List users\n* [Create](docs/sdks/users/README.md#create) - Create user\n* [Get](docs/sdks/users/README.md#get) - Get user\n* [Update](docs/sdks/users/README.md#update) - Update user\n* [Delete](docs/sdks/users/README.md#delete) - Delete user\n\n### [Ecommerce.Customers](docs/sdks/apideckcustomers/README.md)\n\n* [List](docs/sdks/apideckcustomers/README.md#list) - List Customers\n* [Get](docs/sdks/apideckcustomers/README.md#get) - Get Customer\n\n### [Ecommerce.Orders](docs/sdks/orders/README.md)\n\n* [List](docs/sdks/orders/README.md#list) - List Orders\n* [Get](docs/sdks/orders/README.md#get) - Get Order\n\n### [Ecommerce.Products](docs/sdks/products/README.md)\n\n* [List](docs/sdks/products/README.md#list) - List Products\n* [Get](docs/sdks/products/README.md#get) - Get Product\n\n### [Ecommerce.Stores](docs/sdks/stores/README.md)\n\n* [Get](docs/sdks/stores/README.md#get) - Get Store\n\n### [FileStorage.DriveGroups](docs/sdks/drivegroups/README.md)\n\n* [List](docs/sdks/drivegroups/README.md#list) - List DriveGroups\n* [Create](docs/sdks/drivegroups/README.md#create) - Create DriveGroup\n* [Get](docs/sdks/drivegroups/README.md#get) - Get DriveGroup\n* [Update](docs/sdks/drivegroups/README.md#update) - Update DriveGroup\n* [Delete](docs/sdks/drivegroups/README.md#delete) - Delete DriveGroup\n\n### [FileStorage.Drives](docs/sdks/drives/README.md)\n\n* [List](docs/sdks/drives/README.md#list) - List Drives\n* [Create](docs/sdks/drives/README.md#create) - Create Drive\n* [Get](docs/sdks/drives/README.md#get) - Get Drive\n* [Update](docs/sdks/drives/README.md#update) - Update Drive\n* [Delete](docs/sdks/drives/README.md#delete) - Delete Drive\n\n### [FileStorage.Files](docs/sdks/files/README.md)\n\n* [List](docs/sdks/files/README.md#list) - List Files\n* [Search](docs/sdks/files/README.md#search) - Search Files\n* [Get](docs/sdks/files/README.md#get) - Get File\n* [Update](docs/sdks/files/README.md#update) - Rename or move File\n* [Delete](docs/sdks/files/README.md#delete) - Delete File\n* [Download](docs/sdks/files/README.md#download) - Download File\n* [Export](docs/sdks/files/README.md#export) - Export File\n\n### [FileStorage.Folders](docs/sdks/folders/README.md)\n\n* [Create](docs/sdks/folders/README.md#create) - Create Folder\n* [Get](docs/sdks/folders/README.md#get) - Get Folder\n* [Update](docs/sdks/folders/README.md#update) - Rename or move Folder\n* [Delete](docs/sdks/folders/README.md#delete) - Delete Folder\n* [Copy](docs/sdks/folders/README.md#copy) - Copy Folder\n\n### [FileStorage.SharedLinks](docs/sdks/sharedlinks/README.md)\n\n* [List](docs/sdks/sharedlinks/README.md#list) - List Shared Links\n* [Create](docs/sdks/sharedlinks/README.md#create) - Create Shared Link\n* [Get](docs/sdks/sharedlinks/README.md#get) - Get Shared Link\n* [Update](docs/sdks/sharedlinks/README.md#update) - Update Shared Link\n* [Delete](docs/sdks/sharedlinks/README.md#delete) - Delete Shared Link\n\n### [FileStorage.UploadSessions](docs/sdks/uploadsessions/README.md)\n\n* [Create](docs/sdks/uploadsessions/README.md#create) - Start Upload Session\n* [Get](docs/sdks/uploadsessions/README.md#get) - Get Upload Session\n* [Upload](docs/sdks/uploadsessions/README.md#upload) - Upload part of File to Upload Session\n* [Delete](docs/sdks/uploadsessions/README.md#delete) - Abort Upload Session\n* [Finish](docs/sdks/uploadsessions/README.md#finish) - Finish Upload Session\n\n### [Hris.Companies](docs/sdks/apideckhriscompanies/README.md)\n\n* [List](docs/sdks/apideckhriscompanies/README.md#list) - List Companies\n* [Create](docs/sdks/apideckhriscompanies/README.md#create) - Create Company\n* [Get](docs/sdks/apideckhriscompanies/README.md#get) - Get Company\n* [Update](docs/sdks/apideckhriscompanies/README.md#update) - Update Company\n* [Delete](docs/sdks/apideckhriscompanies/README.md#delete) - Delete Company\n\n### [Hris.Departments](docs/sdks/apideckdepartments/README.md)\n\n* [List](docs/sdks/apideckdepartments/README.md#list) - List Departments\n* [Create](docs/sdks/apideckdepartments/README.md#create) - Create Department\n* [Get](docs/sdks/apideckdepartments/README.md#get) - Get Department\n* [Update](docs/sdks/apideckdepartments/README.md#update) - Update Department\n* [Delete](docs/sdks/apideckdepartments/README.md#delete) - Delete Department\n\n### [Hris.EmployeePayrolls](docs/sdks/employeepayrolls/README.md)\n\n* [List](docs/sdks/employeepayrolls/README.md#list) - List Employee Payrolls\n* [Get](docs/sdks/employeepayrolls/README.md#get) - Get Employee Payroll\n\n### [Hris.Employees](docs/sdks/apideckemployees/README.md)\n\n* [List](docs/sdks/apideckemployees/README.md#list) - List Employees\n* [Create](docs/sdks/apideckemployees/README.md#create) - Create Employee\n* [Get](docs/sdks/apideckemployees/README.md#get) - Get Employee\n* [Update](docs/sdks/apideckemployees/README.md#update) - Update Employee\n* [Delete](docs/sdks/apideckemployees/README.md#delete) - Delete Employee\n\n### [Hris.EmployeeSchedules](docs/sdks/employeeschedules/README.md)\n\n* [List](docs/sdks/employeeschedules/README.md#list) - List Employee Schedules\n\n### [Hris.Payrolls](docs/sdks/payrolls/README.md)\n\n* [List](docs/sdks/payrolls/README.md#list) - List Payroll\n* [Get](docs/sdks/payrolls/README.md#get) - Get Payroll\n\n### [Hris.TimeOffRequests](docs/sdks/timeoffrequests/README.md)\n\n* [List](docs/sdks/timeoffrequests/README.md#list) - List Time Off Requests\n* [Create](docs/sdks/timeoffrequests/README.md#create) - Create Time Off Request\n* [Get](docs/sdks/timeoffrequests/README.md#get) - Get Time Off Request\n* [Update](docs/sdks/timeoffrequests/README.md#update) - Update Time Off Request\n* [Delete](docs/sdks/timeoffrequests/README.md#delete) - Delete Time Off Request\n\n### [IssueTracking.Collections](docs/sdks/collections/README.md)\n\n* [List](docs/sdks/collections/README.md#list) - List Collections\n* [Get](docs/sdks/collections/README.md#get) - Get Collection\n\n### [IssueTracking.CollectionTags](docs/sdks/collectiontags/README.md)\n\n* [List](docs/sdks/collectiontags/README.md#list) - List Tags\n\n### [IssueTracking.CollectionTicketComments](docs/sdks/collectionticketcomments/README.md)\n\n* [List](docs/sdks/collectionticketcomments/README.md#list) - List Comments\n* [Create](docs/sdks/collectionticketcomments/README.md#create) - Create Comment\n* [Get](docs/sdks/collectionticketcomments/README.md#get) - Get Comment\n* [Update](docs/sdks/collectionticketcomments/README.md#update) - Update Comment\n* [Delete](docs/sdks/collectionticketcomments/README.md#delete) - Delete Comment\n\n### [IssueTracking.CollectionTickets](docs/sdks/collectiontickets/README.md)\n\n* [List](docs/sdks/collectiontickets/README.md#list) - List Tickets\n* [Create](docs/sdks/collectiontickets/README.md#create) - Create Ticket\n* [Get](docs/sdks/collectiontickets/README.md#get) - Get Ticket\n* [Update](docs/sdks/collectiontickets/README.md#update) - Update Ticket\n* [Delete](docs/sdks/collectiontickets/README.md#delete) - Delete Ticket\n\n### [IssueTracking.CollectionUsers](docs/sdks/collectionusers/README.md)\n\n* [List](docs/sdks/collectionusers/README.md#list) - List Users\n* [Get](docs/sdks/collectionusers/README.md#get) - Get user\n\n### [Proxy](docs/sdks/proxy/README.md)\n\n* [Get](docs/sdks/proxy/README.md#get) - GET\n* [Options](docs/sdks/proxy/README.md#options) - OPTIONS\n* [Post](docs/sdks/proxy/README.md#post) - POST\n* [Put](docs/sdks/proxy/README.md#put) - PUT\n* [Patch](docs/sdks/proxy/README.md#patch) - PATCH\n* [Delete](docs/sdks/proxy/README.md#delete) - DELETE\n\n### [Sms.Messages](docs/sdks/messages/README.md)\n\n* [List](docs/sdks/messages/README.md#list) - List Messages\n* [Create](docs/sdks/messages/README.md#create) - Create Message\n* [Get](docs/sdks/messages/README.md#get) - Get Message\n* [Update](docs/sdks/messages/README.md#update) - Update Message\n* [Delete](docs/sdks/messages/README.md#delete) - Delete Message\n\n### [Vault.ConnectionConsent](docs/sdks/connectionconsent/README.md)\n\n* [Update](docs/sdks/connectionconsent/README.md#update) - Update consent state\n\n### [Vault.ConnectionConsents](docs/sdks/connectionconsents/README.md)\n\n* [List](docs/sdks/connectionconsents/README.md#list) - Get consent records\n\n### [Vault.ConnectionCustomMappings](docs/sdks/connectioncustommappings/README.md)\n\n* [List](docs/sdks/connectioncustommappings/README.md#list) - List connection custom mappings\n\n### [Vault.Connections](docs/sdks/connections/README.md)\n\n* [List](docs/sdks/connections/README.md#list) - Get all connections\n* [Get](docs/sdks/connections/README.md#get) - Get connection\n* [Update](docs/sdks/connections/README.md#update) - Update connection\n* [Delete](docs/sdks/connections/README.md#delete) - Deletes a connection\n* [Imports](docs/sdks/connections/README.md#imports) - Import connection\n* [Token](docs/sdks/connections/README.md#token) - Authorize Access Token\n\n### [Vault.ConnectionSettings](docs/sdks/connectionsettings/README.md)\n\n* [List](docs/sdks/connectionsettings/README.md#list) - Get resource settings\n* [Update](docs/sdks/connectionsettings/README.md#update) - Update settings\n\n### [Vault.ConsumerRequestCounts](docs/sdks/consumerrequestcounts/README.md)\n\n* [List](docs/sdks/consumerrequestcounts/README.md#list) - Consumer request counts\n\n### [Vault.Consumers](docs/sdks/consumers/README.md)\n\n* [Create](docs/sdks/consumers/README.md#create) - Create consumer\n* [List](docs/sdks/consumers/README.md#list) - Get all consumers\n* [Get](docs/sdks/consumers/README.md#get) - Get consumer\n* [Update](docs/sdks/consumers/README.md#update) - Update consumer\n* [Delete](docs/sdks/consumers/README.md#delete) - Delete consumer\n\n### [Vault.CreateCallback](docs/sdks/createcallback/README.md)\n\n* [State](docs/sdks/createcallback/README.md#state) - Create Callback State\n\n### [Vault.CustomFields](docs/sdks/customfields/README.md)\n\n* [List](docs/sdks/customfields/README.md#list) - Get resource custom fields\n\n### [Vault.CustomMappings](docs/sdks/custommappings/README.md)\n\n* [List](docs/sdks/custommappings/README.md#list) - List custom mappings\n\n### [Vault.Logs](docs/sdks/logs/README.md)\n\n* [List](docs/sdks/logs/README.md#list) - Get all consumer request logs\n\n### [Vault.Sessions](docs/sdks/sessions/README.md)\n\n* [Create](docs/sdks/sessions/README.md#create) - Create Session\n\n### [Vault.ValidateConnection](docs/sdks/validateconnection/README.md)\n\n* [State](docs/sdks/validateconnection/README.md#state) - Validate Connection State\n\n### [Webhook.Webhooks](docs/sdks/webhooks/README.md)\n\n* [List](docs/sdks/webhooks/README.md#list) - List webhook subscriptions\n* [Create](docs/sdks/webhooks/README.md#create) - Create webhook subscription\n* [Get](docs/sdks/webhooks/README.md#get) - Get webhook subscription\n* [Update](docs/sdks/webhooks/README.md#update) - Update webhook subscription\n* [Delete](docs/sdks/webhooks/README.md#delete) - Delete webhook subscription\n\n\u003c/details\u003e\n\u003c!-- End Available Resources and Operations [operations] --\u003e\n\n\u003c!-- Start Pagination [pagination] --\u003e\n## Pagination\n\nSome of the endpoints in this SDK support pagination. To use pagination, you make your SDK calls as usual, but the\nreturned response object will have a `Next` method that can be called to pull down the next group of results. If the\nreturn value of `Next` is `null`, then there are no more pages to be fetched.\n\nHere's an example of one such pagination call:\n```csharp\nusing ApideckUnifySdk;\nusing ApideckUnifySdk.Models.Components;\nusing ApideckUnifySdk.Models.Requests;\nusing System.Collections.Generic;\n\nvar sdk = new Apideck(\n    consumerId: \"test-consumer\",\n    appId: \"dSBdXd2H6Mqwfg0atXHXYcysLJE9qyn1VwBtXHX\",\n    apiKey: \"\u003cYOUR_BEARER_TOKEN_HERE\u003e\"\n);\n\nAccountingTaxRatesAllRequest req = new AccountingTaxRatesAllRequest() {\n    ServiceId = \"salesforce\",\n    CompanyId = \"12345\",\n    Filter = new TaxRatesFilter() {\n        Assets = true,\n        Equity = true,\n        Expenses = true,\n        Liabilities = true,\n        Revenue = true,\n    },\n    PassThrough = new Dictionary\u003cstring, object\u003e() {\n        { \"search\", \"San Francisco\" },\n    },\n    Fields = \"id,updated_at\",\n};\n\nAccountingTaxRatesAllResponse? res = await sdk.Accounting.TaxRates.ListAsync(req);\n\nwhile(res != null)\n{\n    // handle items\n\n    res = await res.Next!();\n}\n```\n\u003c!-- End Pagination [pagination] --\u003e\n\n\u003c!-- Start Retries [retries] --\u003e\n## Retries\n\nSome of the endpoints in this SDK support retries. If you use the SDK without any configuration, it will fall back to the default retry strategy provided by the API. However, the default retry strategy can be overridden on a per-operation basis, or across the entire SDK.\n\nTo change the default retry strategy for a single API call, simply pass a `RetryConfig` to the call:\n```csharp\nusing ApideckUnifySdk;\nusing ApideckUnifySdk.Models.Components;\nusing ApideckUnifySdk.Models.Requests;\nusing System.Collections.Generic;\n\nvar sdk = new Apideck(\n    consumerId: \"test-consumer\",\n    appId: \"dSBdXd2H6Mqwfg0atXHXYcysLJE9qyn1VwBtXHX\",\n    apiKey: \"\u003cYOUR_BEARER_TOKEN_HERE\u003e\"\n);\n\nAccountingTaxRatesAllRequest req = new AccountingTaxRatesAllRequest() {\n    ServiceId = \"salesforce\",\n    CompanyId = \"12345\",\n    Filter = new TaxRatesFilter() {\n        Assets = true,\n        Equity = true,\n        Expenses = true,\n        Liabilities = true,\n        Revenue = true,\n    },\n    PassThrough = new Dictionary\u003cstring, object\u003e() {\n        { \"search\", \"San Francisco\" },\n    },\n    Fields = \"id,updated_at\",\n};\n\nAccountingTaxRatesAllResponse? res = await sdk.Accounting.TaxRates.ListAsync(\n    retryConfig: new RetryConfig(\n        strategy: RetryConfig.RetryStrategy.BACKOFF,\n        backoff: new BackoffStrategy(\n            initialIntervalMs: 1L,\n            maxIntervalMs: 50L,\n            maxElapsedTimeMs: 100L,\n            exponent: 1.1\n        ),\n        retryConnectionErrors: false\n    ),\n    request: req\n);\n\nwhile(res != null)\n{\n    // handle items\n\n    res = await res.Next!();\n}\n```\n\nIf you'd like to override the default retry strategy for all operations that support retries, you can use the `RetryConfig` optional parameter when intitializing the SDK:\n```csharp\nusing ApideckUnifySdk;\nusing ApideckUnifySdk.Models.Components;\nusing ApideckUnifySdk.Models.Requests;\nusing System.Collections.Generic;\n\nvar sdk = new Apideck(\n    retryConfig: new RetryConfig(\n        strategy: RetryConfig.RetryStrategy.BACKOFF,\n        backoff: new BackoffStrategy(\n            initialIntervalMs: 1L,\n            maxIntervalMs: 50L,\n            maxElapsedTimeMs: 100L,\n            exponent: 1.1\n        ),\n        retryConnectionErrors: false\n    ),\n    consumerId: \"test-consumer\",\n    appId: \"dSBdXd2H6Mqwfg0atXHXYcysLJE9qyn1VwBtXHX\",\n    apiKey: \"\u003cYOUR_BEARER_TOKEN_HERE\u003e\"\n);\n\nAccountingTaxRatesAllRequest req = new AccountingTaxRatesAllRequest() {\n    ServiceId = \"salesforce\",\n    CompanyId = \"12345\",\n    Filter = new TaxRatesFilter() {\n        Assets = true,\n        Equity = true,\n        Expenses = true,\n        Liabilities = true,\n        Revenue = true,\n    },\n    PassThrough = new Dictionary\u003cstring, object\u003e() {\n        { \"search\", \"San Francisco\" },\n    },\n    Fields = \"id,updated_at\",\n};\n\nAccountingTaxRatesAllResponse? res = await sdk.Accounting.TaxRates.ListAsync(req);\n\nwhile(res != null)\n{\n    // handle items\n\n    res = await res.Next!();\n}\n```\n\u003c!-- End Retries [retries] --\u003e\n\n\u003c!-- Start Error Handling [errors] --\u003e\n## Error Handling\n\n[`BaseException`](./src/ApideckUnifySdk/Models/Errors/BaseException.cs) is the base exception class for all HTTP error responses. It has the following properties:\n\n| Property      | Type                  | Description           |\n|---------------|-----------------------|-----------------------|\n| `Message`     | *string*              | Error message         |\n| `Request`     | *HttpRequestMessage*  | HTTP request object   |\n| `Response`    | *HttpResponseMessage* | HTTP response object  |\n\nSome exceptions in this SDK include an additional `Payload` field, which will contain deserialized custom error data when present. Possible exceptions are listed in the [Error Classes](#error-classes) section.\n\n### Example\n\n```csharp\nusing ApideckUnifySdk;\nusing ApideckUnifySdk.Models.Components;\nusing ApideckUnifySdk.Models.Errors;\nusing ApideckUnifySdk.Models.Requests;\nusing System.Collections.Generic;\n\nvar sdk = new Apideck(\n    consumerId: \"test-consumer\",\n    appId: \"dSBdXd2H6Mqwfg0atXHXYcysLJE9qyn1VwBtXHX\",\n    apiKey: \"\u003cYOUR_BEARER_TOKEN_HERE\u003e\"\n);\n\ntry\n{\n    AccountingTaxRatesAllRequest req = new AccountingTaxRatesAllRequest() {\n        ServiceId = \"salesforce\",\n        CompanyId = \"12345\",\n        Filter = new TaxRatesFilter() {\n            Assets = true,\n            Equity = true,\n            Expenses = true,\n            Liabilities = true,\n            Revenue = true,\n        },\n        PassThrough = new Dictionary\u003cstring, object\u003e() {\n            { \"search\", \"San Francisco\" },\n        },\n        Fields = \"id,updated_at\",\n    };\n\n    AccountingTaxRatesAllResponse? res = await sdk.Accounting.TaxRates.ListAsync(req);\n\n    while(res != null)\n    {\n        // handle items\n\n        res = await res.Next!();\n    }\n}\ncatch (BaseException ex)  // all SDK exceptions inherit from BaseException\n{\n    // ex.ToString() provides a detailed error message\n    System.Console.WriteLine(ex);\n\n    // Base exception fields\n    HttpRequestMessage request = ex.Request;\n    HttpResponseMessage response = ex.Response;\n    var statusCode = (int)response.StatusCode;\n    var responseBody = ex.Body;\n\n    if (ex is BadRequestResponse) // different exceptions may be thrown depending on the method\n    {\n        // Check error data fields\n        BadRequestResponsePayload payload = ex.Payload;\n        double StatusCode = payload.StatusCode;\n        string Error = payload.Error;\n        // ...\n    }\n\n    // An underlying cause may be provided\n    if (ex.InnerException != null)\n    {\n        Exception cause = ex.InnerException;\n    }\n}\ncatch (System.Net.Http.HttpRequestException ex)\n{\n    // Check ex.InnerException for Network connectivity errors\n}\n```\n\n### Error Classes\n\n**Primary exceptions:**\n* [`BaseException`](./src/ApideckUnifySdk/Models/Errors/BaseException.cs): The base class for HTTP error responses.\n  * [`UnauthorizedResponse`](./src/ApideckUnifySdk/Models/Errors/UnauthorizedResponse.cs): Unauthorized. Status code `401`. *\n  * [`PaymentRequiredResponse`](./src/ApideckUnifySdk/Models/Errors/PaymentRequiredResponse.cs): Payment Required. Status code `402`. *\n  * [`NotFoundResponse`](./src/ApideckUnifySdk/Models/Errors/NotFoundResponse.cs): The specified resource was not found. Status code `404`. *\n  * [`BadRequestResponse`](./src/ApideckUnifySdk/Models/Errors/BadRequestResponse.cs): Bad Request. Status code `400`. *\n  * [`UnprocessableResponse`](./src/ApideckUnifySdk/Models/Errors/UnprocessableResponse.cs): Unprocessable. Status code `422`. *\n\n\u003cdetails\u003e\u003csummary\u003eLess common exceptions (3)\u003c/summary\u003e\n\n* [`System.Net.Http.HttpRequestException`](https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httprequestexception): Network connectivity error. For more details about the underlying cause, inspect the `ex.InnerException`.\n\n* Inheriting from [`BaseException`](./src/ApideckUnifySdk/Models/Errors/BaseException.cs):\n  * [`Unauthorized`](./src/ApideckUnifySdk/Models/Errors/Unauthorized.cs): Unauthorized. Status code `401`. Applicable to 6 of 334 methods.*\n  * [`ResponseValidationError`](./src/ApideckUnifySdk/Models/Errors/ResponseValidationError.cs): Thrown when the response data could not be deserialized into the expected type.\n\u003c/details\u003e\n\n\\* Refer to the [relevant documentation](#available-resources-and-operations) to determine whether an exception applies to a specific operation.\n\u003c!-- End Error Handling [errors] --\u003e\n\n\u003c!-- Start Server Selection [server] --\u003e\n## Server Selection\n\n### Override Server URL Per-Client\n\nThe default server can be overridden globally by passing a URL to the `serverUrl: string` optional parameter when initializing the SDK client instance. For example:\n```csharp\nusing ApideckUnifySdk;\nusing ApideckUnifySdk.Models.Components;\nusing ApideckUnifySdk.Models.Requests;\nusing System.Collections.Generic;\n\nvar sdk = new Apideck(\n    serverUrl: \"https://unify.apideck.com\",\n    consumerId: \"test-consumer\",\n    appId: \"dSBdXd2H6Mqwfg0atXHXYcysLJE9qyn1VwBtXHX\",\n    apiKey: \"\u003cYOUR_BEARER_TOKEN_HERE\u003e\"\n);\n\nAccountingTaxRatesAllRequest req = new AccountingTaxRatesAllRequest() {\n    ServiceId = \"salesforce\",\n    CompanyId = \"12345\",\n    Filter = new TaxRatesFilter() {\n        Assets = true,\n        Equity = true,\n        Expenses = true,\n        Liabilities = true,\n        Revenue = true,\n    },\n    PassThrough = new Dictionary\u003cstring, object\u003e() {\n        { \"search\", \"San Francisco\" },\n    },\n    Fields = \"id,updated_at\",\n};\n\nAccountingTaxRatesAllResponse? res = await sdk.Accounting.TaxRates.ListAsync(req);\n\nwhile(res != null)\n{\n    // handle items\n\n    res = await res.Next!();\n}\n```\n\n### Override Server URL Per-Operation\n\nThe server URL can also be overridden on a per-operation basis, provided a server list was specified for the operation. For example:\n```csharp\nusing ApideckUnifySdk;\nusing ApideckUnifySdk.Models.Components;\nusing ApideckUnifySdk.Models.Requests;\nusing System;\n\nvar sdk = new Apideck(\n    consumerId: \"test-consumer\",\n    appId: \"dSBdXd2H6Mqwfg0atXHXYcysLJE9qyn1VwBtXHX\",\n    apiKey: \"\u003cYOUR_BEARER_TOKEN_HERE\u003e\"\n);\n\nAccountingAttachmentsUploadRequest req = new AccountingAttachmentsUploadRequest() {\n    ReferenceType = AttachmentReferenceType.Invoice,\n    ReferenceId = \"123456\",\n    XApideckMetadata = \"{\\\"name\\\":\\\"document.pdf\\\",\\\"description\\\":\\\"Invoice attachment\\\"}\",\n    ServiceId = \"salesforce\",\n    RequestBody = System.Text.Encoding.UTF8.GetBytes(\"0x506D4BD16D\"),\n};\n\nvar res = await sdk.Accounting.Attachments.UploadAsync(\n    request: req,\n    serverUrl: \"https://upload.apideck.com\"\n);\n\n// handle response\n```\n\u003c!-- End Server Selection [server] --\u003e\n\n\u003c!-- Start Custom HTTP Client [http-client] --\u003e\n## Custom HTTP Client\n\nThe C# SDK makes API calls using an `ISpeakeasyHttpClient` that wraps the native\n[HttpClient](https://docs.microsoft.com/en-us/dotnet/api/system.net.http.httpclient). This\nclient provides the ability to attach hooks around the request lifecycle that can be used to modify the request or handle\nerrors and response.\n\nThe `ISpeakeasyHttpClient` interface allows you to either use the default `SpeakeasyHttpClient` that comes with the SDK,\nor provide your own custom implementation with customized configuration such as custom message handlers, timeouts,\nconnection pooling, and other HTTP client settings.\n\nThe following example shows how to create a custom HTTP client with request modification and error handling:\n\n```csharp\nusing ApideckUnifySdk;\nusing ApideckUnifySdk.Utils;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\n\n// Create a custom HTTP client\npublic class CustomHttpClient : ISpeakeasyHttpClient\n{\n    private readonly ISpeakeasyHttpClient _defaultClient;\n\n    public CustomHttpClient()\n    {\n        _defaultClient = new SpeakeasyHttpClient();\n    }\n\n    public async Task\u003cHttpResponseMessage\u003e SendAsync(HttpRequestMessage request, CancellationToken? cancellationToken = null)\n    {\n        // Add custom header and timeout\n        request.Headers.Add(\"x-custom-header\", \"custom value\");\n        request.Headers.Add(\"x-request-timeout\", \"30\");\n        \n        try\n        {\n            var response = await _defaultClient.SendAsync(request, cancellationToken);\n            // Log successful response\n            Console.WriteLine($\"Request successful: {response.StatusCode}\");\n            return response;\n        }\n        catch (Exception error)\n        {\n            // Log error\n            Console.WriteLine($\"Request failed: {error.Message}\");\n            throw;\n        }\n    }\n\n    public void Dispose()\n    {\n        _httpClient?.Dispose();\n        _defaultClient?.Dispose();\n    }\n}\n\n// Use the custom HTTP client with the SDK\nvar customHttpClient = new CustomHttpClient();\nvar sdk = new Apideck(client: customHttpClient);\n```\n\n\u003cdetails\u003e\n\u003csummary\u003eYou can also provide a completely custom HTTP client with your own configuration:\u003c/summary\u003e\n\n```csharp\nusing ApideckUnifySdk.Utils;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\n\n// Custom HTTP client with custom configuration\npublic class AdvancedHttpClient : ISpeakeasyHttpClient\n{\n    private readonly HttpClient _httpClient;\n\n    public AdvancedHttpClient()\n    {\n        var handler = new HttpClientHandler()\n        {\n            MaxConnectionsPerServer = 10,\n            // ServerCertificateCustomValidationCallback = customCertValidation, // Custom SSL validation if needed\n        };\n\n        _httpClient = new HttpClient(handler)\n        {\n            Timeout = TimeSpan.FromSeconds(30)\n        };\n    }\n\n    public async Task\u003cHttpResponseMessage\u003e SendAsync(HttpRequestMessage request, CancellationToken? cancellationToken = null)\n    {\n        return await _httpClient.SendAsync(request, cancellationToken ?? CancellationToken.None);\n    }\n\n    public void Dispose()\n    {\n        _httpClient?.Dispose();\n    }\n}\n\nvar sdk = Apideck.Builder()\n    .WithClient(new AdvancedHttpClient())\n    .Build();\n```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eFor simple debugging, you can enable request/response logging by implementing a custom client:\u003c/summary\u003e\n\n```csharp\npublic class LoggingHttpClient : ISpeakeasyHttpClient\n{\n    private readonly ISpeakeasyHttpClient _innerClient;\n\n    public LoggingHttpClient(ISpeakeasyHttpClient innerClient = null)\n    {\n        _innerClient = innerClient ?? new SpeakeasyHttpClient();\n    }\n\n    public async Task\u003cHttpResponseMessage\u003e SendAsync(HttpRequestMessage request, CancellationToken? cancellationToken = null)\n    {\n        // Log request\n        Console.WriteLine($\"Sending {request.Method} request to {request.RequestUri}\");\n        \n        var response = await _innerClient.SendAsync(request, cancellationToken);\n        \n        // Log response\n        Console.WriteLine($\"Received {response.StatusCode} response\");\n        \n        return response;\n    }\n\n    public void Dispose() =\u003e _innerClient?.Dispose();\n}\n\nvar sdk = new Apideck(client: new LoggingHttpClient());\n```\n\u003c/details\u003e\n\nThe SDK also provides built-in hook support through the `SDKConfiguration.Hooks` system, which automatically handles\n`BeforeRequestAsync`, `AfterSuccessAsync`, and `AfterErrorAsync` hooks for advanced request lifecycle management.\n\u003c!-- End Custom HTTP Client [http-client] --\u003e\n\n\u003c!-- Placeholder for Future Speakeasy SDK Sections --\u003e\n\n# Development\n\n## Maturity\n\nThere may be breaking changes between versions without a major version update. Therefore, we recommend pinning usage\nto a specific package version. This way, you can install the same version each time without breaking changes unless you are intentionally\nlooking for the latest version.\n\n## Contributions\n\nWhile we value open-source contributions to this SDK, this library is generated programmatically. Any manual changes added to internal files will be overwritten on the next generation. \nWe look forward to hearing your feedback. Feel free to open a PR or an issue with a proof of concept and we'll do our best to include it in a future release.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapideck-libraries%2Fsdk-csharp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fapideck-libraries%2Fsdk-csharp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapideck-libraries%2Fsdk-csharp/lists"}