FAQ

General

  • What is Infermedica API?

    Infermedica provides an API (Application Programming Interface) for preliminary symptom analysis and patient triage that can be implemented in intelligent symptom checkers, medical bots, and adaptive patient intake forms as well as health applications.

    After receiving a patient’s health data (such as: symptoms, risk factors and/or demographics), our inference engine will analyze it and provide you with a list of most probable conditions, triage level, specialist recommendation, and more - all thanks to the sophisticated statistical algorithms we use to perform AI-driven analysis.

    If you would like to know more about Infermedica or our products, please contact us.

  • What can I do with the API?

    Please take a look at some of our case studies.

  • How can I start using the API?

Free trial

  • Why do I need to request an account?

    Every account is verified and approved by our team. We want to make sure all the information you provide is real and accurate. This approach allows us:

    • to build an active and engaged community of developers and professionals, who share our passion for creating great healthcare apps
    • to prevent subscriptions from users who have previously violated our Terms of Service

    If you are a college student/researcher applying to access Infermedica API, please read the question: I am a student. Is there any special plan I can use?

  • What are the requirements to get a free trial?

    Granting you access to the free trial depends almost entirely on the information you enter in the request form. To get through the approval process smoothly, please make sure you provide:

    • full name of the organization you represent
    • your business email
    • real name and surname
    • your role in the organization
    • a brief description of the project in which you would like to use/try Infermedica API

    If we have trouble verifying your information, we'll reach out to you.

  • Why was my trial request rejected?

    There might be a few different reasons why your account hasn’t been approved:

    • You provided unspecific or too generic information in the request form. For example:
      • Personal email address instead of corporate email address
      • Invalid or spam/temporary email
      • No specific organization (e.g. “Self”, “No”)
      • No name and/or surname
      • No answer or too generic an answer to the question “How do you intend to use Infermedica API” (e.g. “Test”, “self” “I don’t know”)
    • You already have an account linked to you or your organization.
    • You used to have an Infermedica API account, which has been blocked or deleted due to a violation of the Infermedica API Terms of Service.

    You can always resubmit your form with the proper information. Please refer to: What are the requirements to get a free trial?

Licensing and pricing

  • How much does it cost?

    The first 2,000 requests are free. If you need more requests, please contact us. We’ll help you choose the most suitable plan for your needs.

  • How can I continue using the API if I have exceeded the limit of free calls?

    You can upgrade to a paid plan, which allows you to use the product in its entirety, share it with the wider public, and commercialize it.

    To get a pricing quote, contact us. We’ll respond as soon as possible and help you pick the most suitable plan.

  • Why was my account blocked/deleted?

    If your account has been blocked/deleted, it’s probably due to a violation of the Infermedica API Terms of Service. The most common violations involve one of the following:

    • Using more than one API account.
    • Providing illegitimate account information (e.g. a temporary/fake email address).
    • “Scraping” the database.

    If your account is blocked or deleted, we will send you an email explaining why.

    If you believe your account has been blocked/deleted by mistake, please contact us.

  • I am a student. Is there any special plan I can use?

    We are always happy to support ambitious educational projects. If you are a college student and you need more API calls, just contact us.

    Remember, your developer portal profile should allow us to identify you as a legitimate college student. Please, make sure to:

    • Put your university name in the field “Organization”.
    • Register with your official university email domain.
    • Provide a short description of the project in the field “How do you plan to use our API?”.

    Please be aware that we only support projects that comply with the above conditions.

