Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

2 Commits

Repository files navigation

SharpAPI GitHub cover

SharpAPI .NET Client SDK Documentation

🚀 Automate Workflows with an AI-Powered API

Leverage the SharpAPI service in your .NET applications to streamline tasks in E-Commerce, Marketing, Content Management, HR Tech, Travel, and more.

Latest Version on NuGetTotal Downloads

See more at SharpAPI.com Website »


Requirements

  • .NET 5.0 (or later) / .NET Core 3.1+
  • A valid SharpAPI API key – register at SharpAPI.com to obtain one.

⛲ What Can It Do for You?

  • E-commerce

    • Generate engaging product introductions.
    • Create personalized thank-you emails.
    • Streamline product categorization.
    • Analyze product review sentiments.
  • Content & Marketing Automation

    • Translate text for a global audience.
    • Paraphrase, proofread, and summarize content.
    • Detect spam and extract contact information.
    • Generate unique keywords and SEO meta tags.
  • HR Tech

    • Parse resumes (CV) from multiple file formats.
    • Generate detailed job descriptions.
    • Discover related skills and job positions.
  • Travel, Tourism & Hospitality

    • Analyze travel review sentiments.
    • Categorize tours, activities, and hospitality products.

Installation

You can install the package via NuGet. In your project directory, run:

dotnet add package SharpApi.Service

Alternatively, install using the NuGet Package Manager in Visual Studio.


Setup & Configuration

Dependency Injection

The SDK provides an extension method to easily register SharpAPI services into your dependency injection container. For example, in an ASP.NET Core application, update your Program.cs or Startup.cs as follows:

usingSharpApi.Service;// Assuming you have configuration in appsettings.json under "SharpApi"builder.Services.AddSharpApi(builder.Configuration.GetSection("SharpApi"));

Configuration Settings

In your configuration file (e.g. appsettings.json), include a SharpAPI section similar to:

{
"SharpApi": {
"ApiKey": "YOUR_SHARPAPI_API_KEY",
"BaseAddress": "https://sharpapi.com",
"MaximumDurationOfGettingResultInSeconds": 180,
"DefaultHttpRetryAfterInSeconds": 10,
"OverrideHttpRetryAfterWithClientDefault": false,
"MaximumNumberOfHttpRedirections": 5,
"ValidResumeFileExtensions": [ "pdf", "doc", "docx", "txt", "rtf" ]
}
}

Usage

The SDK exposes the ISharpApiService interface that provides asynchronous methods for calling the SharpAPI endpoints.

Simple Example

Below is a basic example demonstrating how to call the PingAsync endpoint to check API availability:

