• 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.

  • Please take a look at some of our case studies.

Licensing and pricing

  • Infermedica API is available for several plans. For detailed pricing, please get in touch with our team. It’s also possible to apply for a trial access account, which includes up to 2,000 API calls.

  • If you exceeded the granted trial API calls and would like to continue making calls, you’ll need to upgrade your plan. To do so, please get in touch with our team.

    Upgraded plans may allow you to use Infermedica API in its entirety, share it with the wider public, or commercialize it, depending on the chosen plan.

  • 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.

Trial access

  • 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
  • Granting you access to the trial depends almost entirely on the information you enter in the contact 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.

  • 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 trial access?

Bots and text analysis

  • 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) and an exemplary implementation of chatbot (opens in a new tab) . This service is currently available only in English.

  • 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.

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

  • 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!

  • 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

  • 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.

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

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

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

  • 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.

  • 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.

  • 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

  • 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.

  • 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.

  • 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.


  • 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.

  • 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).
  • 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.

  • 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},
  • 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.

  • 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.

    See an exemplary implementation of chatbot leveraging our NLP engine → (opens in a new tab)

  • 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.

  • 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.


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