Bots and text analysis

  • Can I build a chatbot using Infermedica API?

    Yes. You can build a symptom checker chatbot using Infermedica API. While you need to handle the conversation flow on your own, you can rely on our language technology to read symptoms mentioned in user messages. Also, our /diagnosis endpoint will provide you with questions that the user may be asked directly (such as “Is your headache severe?”).

    We have a special endpoint for reading symptoms mentioned in user messages (read more about the /parse endpoint). This service is currently available only in English.

  • Can I build a chatbot in a language other than English using Infermedica API?

    Yes. You can build a symptom checking chatbot using Infermedica API. While you need to handle the conversation flow on your own, you can rely on our language technology to read symptoms mentioned in user messages. Also, our /diagnosis endpoint will provide you with questions that the user may be asked directly (such as “Is your headache severe?”).

    We have a special endpoint for reading symptoms mentioned in user messages (read more about the /diagnosis endpoint). This service is currently available only for English.

  • Can Infermedica API analyze the symptoms mentioned in a text?

    Yes, we have a special endpoint for reading observations mentioned in user messages. Read more about NLP.

  • Can I build a voice application (e.g Alexa skill) using Infermedica API?

    Yes! Our Natural Language Processing technology makes it possible to understand observations in a user’s messages. We don’t provide voice recognition or text-to-speech, but you can use a commercially available platform, such as Alexa Voice Service, Baidu Deep Voice, Google Speech, or Yandex Speechkit.

    We would be happy to spread the word about your Infermedica-based voice application. If you wish, feel free to share!

  • What is the difference between the /search and /parse endpoints?

    The search endpoint assumes that you are looking for one particular observation — a symptom or risk factor — and returns a list of candidate matches. The whole input text is treated as a query for one observation. The behavior is customized for searching (possibly partial) user input. It is best for implementing search boxes in the UI.

    The /parse endpoint gives you access to our NLP technology. You can use it to read what a user said in their own words, describing one or more observations. It is best suited for reading user messages that were sent to a chatbot or an unstructured description of the patient’s observations in the health records. This endpoint returns a list of captured mentions of observations, each of them assigned with an id code and understood status (present or absent).

Medical content

  • Where can I find a list of symptoms and conditions and their ID codes?

    The most reliable way is to obtain them through the API itself (using either the /symptoms or /conditions endpoint), as this will always fetch the current version.

    The easiest way to obtain the list is to use the API Reference section in our developer portal (after you’ve successfully logged in) or to use Postman.

    We also publish a list of symptoms and conditions so you can browse them easily.

  • Which languages can I use Infermedica API in?

    English is the primary language of our medical database. In custom plans, however, we support multiple languages, including:

    • Arabic
    • Chinese (Simplified)
    • Czech
    • Danish
    • Dutch
    • English, used by default
    • Estonian
    • French
    • German
    • Greek
    • Italian
    • Latin American Spanish
    • Polish
    • Portuguese
    • Portuguese (Brazilian)
    • Romanian
    • Russian
    • Slovak
    • Spanish
    • Turkish
    • Ukrainian

    Please refer to our documentation to learn more about using our model in your language of choice.

  • How is the knowledge base built, maintained, and validated?

    The content development process is divided into stages. These include defining the scope of the desired changes, eliciting expert knowledge based on the literature and other available sources, specifying test criteria, performing manual and automated acceptance tests, and finally deploying the verified model to the API. The process can be efficiently repeated with automated regression tests to guarantee the stability of the system.

    You can read more about the knowledge base in the Medical content section of the API documentation.

    If you would like to learn more, please contact us.

  • What is the source of Infermedica's knowledge base?

    The knowledge base is nurtured by our team of doctors, who rely on respected literature, medical textbooks and publications. This process is also supported by the analysis of huge data sets to extract statistical relations and numerical approximations of diseases. You can read about the knowledge base in the Medical concepts section of the API documentation.

    If you would like to learn more, you can contact us directly.

  • What is the age range of the patients Infermedica API accounts for?

    The medical content used in Infermedica's API accounts for infants, children, adolescents, and adults. This allows parents to run the initial symptom assessment and triage on children that are just a couple of weeks old and up.

Pediatrics content

  • Why does the pediatrics solution ask about the exact date of birth for children?

    The exact age plays an important role in the symptom assessment of infants and small children. We decided to ask for the exact date of birth to ensure a better user experience.

  • How can I add pediatrics content to my existing Infermedica solution?

    You can start by contacting the Infermedica team to discuss pricing. Pediatrics content is fully compatible with Infermedica's platform and constructed in a way that enables it to be deployed in existing implementations with ease.

  • How can I add pediatrics content to my Infermedica API-based solutions?
  • How much does the pediatrics content cost?

    The costs of implementing pediatrics content vary depending on a variety of factors including whether it's a new or existing customer.

    If you are already using Infermedica API, you can discuss pricing with our support team. If you are potentially considering using Infermedica API, our sales team can provide you with pricing options.