usingMicrosoft.Extensions.DependencyInjection;usingMicrosoft.Extensions.Configuration;usingSharpApi.Service;usingSystem;usingSystem.Threading;usingSystem.Threading.Tasks;publicclassProgram{publicstaticasyncTaskMain(string[]args){// Build configuration and register servicesvarconfiguration=newConfigurationBuilder().AddJsonFile("appsettings.json").Build();varservices=newServiceCollection();services.AddSharpApi(configuration.GetSection("SharpApi"));varserviceProvider=services.BuildServiceProvider();// Resolve the SharpAPI servicevarsharpApiService=serviceProvider.GetRequiredService<ISharpApiService>();// Example call to the Ping endpointvarpingResponse=awaitsharpApiService.PingAsync(CancellationToken.None);Console.WriteLine($"Ping: {pingResponse.Ping}, Timestamp: {pingResponse.Timestamp}");}}

Using Other API Methods

Each method dispatches a job request that returns a status URL. The SDK internally polls until the job status is success (or failed if an error occurred). Below are full code samples for all available endpoints:


Code Samples for All API Endpoints

General Endpoints

Ping

varpingResponse=awaitsharpApiService.PingAsync(CancellationToken.None);Console.WriteLine($"Ping: {pingResponse.Ping}, Timestamp: {pingResponse.Timestamp}");

Quota

varquota=awaitsharpApiService.QuotaAsync(CancellationToken.None);Console.WriteLine($"Subscription Words Used: {quota.SubscriptionWordsUsed} out of {quota.SubscriptionWordsQuota}");

HR Endpoints

Parse Resume/CV

varresume=awaitsharpApiService.ParseResumeAsync("path/to/resume.pdf",CancellationToken.None);// Resume is returned as a structured object with details such as CandidateName, Positions, EducationQualifications, etc.Console.WriteLine($"Candidate Name: {resume.CandidateName}");

Generate Job Description

varjobRequest=newJobDescriptionRequest{Name="C# Senior Developer",CompanyName="ACME Corp",MinimumWorkExperience="5 years",MinimumEducation="Bachelor's Degree",RequiredSkills=new[]{"C#",".NET","SQL"},OptionalSkills=new[]{"Azure","Microservices"},Country="United States",Remote=true,VisaSponsored=false,Language=Language.English,VoiceTone="Professional",Context="Detailed job role for senior level"};varjobDescription=awaitsharpApiService.JobDescriptionAsync(jobRequest,CancellationToken.None);Console.WriteLine($"Job Short Description: {jobDescription.JobShortDescription}");

Related Skills

varrelatedSkills=awaitsharpApiService.RelatedSkillsAsync(newRelatedSkillsRequest{Content="C#",Language=Language.English,MaxQuantity=10},CancellationToken.None);Console.WriteLine("Related Skills:");foreach(varskillinrelatedSkills.RelatedSkills){Console.WriteLine($"Skill: {skill.Name}, Weight: {skill.Weight}");}

Related Job Positions

varrelatedJobs=awaitsharpApiService.RelatedJobPositionsAsync(newRelatedJobPositionsRequest{Content="Senior Developer",Language=Language.English,MaxQuantity=10},CancellationToken.None);Console.WriteLine("Related Job Positions:");foreach(varjobinrelatedJobs.RelatedJobPositions){Console.WriteLine($"Job Position: {job.Name}, Weight: {job.Weight}");}

E-commerce Endpoints

Product Review Sentiment Analysis

varsentimentResult=awaitsharpApiService.ReviewSentimentAsync("The product is excellent, highly recommended!",CancellationToken.None);Console.WriteLine($"Sentiment: {sentimentResult.opinion}, Score: {sentimentResult.score}");

Product Categories

varcategories=awaitsharpApiService.ProductCategoriesAsync(newProductCategoriesRequest{Content="Smartphone with great camera features",Language=Language.English,MaxQuantity=5,VoiceTone="Neutral",Context="Electronics"},CancellationToken.None);Console.WriteLine("Product Categories:");foreach(varcategoryincategories){Console.WriteLine($"Category: {category.Name}, Weight: {category.Weight}");}

Product Introduction

varproductIntro=awaitsharpApiService.ProductIntroAsync(newProductIntroRequest{Content="This smartphone features a powerful camera and sleek design.",Language=Language.English,MaxLength=300,VoiceTone="Energetic"},CancellationToken.None);Console.WriteLine("Product Introduction: "+productIntro.ProductIntro);

Thank You Email Generation

varthankYouEmail=awaitsharpApiService.ThankYouEmailAsync(newThankYouEmailRequest{Content="Thank you for your purchase!",Language=Language.English,VoiceTone="Friendly",Context="Include a discount offer for next purchase"},CancellationToken.None);Console.WriteLine("Thank You Email: "+thankYouEmail.email);

Content & Marketing Automation Endpoints

Detect Phone Numbers

varphoneNumbers=awaitsharpApiService.DetectPhoneNumbersAsync("Call us at 1800-394-7486 or +1-800-555-1234",CancellationToken.None);foreach(varphoneinphoneNumbers){Console.WriteLine($"Detected: {phone.DetectedNumber}, Parsed: {phone.ParsedNumber}");}

Detect Emails

varemails=awaitsharpApiService.DetectEmailsAsync("Contact us at info@example.com or support@example.org",CancellationToken.None);Console.WriteLine("Detected Emails:");foreach(varemailinemails){Console.WriteLine(email);}

Detect Spam

varspamResult=awaitsharpApiService.DetectSpamAsync("This is a free money offer!",CancellationToken.None);Console.WriteLine($"Spam Passed: {spamResult.Pass}, Score: {spamResult.Score}, Reason: {spamResult.Reason}");

Summarize Content

varsummary=awaitsharpApiService.SummarizeAsync(newSummarizeRequest{Content="Long text content that needs summarizing goes here...",Language=Language.English,VoiceTone="Neutral",MaxLength=150},CancellationToken.None);Console.WriteLine("Summary: "+summary.Summary);

Generate Keywords/Tags

varkeywords=awaitsharpApiService.GenerateKeywordsAsync(newGenerateKeywordsRequest{Content="Innovative and groundbreaking smartphone with advanced features.",Language=Language.English,MaxQuantity=5,VoiceTone="Informative"},CancellationToken.None);Console.WriteLine("Keywords: "+string.Join(", ",keywords));

Translate Text

vartranslation=awaitsharpApiService.TranslateAsync(newTranslateRequest{Content="Hello, how are you?",Language=Language.French,VoiceTone="Neutral",Context="Greeting"},CancellationToken.None);Console.WriteLine($"Translated Content: {translation.Content}, From: {translation.FromLanguage.Value}, To: {translation.ToLanguage.Value}");

Paraphrase Content

varparaphrase=awaitsharpApiService.ParaphrazeAsync(newParaphraseRequest{Content="Original content that needs to be rephrased.",MaxLength=250,Language=Language.English,VoiceTone="Formal",Context="Use synonyms where applicable"},CancellationToken.None);Console.WriteLine("Paraphrased Text: "+paraphrase.Paraphrase);

Proofread Text

varproofreadResult=awaitsharpApiService.ProofReadAsync("This are a sample text with error.",CancellationToken.None);Console.WriteLine("Proofread Text: "+proofreadResult.Proofread);

SEO Endpoints

Generate SEO Meta Tags

varseoTags=awaitsharpApiService.GenerateSeoTagsAsync(newGenerateSeoTagsRequest{Content="Content for generating SEO meta tags",VoiceTone="Professional"},CancellationToken.None);Console.WriteLine("SEO Title: "+seoTags.MetaTags.Title);

Travel, Tourism & Hospitality Endpoints

Travel Review Sentiment Analysis

vartravelSentiment=awaitsharpApiService.TravelReviewSentimentAsync("I loved the service and the ambiance was perfect.",CancellationToken.None);Console.WriteLine($"Travel Sentiment: {travelSentiment.Opinion}, Score: {travelSentiment.Score}");

Tours & Activities Product Categories

vartaCategories=awaitsharpApiService.ToursAndActivitiesProductCategoriesAsync(newToursAndActivitiesProductCategoriesRequest{Content="Adventure tour in the mountains",City="Denver",Country="USA",Language=Language.English,MaxQuantity=3,VoiceTone="Exciting",Context="Outdoor adventures"},CancellationToken.None);Console.WriteLine("Tours & Activities Categories:");foreach(varcategoryintaCategories){Console.WriteLine($"Category: {category.Name}, Weight: {category.Weight}");}

Hospitality Product Categories

varhospitalityCategories=awaitsharpApiService.HospitalityProductCategoriesAsync(newHospitalityProductCategoriesRequest{Content="Luxury hotel with spa and gourmet dining",City="Paris",Country="France",Language=Language.English,MaxQuantity=3,VoiceTone="Elegant",Context="Luxury hospitality"},CancellationToken.None);Console.WriteLine("Hospitality Categories:");foreach(varcategoryinhospitalityCategories){Console.WriteLine($"Category: {category.Name}, Weight: {category.Weight}");}

Error Handling

The SDK uses standard .NET exceptions (such as HttpRequestException and custom SharpApiException) to report errors. Make sure to catch these exceptions to handle API timeouts, validation errors, or unexpected response statuses gracefully.


API Documentation

For detailed information on API endpoints, request parameters, and response formats, please refer to the official API Documentation.


Contributing

Contributions are welcome! If you encounter issues or have suggestions for improvements, please open an issue or submit a pull request on GitHub.


License

This project is licensed under the MIT License. See the LICENSE file for details.


Happy coding with SharpAPI .NET Client SDK!