{"id":37031549,"url":"https://github.com/hellosign/hellosign-dotnet-sdk","last_synced_at":"2026-01-14T03:52:55.821Z","repository":{"id":31939628,"uuid":"35509244","full_name":"hellosign/hellosign-dotnet-sdk","owner":"hellosign","description":"A .NET SDK for the HelloSign API","archived":true,"fork":false,"pushed_at":"2023-10-17T15:37:14.000Z","size":1255,"stargazers_count":26,"open_issues_count":29,"forks_count":29,"subscribers_count":24,"default_branch":"v3","last_synced_at":"2025-09-26T03:50:19.094Z","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":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hellosign.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-05-12T19:49:23.000Z","updated_at":"2024-01-11T02:59:15.000Z","dependencies_parsed_at":"2023-02-18T10:30:58.572Z","dependency_job_id":null,"html_url":"https://github.com/hellosign/hellosign-dotnet-sdk","commit_stats":null,"previous_names":[],"tags_count":22,"template":false,"template_full_name":null,"purl":"pkg:github/hellosign/hellosign-dotnet-sdk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellosign%2Fhellosign-dotnet-sdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellosign%2Fhellosign-dotnet-sdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellosign%2Fhellosign-dotnet-sdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellosign%2Fhellosign-dotnet-sdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hellosign","download_url":"https://codeload.github.com/hellosign/hellosign-dotnet-sdk/tar.gz/refs/heads/v3","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellosign%2Fhellosign-dotnet-sdk/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28408903,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T01:52:23.358Z","status":"online","status_checked_at":"2026-01-14T02:00:06.678Z","response_time":107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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-14T03:52:55.107Z","updated_at":"2026-01-14T03:52:55.806Z","avatar_url":"https://github.com/hellosign.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ⚠ This SDK has been deprecated ⚠\n\nThis SDK is now deprecated and will no longer receive feature updates or bug fixes. Security fixes will still be applied as needed.\n\nThe new `Dropbox.Sign` SDK can be found at [hellosign/dropbox-sign-dotnet](https://github.com/hellosign/dropbox-sign-dotnet)!\n\nThe new SDK and this legacy SDK are _not_ backwards-compatible!\n\nPlease [see here for a comprehensive migration guide](https://developers.hellosign.com/docs/sdks/dotnet/migration-guide/).\n\n----\n\n# HelloSign .NET SDK\n\n[![Build status](https://ci.appveyor.com/api/projects/status/90m1ygpgg50qt30v/branch/v3?svg=true)](https://ci.appveyor.com/project/HelloSign/hellosign-dotnet-sdk/branch/v3)\n\nAn official library for using the HelloSign API written in C#.NET and powered by RestSharp.\n\n## Getting Help\n\n* **Use the [Issue Tracker](https://github.com/hellosign/hellosign-dotnet-sdk/issues) to report bugs or missing functionality in this library.**\n* **Send an email to apisupport@hellosign.com to request help with our API or your account.**\n\n## Installation\n\nThe HelloSign .NET SDK can be installed using the NuGet package manager, under the package name **HelloSign** ([package details](https://www.nuget.org/packages/HelloSign/)).\n\nIf you prefer not to use NuGet, you can download a ZIP archive containing the built .dll files from the [Releases](https://github.com/hellosign/hellosign-dotnet-sdk/releases) page, or clone this repository and build the project yourself (see \"Build from Source\" below).\n\n## Usage\n\nFirst, use our namespace:\n\n```C#\nusing HelloSign;\n```\n\nCreate a client object:\n\n```C#\n// Using your account's API Key\nvar client = new Client(\"ACCOUNT API KEY HERE\");\n\n// Or, using an OAuth 2.0 Access Token:\nvar client = new Client();\nclient.UseOAuth2Authentication(\"OAUTH ACCESS TOKEN HERE\");\n```\n\n### Error Handling\n\nMost methods will throw a relevant exception if something goes wrong.\nThis includes when our server returns an error message documented [here](https://www.hellosign.com/api/reference#ErrorNames).\n\nYou should always be prepared to catch these exceptions and handle them appropriately.\nRefer to HelloSign/Exceptions.cs in this repository for information about the custom exception classes this library defines.\n\n#### Warnings\n\nSome API responses include one or more warnings if there was a non-fatal problem with your request.\nAt any time, you may inspect the contents of `client.Warnings` (a List of HelloSign.Warning objects) and output them as you see fit.\n\n### Callback Event Parsing\n\nIf you're implementing a server that will receive callbacks from HelloSign, this library can parse the received JSON\ninto a native object and perform the hash-based integrity check for you.\n\n```C#\nString eventJson = ...; // Get this string from the 'json' POST parameter in the HTTP request\nEvent myEvent = client.ParseEvent(eventJson);\n\n// The Event object contains accessors for all related data.\nConsole.WriteLine(\"Received event with type: \" + event.EventType);\nSignatureRequest request = myEvent.SignatureRequest;\n```\n\n### Injecting Custom Request Parameters\n\nIn cases where this SDK might not directly support specifying a particular API request parameter that needs to be\npassed, there is now a way to inject your own custom parameters into the request before the SDK performs it.\n\nClient.AdditionalParameters is a Dictionary object you can add these extra keys and values to. These parameters will\nbe injected into all following API calls made by the SDK until you remove them. Here's an example:\n\n```C#\nclient.AdditionalParameters.Add(\"white_labeling_options\", \"{'primary_button_color':'#00b3e6'}\");\nvar app = new ApiApp { Name = \"Foo\", Domain = \"example.com\" };\napp = client.CreateApiApp(app)\nclient.AdditionalParameters.Remove(\"white_labeling_options\");\n```\n\n### Account Methods\n\n#### Get your Account details\n\n```C#\nvar account = client.GetAccount();\nConsole.WriteLine(\"My Account ID is: \" + account.AccountId);\n```\n\n#### Update your Account Callback URL\n\n```C#\nvar account = client.UpdateAccount(new Uri(\"https://example.com/hellosign.asp\"));\nConsole.WriteLine(\"Now my Callback URL is: \" + account.CallbackUrl);\n```\n\n#### Create a new Account\n\n```C#\n// Throws exception if account already exists\nvar account = client.CreateAccount(\"new.account@example.com\");\nConsole.WriteLine(\"The new Account's ID is: \" + account.AccountId);\n```\n\n### Signature Request Methods\n\n#### Send Signature Request using files (non-Embedded)\n\n```C#\nvar request = new SignatureRequest();\nrequest.Title = \"NDA with Acme Co.\";\nrequest.Subject = \"The NDA we talked about\";\nrequest.Message = \"Please sign this NDA and then we can discuss more. Let me know if you have any questions.\";\nrequest.AddSigner(\"jack@example.com\", \"Jack\");\nrequest.AddSigner(\"jill@example.com\", \"Jill\");\nrequest.AddCc(\"lawyer@example.com\");\nrequest.AddFile(\"c:\\users\\me\\My Documents\\nda.txt\");\nrequest.AddFile(\"c:\\users\\me\\My Documents\\AppendixA.txt\");\nrequest.Metadata.Add(\"custom_id\", \"1234\");\nrequest.Metadata.Add(\"custom_text\", \"NDA #9\");\nrequest.TestMode = true;\nvar response = client.SendSignatureRequest(request);\nConsole.WriteLine(\"New Signature Request ID: \" + response.SignatureRequestId);\n```\n\n**Note:** You can optionally pass an API App client ID as a second parameter to SendSignatureRequest.\n\n#### Send Signature Request using files and text tags with custom fields (non-Embedded)\n\nThis example uses custom fields and text tags, using the `AdditionalParamaters.add` method:\n\n```C#\nvar request = new SignatureRequest();\nrequest.Title = \"Sokovia Accords as discussed\";\nrequest.Subject = \"Sokovia Accords - Please Sign\";\nrequest.Message = \"Please sign ASAP\";\nrequest.AddSigner(\"tony@starkindustries.com\", \"Anthony Stark\");\nrequest.AddSigner(\"steverogers_1918@aol.com\", \"Steven Rogers\");\nrequest.AddCc(\"shield@shield.org\");\nrequest.AddFile(\"sokovia_accords.PDF\");\nclient.AdditionalParameters.Add(\"custom_fields\", \"[{\\\"name\\\": \\\"Address\\\", \\\"value\\\": \\\"123 Main Street\\\"}, {\\\"name\\\": \\\"Phone\\\", \\\"value\\\": \\\"555-5555\\\"}]\");\nrequest.UseTextTags = true;\nrequest.HideTextTags = true;\nrequest.TestMode = true;\nvar response = client.SendSignatureRequest(request);\nConsole.WriteLine(\"New Signature Request ID: \" + response.SignatureRequestId);\n```\n\n#### Send Signature Request using files and form fields (non-Embedded)\n\n```C#\nvar request = new SignatureRequest();\nrequest.Title = \"NDA with Acme Co.\";\nrequest.Subject = \"The NDA we talked about\";\nrequest.Message = \"Please sign this NDA and then we can discuss more. Let me know if you have any questions.\";\nrequest.AddSigner(\"jack@example.com\", \"Jack\");\nrequest.AddFile(\"c:\\users\\me\\My Documents\\nda.pdf\").WithFields(\n    //            id      type                     page    x    y    w   h   req signer\n    new FormField(\"chk1\", FormField.TypeCheckbox,     1, 140,  72,  36, 36, true,     0),\n    new FormField(\"txt1\", FormField.TypeText,         1, 140, 144, 225, 20, true,     0),\n    new FormField(\"dat1\", FormField.TypeDateSigned,   1, 140, 216, 225, 52, true,     0),\n    new FormField(\"sig1\", FormField.TypeSignature,    1, 140, 288, 225, 52, true,     0),\n);\nrequest.TestMode = true;\nvar response = client.SendSignatureRequest(request);\nConsole.WriteLine(\"New Signature Request ID: \" + response.SignatureRequestId);\n```\n\n#### Send Signature Request using a template (non-Embedded)\n\n```C#\nvar request = new TemplateSignatureRequest();\nrequest.AddTemplate(\"TEMPLATE ID HERE\");\nrequest.Subject = \"Purchase Order\";\nrequest.Message = \"Glad we could come to an agreement.\";\nrequest.AddSigner(\"Client\", \"george@example.com\", \"George\");\nrequest.AddCc(\"Accounting\", \"accounting@hellosign.com\");\nrequest.AddCustomField(\"Cost\", \"$20,000\");\nrequest.TestMode = true;\nvar response = client.SendSignatureRequest(request);\nConsole.WriteLine(\"New Template Signature Request ID: \" + response.SignatureRequestId);\n```\n\n**Note:** You can optionally pass an API App client ID as a second parameter to SendSignatureRequest.\n\n#### Create Embedded Signature Request using files\n\n```C#\nvar request = new SignatureRequest();\nrequest.Title = \"NDA with Acme Co.\";\nrequest.Subject = \"The NDA we talked about\";\nrequest.Message = \"Please sign this NDA and then we can discuss more. Let me know if you have any questions.\";\nrequest.AddSigner(\"jack@example.com\", \"Jack\");\nrequest.AddSigner(\"jill@example.com\", \"Jill\");\nrequest.AddCc(\"lawyer@example.com\");\nrequest.AddFile(\"c:\\users\\me\\My Documents\\nda.txt\");\nrequest.AddFile(\"c:\\users\\me\\My Documents\\AppendixA.txt\");\nrequest.Metadata.Add(\"custom_id\", \"1234\");\nrequest.Metadata.Add(\"custom_text\", \"NDA #9\");\nrequest.TestMode = true;\nvar response = client.CreateEmbeddedSignatureRequest(request, \"CLIENT ID HERE\");\nConsole.WriteLine(\"New Embedded Signature Request ID: \" + response.SignatureRequestId);\n```\n\n#### Create Embedded Signature Request using a template\n\n```C#\nvar request = new TemplateSignatureRequest();\nrequest.AddTemplate(\"TEMPLATE ID HERE\");\nrequest.Subject = \"Purchase Order\";\nrequest.Message = \"Glad we could come to an agreement.\";\nrequest.AddSigner(\"Client\", \"george@example.com\", \"George\");\nrequest.AddCc(\"Accounting\", \"accounting@hellosign.com\");\nrequest.AddCustomField(\"Cost\", \"$20,000\");\nrequest.TestMode = true;\nvar response = client.CreateEmbeddedSignatureRequest(request, \"CLIENT ID HERE\");\nConsole.WriteLine(\"New Template-based Embedded Signature Request ID: \" + response.SignatureRequestId);\n```\n\n#### Get info about an existing Signature Request\n\n```C#\nvar request = client.GetSignatureRequest(\"SIGNATURE REQUEST ID HERE\");\nConsole.WriteLine(\"Signature Request title: \" + request.Title);\n```\n\n#### List Signature Requests\n\n```C#\nvar allRequests = client.ListSignatureRequests();\nConsole.WriteLine(\"Found this many signature requests: \" + allRequests.NumResults);\nforeach (var result in allRequests)\n{\n    Console.WriteLine(\"Signature request: \" + result.SignatureRequestId);\n\n    if (result.IsComplete) == true)\n    {\n        Console.WriteLine(\"Signature request is complete.\");\n    }\n    else\n    {\n        Console.WriteLine(\"Signature request is not complete\");\n    }\n}\n```\n\nIf you want to add an additional filter for `account_id`, you can add this line:\n\n```C#\nclient.AdditionalParameters.Add(\"account_id\", \"ACCOUNT_ID_HERE\");\n```\n\n#### Cancel a Signature Request\n\n```C#\nclient.CancelSignatureRequest(\"SIGNATURE REQUEST ID HERE\");\n```\n\n#### Remind a Signer to Sign\n\n```C#\nclient.RemindSignatureRequest(\"SIGNATURE REQUEST ID HERE\", \"EMAIL ADDRESS HERE\");\n```\n\n#### Update a Signature Request\n\n```C#\nclient.UpdateSignatureRequest(\"SIGNATURE REQUEST ID HERE\", \"SIGNATURE ID HERE\", \"NEW EMAIL ADDRESS HERE\");\n```\n\n#### Download a Signature Request (in its current state) and save to disk\n\n```C#\n// Download a merged PDF\nclient.DownloadSignatureRequestFiles(\"SIGNATURE REQUEST ID HERE\", \"/path/to/output.pdf\");\n// Or download a ZIP containing individual unmerged PDFs\nclient.DownloadSignatureRequestFiles(\"SIGNATURE REQUEST ID HERE\", \"/path/to/output.pdf\", SignatureRequest.FileType.ZIP);\n```\n\n#### Download a Signature Request (in its current state) as bytes\n\n```C#\n// Download a merged PDF\nvar bytes = client.DownloadSignatureRequestFiles(\"SIGNATURE REQUEST ID HERE\");\n// Or download a ZIP containing individual unmerged PDFs\nvar bytes = client.DownloadSignatureRequestFiles(\"SIGNATURE REQUEST ID HERE\", SignatureRequest.FileType.ZIP);\n```\n\n#### Get a temporary URL to download a Signature Request\n\n```C#\nvar url = client.GetSignatureRequestDownloadUrl(\"SIGNATURE REQUEST ID HERE\");\nConsole.WriteLine(\"The download URL is: \" + url.FileUrl);\nConsole.WriteLine(\"The URL expires at: \" + url.ExpiresAt);\n```\n\n#### Release an On-Hold Signature Request\n\n```C#\nclient.ReleaseSignatureRequest(\"SIGNATURE REQUEST ID HERE\");\n```\n\n### Embedded Methods\n\n#### Retrieve Embedded Signing URL for a particular signer\n\n```C#\nvar response = client.GetSignUrl(\"SIGNATURE ID HERE\");\nConsole.WriteLine(\"Signature URL for HelloSign.open(): \" + response.SignUrl);\n```\n\n#### Retrieve Embedded Templates Editing URL\n\n```C#\nvar response = client.GetEditUrl(\"EMBEDDED TEMPLATE ID HERE\");\nConsole.WriteLine(\"Editing URL for HelloSign.open(): \" + response.EditUrl);\n```\n\n### Unclaimed Draft Methods (for Embedded Requesting)\n\n#### Create Unclaimed Draft with a file (non-Embedded)\n\n```C#\nvar draft = new SignatureRequest();\ndraft.AddFile(\"DOCUMENT 1.pdf\");\ndraft.AddFile(\"LEASE.pdf\");\ndraft.TestMode = true;\ndraft.AllowDecline = true;\nvar response = client.CreateUnclaimedDraft(draft, UnclaimedDraft.Type.SendDocument);\nConsole.WriteLine(\"Unclaimed Draft Signature Request ID: \" + response.SignatureRequestId);\nConsole.WriteLine(\"Claim URL: \" + response.ClaimUrl);\n```\n\n#### Create Embedded Unclaimed Draft with a file\n\n```C#\nvar draft = new SignatureRequest();\ndraft.AddFile(\"DOCUMENT A.pdf\");\ndraft.RequesterEmailAddress = \"EMAIL HERE\";\ndraft.TestMode = true;\nvar response = client.CreateUnclaimedDraft(draft, myClientId);\nConsole.WriteLine(\"Embedded Unclaimed Draft Signature Request ID: \" + response.SignatureRequestId);\nConsole.WriteLine(\"Claim URL: \" + response.ClaimUrl);\n```\n\n#### Create Embedded Unclaimed Draft with a template\n\n```C#\nvar request = new TemplateSignatureRequest();\nrequest.AddTemplate(\"TEMPLATE ID HERE\");\nrequest.RequesterEmailAddress = \"REQUESTER EMAIL HERE\";\nrequest.TestMode = true;\nrequest.AddSigner(\"Client\", \"CLIENT EMAIL\", \"CLIENT NAME\");\nrequest.AddSigner(\"Witness\", \"WITNESS EMAIL\", \"WITNESS NAME\");\nvar response = client.CreateUnclaimedDraft(request, myClientId);\nConsole.WriteLine(\"Embedded Unclaimed Draft w/ Template, Signature Request ID: \" + response.SignatureRequestId);\nConsole.WriteLine(\"Claim URL: \" + response.ClaimUrl);\n```\n\n#### Edit \u0026 resend Unclaimed Draft\n\nNot implemented\n\n### Template Methods\n\n#### Get Template details\n\n```C#\nvar template = client.GetTemplate(\"TEMPLATE ID HERE\");\n```\n\n#### Add an Account to a Template\n\n```C#\nvar template = client.AddAccountToTemplate(\"TEMPLATE ID HERE\", \"ACCOUNT ID HERE\");\n// Or...\nvar template = client.AddAccountToTemplate(\"TEMPLATE ID HERE\", null, \"EMAIL ADDRESS HERE\");\n```\n\n#### Remove an Account from a Template\n\n```C#\nvar template = client.RemoveAccountFromTemplate(\"TEMPLATE ID HERE\", \"ACCOUNT ID HERE\");\n// Or...\nvar template = client.RemoveAccountFromTemplate(\"TEMPLATE ID HERE\", null, \"EMAIL ADDRESS HERE\");\n```\n\n#### Download a Template as a PDF and save to disk\n\n```C#\nclient.DownloadTemplateFiles(\"TEMPLATE ID HERE\", \"/path/to/output.pdf\");\n```\n\n#### Download a Template as a PDF, as bytes\n\n```C#\nvar bytes = client.DownloadTemplateFiles(\"TEMPLATE ID HERE\");\n```\n\n#### Get a temporary URL to download a Template's files\n\n```C#\nvar url = client.GetTemplateFilesDownloadUrl(\"TEMPLATE ID HERE\");\nConsole.WriteLine(\"The download URL is: \" + url.FileUrl);\nConsole.WriteLine(\"The URL expires at: \" + url.ExpiresAt);\n```\n\n#### Delete a Template\n\n```C#\nclient.DeleteTemplate(\"TEMPLATE ID HERE\");\n```\n\n## Create a new Embedded Template Draft\n\n```C#\nvar draft = new EmbeddedTemplateDraft();\ndraft.TestMode = true;\ndraft.AddFile(file1, \"NDA.txt\");\ndraft.Title = \"Test Template\";\ndraft.Subject = \"Please sign this document\";\ndraft.Message = \"For your approval.\";\ndraft.AddSignerRole(\"Client\", 0);\ndraft.AddSignerRole(\"Witness\", 1);\ndraft.AddCcRole(\"Manager\");\ndraft.AddMergeField(\"Full Name\", MergeField.FieldType.Text);\ndraft.AddMergeField(\"Is Registered?\", MergeField.FieldType.Checkbox);\nvar response = client.CreateEmbeddedTemplateDraft(draft, \"CLIENT ID HERE\");\n```\n\n### Reports Methods\n\n```C#\nvar reportRequest = new Report();\nreportRequest.StartDate = DateTime.Now.AddYears(-1);\nreportRequest.EndDate = DateTime.Now;\nreportRequest.ReportType = \"user_activity, document_status\";\nvar reportResponse = client.CreateReport(reportRequest);\nConsole.WriteLine($\"Status for Report ({reportResponse.ReportType}) between {reportResponse.StartDate} - {reportResponse.EndDate}: {reportResponse.Success}\");\n```\n\n### Team Methods\n\n#### Get your Team details\n\n```C#\nvar team = client.GetTeam();\n```\n\n#### Create a new Team\n\n```C#\nvar team = client.CreateTeam(\"NAME HERE\");\n```\n\n#### Update your Team name\n\n```C#\nvar team = client.UpdateTeamName(\"NAME HERE\");\n```\n\n#### Delete your Team\n\n```C#\nvar team = client.DeleteTeam();\n```\n\n#### Add a member to your Team\n\n```C#\nvar team = client.AddMemberToTeam(\"ACCOUNT ID HERE\");\n// Or...\nvar team = client.AddMemberToTeam(null, \"EMAIL ADDRESS HERE\");\n```\n\n#### Remove a member from your Team\n\n```C#\nvar team = client.RemoveMemberFromTeam(\"ACCOUNT ID HERE\");\n// Or...\nvar team = client.RemoveMemberFromTeam(null, \"EMAIL ADDRESS HERE\");\n```\n\n### App Methods\n\n#### Get information about an API app\n\n```C#\nvar app = client.GetApiApp(client_id);\nConsole.WriteLine(\"API APP: \" + app.ClientId);\nConsole.WriteLine(\"This app is approved: \" + app.IsApproved);\nConsole.WriteLine(\"This app has callback URL: \" + app.CallbackUrl);\n```\n\n#### List all API apps\n\n```C#\nvar apiApps = client.ListApiApps();\nConsole.WriteLine(\"Found this many API apps: \" + apiApps.NumResults);\nforeach (var result in apiApps)\n    {\n        Console.WriteLine(\"API app: \" + result.Name + \" (\" + result.ClientId + \")\");\n    }\n```\n\n#### Create a new API app\n\n```C#\nvar capp = new ApiApp();\ncapp.Name = \"App for Production\";\ncapp.Domain = \"yourwebsite.com\";\nvar cresponse = client.CreateApiApp(capp);\nConsole.WriteLine(\"This API app was just created: \" + cresponse.ClientId);\nConsole.WriteLine(\"App name: \" + cresponse.Name);\n```\n\n#### Delete an API app\n\n```C#\nclient.DeleteApiApp(\"CLIENT_ID_HERE\");\nConsole.WriteLine(\"API app was just deleted!\");\n```\n\n## Build from Source\n\n### Windows\n\nUse Visual Studio (Express) 2017 or newer.\n\n### Linux (and OSX?) using DotNet SDK + Mono\n\nTo create Debug builds for both the library (HelloSign.dll) and the test application (HelloSignTestApp.dll), run:\n\n```sh\ndotnet build\n```\n\nOr, to create Release builds:\n\n```sh\ndotnet build -c Release\n```\n\nNote: The .NET Framework build target will not be used when running this on a non-Windows system.\nOnly .NET Standard 2.0 artifacts will be created.\n\n### Packaging for NuGet\n\n1. `cd HelloSign`\n2. `nuget pack HelloSign.csproj -Prop Configuration=Release`\n\n## License\n\n```\nThe MIT License (MIT)\n\nCopyright (C) 2015 hellosign.com\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhellosign%2Fhellosign-dotnet-sdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhellosign%2Fhellosign-dotnet-sdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhellosign%2Fhellosign-dotnet-sdk/lists"}