Technical

  • Which programming languages does Infermedica support?

    Infermedica API is a language-independent, standard web service that can be easily integrated with any existing HTTP client using virtually all of the popular programming languages and frameworks.

  • What type of questions can be returned by the API?

    The /diagnosis endpoint returns a structure containing a few lines of useful information. One of the items returned is the most relevant question given the current knowledge about the person being examined. This is the question we suggest asking the user next unless you decide that enough questions have already been asked. This question has three possible types:

    • single – a yes/no question about a single symptom (e.g. “Do you have a headache?”); when the user answers this type of question, you should send back all the evidence collected thus far, including the status of the symptom that has just been learned (present, absent or unknown)
    • group_single – a single-choice question about a group of related symptoms (e.g. “What is your body temperature?”); with single-choice questions it is sufficient to send back the answer chosen by the user (the ID of the answer with the present status) together with the evidence collected in the earlier stages
    • group_multiple – a multiple-choice question about a group of related symptoms (e.g. “What is the character of your headache?”); any number of symptoms (including none) can be sent as present; if you are sure that the others should be interpreted as absent, please send them explicitly as such; you may also send some symptoms as unknown to prevent getting questions about them (this makes sense if the user didn’t answer conclusively).
  • Why am I getting 403 responses to my API call?

    If you are getting error 403 in response to your API call, it’s most likely because you have exceeded your monthly limit of API requests. Go to “How can I continue using the API if I have exceeded the monthly limit?”

    Learn more about Infermedica API errors by clicking the link. If that doesn’t help, please contact us.

  • How do I disable group questions?

    When using the /diagnosis endpoint, you can disable group questions to make sure the API returns only single questions by sending "disable_groups": true in "extras". Here is an example:

    {
      "age": 50,
      "sex": "male",
      "evidence": [
        {"id": "s_98", "choice_id": "present"}
      ],
      "extras": {"disable_groups": true},
    }
  • How do I send someone’s weight and height to Infermedica API?

    This is not available directly in the current API version, but you could compute BMI on your side and add one of the corresponding BMI-related risk factors to the evidence about the current case before sending it along when calling /diagnosis.

    There are two such risk factors:

    • p_6 – BMI below 19
    • p_7 – BMI over 30

    If the computed value of the person’s BMI exceeds 30, add "p_7": "present". If the value is lower than 19, add "p_6": "present". If the value falls within the healthy range (19 < BMI < 30), it’s best to add both of these risk factors as absent to prevent the API from asking about BMI.

  • How does the NLP endpoint (/parse) work?

    This endpoint gives access to our in-house Natural Language Processing technology. It allows you to capture symptoms and risk factors mentioned in unstructured text descriptions, such as user messages sent to a chatbot or a text description extracted from a medical record.

    Our language technology is also able to understand some typical ways of expressing negation (e.g. “I don’t have a headache” or “lymph nodes are not enlarged”).

    Each captured mention is assigned an ID code and a status (present or absent), which makes it compatible with our /diagnosis endpoint. This way you can send the captured evidence directly for assessment and learn current predictions, the triage level, and what question to ask next.

    This service works best with simple phrases or sentences (such as “I have a terrible headache and back pain” or “feeling sick”). It may be unable to understand complex stories (descriptions of accidents, complications, and general descriptions involving a series of events whose mutual relationship in time is relevant).

    Our technology is based on automated syntactic analysis and matching techniques tailored to the medical domain. We are constantly improving the quality of this service.

  • The NLP endpoint (/parse) doesn’t understand my input. What do I do?

    We’re doing all we can to make this service as accurate as possible, but no NLP technology is perfect, including ours. The service works best with simple phrases and sentences (such as “I have a sore throat” or “no vomiting but feeling sick”). It’s not good at understanding complex stories, in particular descriptions of accidents or complications after diseases.

    If you feel that it’s not working properly for a case that it should be able to handle, please contact us. While we can’t promise that it will understand every possible description correctly, we’re constantly improving the technology and such feedback is very important to us.

  • A call to /diagnosis returns a single condition. Why?

    This is due to security measures. For all API calls containing less than three reported observations, the list of conditions will be limited to a single condition. For all calls with more than two observations (either present or absent), the API will return the full ranking of relevant conditions.

    In all real life situations, you will want to collect more than two pieces of evidence (e.g. two symptoms, two answers). Given that, we believe this API behavior is not a limitation for any proper application.

Other

If you didn’t find the answer you were looking for, please contact us.