{"id":26229615,"url":"https://github.com/sharpapi/sharpapi-flutter-client","last_synced_at":"2025-07-06T16:03:35.145Z","repository":{"id":226086881,"uuid":"761123662","full_name":"sharpapi/sharpapi-flutter-client","owner":"sharpapi","description":"SharpAPI.com - Automate with AI-powered API. Leverage AI API for workflows automation in E-Commerce, Marketing, Content Management, HR Tech, Travel, and more.","archived":false,"fork":false,"pushed_at":"2024-08-06T12:04:40.000Z","size":104,"stargazers_count":27,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-19T20:43:04.910Z","etag":null,"topics":["ai","ai-api","android-ai","api","artificial-intelligence","content-analysis","content-automation","e-commerce","e-commerce-automation","flutter","hospitality-automation","hrtech","hrtech-automation","ios-ai","marketing-automation","mobile-ai","sharpapi","travel-automation","workflow-automation","workflows"],"latest_commit_sha":null,"homepage":"https://sharpapi.com","language":"Dart","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/sharpapi.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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-02-21T09:32:36.000Z","updated_at":"2024-12-24T01:07:09.000Z","dependencies_parsed_at":"2025-04-20T14:46:38.638Z","dependency_job_id":null,"html_url":"https://github.com/sharpapi/sharpapi-flutter-client","commit_stats":null,"previous_names":["sharpapi/sharpapi-flutter-client"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sharpapi/sharpapi-flutter-client","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sharpapi%2Fsharpapi-flutter-client","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sharpapi%2Fsharpapi-flutter-client/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sharpapi%2Fsharpapi-flutter-client/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sharpapi%2Fsharpapi-flutter-client/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sharpapi","download_url":"https://codeload.github.com/sharpapi/sharpapi-flutter-client/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sharpapi%2Fsharpapi-flutter-client/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263931988,"owners_count":23531704,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","ai-api","android-ai","api","artificial-intelligence","content-analysis","content-automation","e-commerce","e-commerce-automation","flutter","hospitality-automation","hrtech","hrtech-automation","ios-ai","marketing-automation","mobile-ai","sharpapi","travel-automation","workflow-automation","workflows"],"created_at":"2025-03-12T22:17:05.425Z","updated_at":"2025-07-06T16:03:35.128Z","avatar_url":"https://github.com/sharpapi.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"![SharpAPI GitHub cover](https://sharpapi.com/sharpapi-github-php-bg.jpg \"SharpAPI Flutter Client\")\n\n# SharpAPI Flutter Client SDK\n\n## 🚀 Automate with AI in just two lines of code. Save countless hours and enhance your app effortlessly.\n\n### Leverage AI API to streamline workflows in E-Commerce, Marketing, Content Management, HR Tech, Travel, and more.\n\n#### Save time on repetitive content analysis and generation tasks that your app users perform daily.\n\nSee more at [SharpAPI.com Website \u0026raquo;](https://sharpapi.com/)\n\n## What can it do for you?\n\n* **E-commerce**\n    - Quickly generate engaging product introductions to attract customers.\n    - Automatically create personalized thank-you emails for enhanced customer experience.\n    - Streamline product categorization for a well-organized catalog.\n    - Sentiment Analysis: Understand and analyze sentiment in product reviews for data-driven decision-making.\n* **Content \u0026 Marketing Automation**\n    - Easily translate text for a global audience.\n    - Spam Content Detection: Identify and filter out spam content effectively.\n    - Contact Information Extraction: Extract phone numbers and email addresses from non-standard formats for\n      streamlined communication.\n    - Generate concise summaries and unique keywords/tags for improved content consumption.\n    - Boost SEO efforts by automatically generating META tags based on content.\n* **HR Tech**\n    - Generate complex job descriptions effortlessly, saving time in the hiring process.\n    - Skills and Position Insights: Identify related job positions and skills to streamline recruitment.\n    - Automated Resume Parsing: Efficiently parse and extract information from resumes files for easy processing.\n* **Travel, Tourism \u0026 Hospitality**\n    - Analyze sentiment in travel reviews to improve services.\n    - Streamline categorization for tours, activities, and hospitality products.\n\n## Features\n\nPlease refer to the official:\n\n- [API Documentation](https://sharpapi.com/documentation)\n- **Multi-language Support**:\n  Supporting 80 languages for every content or data analysis API endpoint.\n  [Check the list here](https://botpress.com/blog/list-of-languages-supported-by-chatgpt).\n- **Easy-to-Use RESTful Format**:\n  With standardized set of endpoints - gain valuable insights through analysis endpoints, covering product categories,\n  skills, and job positions, providing relevant scores.\n- **Always the same, clean data formats**:\n  Rest assured with consistent, predictable JSON format\n  for all returned data. No need to worry about fuzzy AI data.\n- **Tech Support**:\n  Crafted by developers for developers, we provide continuous\n  assistance throughout your journey.\n\n## Installation\n\n1. Add sharpapi_flutter_client to your `pubspec.yaml` file\n    ```yaml\n    dependencies:\n      sharpapi_flutter_client: ^latest_version\n    ```\n   \n2. Run `flutter pub get` to install the package.\n\n3. Register at [SharpApi.com](https://sharpapi.com/) and get the API key.\n   **That's it!**\n\n## Usage\n\n1. Import the package in your dart file\n    ```dart\n    import 'package:sharpapi_flutter_client/sharpapi_flutter_client.dart';\n    ```\n   \n2. Initialize the `SharpApiConfigs` with your API key in the `main` method\n    ```dart\n   void main() {\n      SharpApiConfigs.init(\n        apiKey: 'YOUR_API_KEY',\n      );\n\n      runApp(const MyApp());\n    }\n    ```\n\n**Each call usually takes somewhere between a couple of seconds to a minute.**\n\nAfter that period a returned response will usually have `success` status and it's results will\nbe available for further processing.\nEach API method returns different return format.\n[Go to List of API methods/endpoints below for details\u0026raquo;](#list-of-api-methodsendpoints)\n\n**Our API guarantees to return correct format every time.** AI engines that SharpAPI\nuse in rare cases have a tendency to misbehave and timeout\nor return incorrect data.\nIn those cases the returned `status` for the job will be `failed`.\nYou can rerun the exact same job request in that case.\n\nAs long as the job is still being processed by our engine it will keep\nreturning `pending` status.\n\n## List of API methods/endpoints\n\nFor methods that have language parameter you can also\nuse `SharpApiLanguages` Enum values to make your code more readable.\n\n### HR\n\n#### Parse Resume/CV File\n\nParses a resume (CV) file from multiple formats (PDF/DOC/DOCX/TXT/RTF) and returns an extensive object of data points.\n\nAn optional output language parameter can also be provided (`English` value is set as the default one) .\n\n```dart\n  ///*** parse resume\n  SharpApi.parseResume(\n    resume: File(''),\n    language: SharpApiLanguages.ENGLISH, // optional language\n  ).then((value) {\n    /// do something with the [value] here\n  }).catchError((error) {\n    /// do something with the [error] here\n  });\n```\n\n#### Generate Job Description\n\nBased on the list of extensive parameters this endpoint provides concise job details in the response format, including\nthe short description, job requirements, and job responsibilities.\nThe only mandatory parameter is `name`.\n\n```dart\n  ///*** generate job description\n  SharpApi.generateJobDescription(\n    name: 'ANY_JOB_TITLE',\n    companyName: 'ANY_COMPANY_NAME',      // optional company name\n    minimumEducation: 'Bachelor Degree',  // optional minimum education\n    minimumWorkExperience: '2 years',     // optional minimum work experience\n    employmentType: 'Full Time',          // optional employment type\n    country: 'United States',             // optional country\n    remote: true,                         // optional remote\n    visaSponsored: true,                  // optional visa sponsored\n    requiredSkills: ['skill1', 'skill2'], // optional required skills\n    optionalSkills: ['skill3', 'skill4'], // optional optional skills\n    language: SharpApiLanguages.ENGLISH,  // optional language\n    voiceTone: 'neutral',                 // optional voice tone\n    context: 'avoid using abbreviations', // optional context\n  ).then((value) {\n    /// do something with the [value] here\n  }).catchError((error) {\n    /// do something with the [error] here\n  });\n```\n\n#### Related Skills\n\nGenerates a list of related skills with their weights as a float\nvalue (1.0-10.0) where 10 equals 100%, the highest relevance score.\n\n```dart\n  ///*** related skills\n  SharpApi.relatedSkills(\n    skill: 'ANY_SKILL',\n    language: SharpApiLanguages.ENGLISH,  // optional language\n    maxQuantity: 5,                       // optional max quantity\n  ).then((value) {\n    /// do something with the [value] here\n  }).catchError((error) {\n    /// do something with the [error] here\n  });\n```\n\n#### Related Job Positions\n\nGenerates a list of related job positions with their weights as\nfloat value (1.0-10.0) where 10 equals 100%, the highest relevance score.\n\n```dart\n  ///*** related job positions\n  SharpApi.relatedJobPositions(\n    jobTitle: 'ANY_JOB_TITLE',\n    language: SharpApiLanguages.ENGLISH,  // optional language\n    maxQuantity: 5,                       // optional max quantity\n  ).then((value) {\n    /// do something with the [value] here\n  }).catchError((error) {\n    /// do something with the [error] here\n  });\n```\n\n### E-commerce\n\n#### Product Review Sentiment\n\nParses the customer's product review and provides its sentiment (POSITIVE/NEGATIVE/NEUTRAL)\nwith a score between 0-100%. Great for sentiment report processing for any online store.\n\n```dart\n  ///*** product review sentiment\n  SharpApi.productReviewSentiment(\n    content: 'ANY_CONTENT',\n    language: SharpApiLanguages.ENGLISH,  // optional language\n  ).then((value) {\n    /// do something with the [value] here\n  }).catchError((error) {\n    /// do something with the [error] here\n  });\n```\n\n#### Product Categories\n\nGenerates a list of suitable categories for the product with relevance\nweights as a float value (1.0-10.0) where 10 equals 100%, the highest relevance score.\nProvide the product name and its parameters to get the best category matches possible.\nComes in handy with populating product catalogue data and bulk products' processing.\n\n```dart\n  ///*** product categories\n  SharpApi.productCategories(\n    content: 'ANY_CONTENT',\n    language: SharpApiLanguages.ENGLISH,  // optional language\n    maxQuantity: 5,                       // optional max quantity\n    context: 'avoid using abbreviations', // optional context\n    voiceTone: 'neutral',                 // optional voice tone\n  ).then((value) {\n    /// do something with the [value] here\n  }).catchError((error) {\n    /// do something with the [error] here\n  });\n```\n\n#### Generate Product Intro\n\nGenerates a shorter version of the product description. Provide as many details\nand parameters of the product to get the best marketing introduction possible.\nComes in handy with populating product catalog data and bulk products processing.\n\n```dart\n  ///*** generate product intro\n  SharpApi.generateProductIntro(\n    content: 'ANY_CONTENT',\n    language: SharpApiLanguages.ENGLISH,  // optional language\n    voiceTone: 'neutral',                 // optional voice tone\n    maxLength: 500,                       // optional max length\n  ).then((value) {\n    /// do something with the [value] here\n  }).catchError((error) {\n    /// do something with the [error] here\n  });\n```\n\n#### Generate Thank You E-mail\n\nGenerates a personalized thank-you email to the customer after the purchase.\nThe response content does not contain the title, greeting or sender info at the end,\nso you can personalize the rest of the email easily.\n\n```dart\n  ///*** generate thank you email\n  SharpApi.generateThankYouEmail(\n    content: 'ANY_CONTENT',\n    language: SharpApiLanguages.ENGLISH,  // optional language\n    voiceTone: 'neutral',                 // optional voice tone\n    maxLength: 500,                       // optional max length\n    context: 'avoid using abbreviations', // optional context\n  ).then((value) {\n    /// do something with the [value] here\n  }).catchError((error) {\n    /// do something with the [error] here\n  });\n```\n\n### Content\n\n#### Paraphrase / Rephrase Text\n\nGenerates a paraphrased version of the provided text.\nOnly the `content` parameter is required. You can define the output language,\nmaximum character length, and tone of voice.\n\nAdditional instructions on how to process the text can be provided in the context parameter.\nPlease keep in mind that `max_length` serves as a strong suggestion\nfor the Language Model, rather than a strict requirement,\nto maintain the general sense of the outcome.\n\nYou can set your preferred writing style by providing an optional `voice_tone` parameter.\nIt can be adjectives like `funny` or `joyous`, or even the name of a famous writer.\n\nThis API method also provides an optional `context` parameter,\nwhich can be used to supply additional flexible instructions for content processing.\n\n```dart\n  ///*** paraphrase text\n  SharpApi.paraphrase(\n    text: 'ANY_TEXT',\n    language: SharpApiLanguages.ENGLISH,   // optional language\n    maxLength: 500,                        // optional length\n    voiceTone: 'neutral',                  // optional voice tone\n    context: 'avoid using abbreviations',  // optional context\n  ).then((value) {\n    /// do something with the [value] here\n  }).catchError((error) {\n    /// do something with the [error] here\n  });\n```\n\n#### Proofread Text + Grammar Check\n\nProofreads (and checks grammar) a provided text.\n\n```dart\n  ///*** proofread text\n  SharpApi.proofread(\n    text: 'ANY_TEXT',\n  ).then((value) {\n    /// do something with the [value] here\n  }).catchError((error) {\n    /// do something with the [error] here\n  });\n```\n\n#### Translate Text\n\nTranslates provided text to selected language. 80 languages are supported.\nPlease check included `SharpApiLanguages` _Enum_ class for details.\n\n```dart\n  ///*** translate text\n  SharpApi.translate(\n    text: 'ANY_TEXT',\n    language: SharpApiLanguages.ENGLISH,  // optional language\n    voiceTone: 'neutral',                 // optional voice tone\n    context: 'avoid using abbreviations', // optional context\n  ).then((value) {\n    /// do something with the [value] here\n  }).catchError((error) {\n    /// do something with the [error] here\n  });\n```\n\n#### Detect Spam\n\nChecks if provided content passes a spam filtration test.\nProvides a percentage confidence score and an explanation\nfor whether it is considered spam or not.\nThis information is useful for moderators to make a final decision.\n\n```dart\n  ///*** detect spam\n  SharpApi.detectSpam(\n    text: 'ANY_TEXT',\n  ).then((value) {\n    /// do something with the [value] here\n  }).catchError((error) {\n    /// do something with the [error] here\n  });\n```\n\n#### Detect Phones Numbers\n\nParses the provided text for any phone numbers and returns the original detected\nversion and its E.164 format. Might come in handy in the case of processing\nand validating big chunks of data against phone numbers or f.e. if you want\nto detect phone numbers in places where they're not supposed to be.\n\n```dart\n  ///*** detect phones\n  SharpApi.detectPhones(\n    text: 'ANY_TEXT',\n  ).then((value) {\n    /// do something with the [value] here\n  }).catchError((error) {\n    /// do something with the [error] here\n  });\n```\n\n#### Detect Emails\n\nParses the provided text for any possible emails. Might come in handy in case\nof processing and validating big chunks of data against email addresses\nor f.e. if you want to detect emails in places where they're not supposed to be.\n\n```dart\n  ///*** detect emails\n  SharpApi.detectEmails(\n    text: 'ANY_TEXT',\n  ).then((value) {\n    /// do something with the [value] here\n  }).catchError((error) {\n    /// do something with the [error] here\n  });\n```\n\n#### Generate Keywords/Tags\n\nGenerates a list of unique keywords/tags based on the provided content.\n\n```dart\n  ///*** generate keywords\n  SharpApi.generateKeywords(\n    text: 'ANY_TEXT',\n    language: SharpApiLanguages.ENGLISH,  // optional language\n    voiceTone: 'neutral',                 // optional voice tone\n  ).then((value) {\n    /// do something with the [value] here\n  }).catchError((error) {\n    /// do something with the [error] here\n  });\n```\n\n\n#### Summarize Text\n\nGenerates a summarized version of the provided content. Perfect for generating\nmarketing introductions of longer texts.\n\n```dart\n  ///*** summarize text\n  SharpApi.summarizeText(\n    text: 'ANY_TEXT',\n    language: SharpApiLanguages.ENGLISH,  // optional language\n    voiceTone: 'neutral',                 // optional voice tone\n    maxLength: 500,                       // optional max length\n  ).then((value) {\n    /// do something with the [value] here\n  }).catchError((error) {\n    /// do something with the [error] here\n  });\n```\n\n### SEO\n\n#### Generate SEO Tags\n\nGenerates all most important META tags based on the content provided. Make sure to include\nlink to the website and pictures URL to get as many tags populated as possible.\n\n```dart\n  ///*** generate seo tags\n  SharpApi.generateSeoTags(\n    content: 'ANY_CONTENT',\n    language: SharpApiLanguages.ENGLISH,  // optional language\n    voiceTone: 'neutral',                 // optional voice tone\n  ).then((value) {\n    /// do something with the [value] here\n  }).catchError((error) {\n    /// do something with the [error] here\n  });\n```\n\n### Travel, Tourism \u0026 Hospitality\n\n#### Travel Review Sentiment\n\nParses the Travel/Hospitality product review and provides its sentiment\n(POSITIVE/NEGATIVE/NEUTRAL) with a score between 0-100%.\nGreat for sentiment report processing for any online store.\n\n```dart\n  ///*** travel review sentiment\n  SharpApi.travelReviewSentiment(\n    content: 'ANY_CONTENT',\n    language: SharpApiLanguages.ENGLISH,  // optional language\n  ).then((value) {\n    /// do something with the [value] here\n  }).catchError((error) {\n    /// do something with the [error] here\n  });\n```\n\n#### Tours \u0026 Activities Product Categories\n\nGenerates a list of suitable categories for the Tours \u0026 Activities product\nwith relevance weights as float value (1.0-10.0) where 10 equals 100%,\nthe highest relevance score. Provide the product name and its parameters\nto get the best category matches possible. Comes in handy with populating\nproduct catalogue data and bulk product processing.\nOnly first parameter `productName` is required.\n\n```dart\n  ///*** tours and activities product categories\n  SharpApi.toursAndActivitiesProductCategories(\n    productName: 'ANY_PRODUCT_NAME',\n    language: SharpApiLanguages.ENGLISH,  // optional language\n    voiceTone: 'neutral',                 // optional voice tone\n    context: 'avoid using abbreviations', // optional context\n    maxQuantity: 5,                       // optional max quantity\n    country: 'United States',             // optional country\n    city: 'New York',                     // optional city\n  ).then((value) {\n    /// do something with the [value] here\n  }).catchError((error) {\n    /// do something with the [error] here\n  });\n```\n\n#### Hospitality Product Categories\n\nGenerates a list of suitable categories for the Hospitality type product\nwith relevance weights as float value (1.0-10.0) where 10 equals 100%,\nthe highest relevance score. Provide the product name and its parameters\nto get the best category matches possible. Comes in handy with populating\nproducts catalogs data and bulk products' processing.\nOnly first parameter `productName` is required.\n\n```dart\n  ///*** hospitality product categories\n  SharpApi.hospitalityProductCategories(\n    productName: 'ANY_PRODUCT_NAME',\n    language: SharpApiLanguages.ENGLISH,  // optional language\n    voiceTone: 'neutral',                 // optional voice tone\n    context: 'avoid using abbreviations', // optional context\n    maxQuantity: 5,                       // optional max quantity\n    country: 'United States',             // optional country\n    city: 'New York',                     // optional city\n  ).then((value) {\n    /// do something with the [value] here\n  }).catchError((error) {\n    /// do something with the [error] here\n  });\n```\n\n### 🤖 Technical API Endpoints\n\n#### Subscription information / quota check\nEndpoint to check details regarding the subscription's current period\n\n```dart\n  ///*** quota\n  SharpApi.quota().then((value) {\n    /// do something with the [value] here\n  }).catchError((error) {\n    /// do something with the [error] here\n  });\n```\n\nwill result in:\n```json\n{\n    \"timestamp\": \"2024-03-19T12:49:41.445736Z\",\n    \"on_trial\": false,\n    \"trial_ends\": \"2024-03-17T07:57:46.000000Z\",\n    \"subscribed\": true,\n    \"current_subscription_start\": \"2024-03-18T12:37:39.000000Z\",\n    \"current_subscription_end\": \"2024-04-18T12:37:39.000000Z\",\n    \"subscription_words_quota\": 100000,\n    \"subscription_words_used\": 9608,\n    \"subscription_words_used_percentage\": 0.1\n}\n```\n\n`subscription_words_used_percentage` is a percentage of current monthly quota usage\nand might serve as an alert to the user of the depleted credits.\nWith a value above 80%, it's advised to subscribe to more credits\nat https://sharpapi.com/dashboard/credits to avoid service disruption.\n\nThese values are also available in the Dashboard at https://sharpapi.com/dashboard\n\n#### Ping\nSimple PING endpoint to check the availability of the API and it's internal timze zone (timestamp).\n\n```dart\n  ///*** ping\n  SharpApi.ping().then((value) {\n    /// do something with the [value] here\n  }).catchError((error) {\n    /// do something with the [error] here\n  });\n```\n\nwill result in:\n```json\n{\n  \"ping\": \"pong\",\n  \"timestamp\": \"2024-03-12T08:50:11.188308Z\"\n}\n```\n\n---\n\n### Do you think our API is missing some obvious functionality?\n\n[Please let us know»](https://github.com/sharpapi/sharpapi-php-client/issues)\n\n## Changelog\n\nPlease see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently.\n\n## Credits\n\n- [Abdullah Mansour](https://github.com/abdullahmansss)\n\n## License\n\nThe MIT License (MIT). Please see [License File](LICENSE.md) for more information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsharpapi%2Fsharpapi-flutter-client","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsharpapi%2Fsharpapi-flutter-client","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsharpapi%2Fsharpapi-flutter-client/lists"}