• What is Infermedica API?

    Infermedica provides an API (Application Programming Interface) for patient triage and preliminary medical diagnosis that can help you implement an intelligent symptom checker or an adaptive patient intake form for your health application.

    If you send us basic patient health data (such as symptoms, risk factors or demographics), our AI inference engine will analyze the data and provide you with a list of the most likely conditions and relevant questions to ask next. This is possible thanks to the sophisticated statistical algorithms we use to perform diagnostic reasoning.

    If you would like to learn more about Infermedica, please contact us or schedule a live demo.

  • 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 the passion of 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 refer to the question: I am a student. Is there any special plan I can use?

  • What are the requirements to get a free trial?

    The positive decision to grant 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’re providing:

    • 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’ve provided unspecific or too general 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 surname
      • No answer or too general 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 & Conditions.

    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 complete the product, share it with the wider public, and commercialize it.

    To get a pricing quote, contact us as sales@infermedica.com. We’ll respond within one business day 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 & Conditions. 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 support.

  • 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 your project in the field “How do you plan to use our API?”.

    Please be aware we support only projects complying 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 diagnostic 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 NLP endpoint). This service is currently available only for English.

    If you are interested in this subject, we also recommend that you check our blog post about challenges when building a chatbot – Three challenges you’re going to face when building a chatbot.

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

    Although the Infermedica API can be used in many different languages, our NLP endpoint currently only supports English.

    Translating the API to a new language is easy and relatively fast. This would provide you with the basic information translated into your language (names of clinical concepts, questions about symptoms, categories of diseases, etc.) and allow you to use the diagnostic endpoint and search for concepts in your language.

    To build a chatbot, you also need an engine for recognition of concept mentions in user messages. Currently, we only have support for English, but our long-term plans include supporting other languages, too. If you are interested in eventually building a chatbot in your language, we’ll be happy to discuss this with you – please contact us.

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

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

  • 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 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 voice application supported by Infermedica. If you wish, feel free to share!

  • What is the difference between /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 a user’s own words, describing one or more observations. It is best suited for reading user messages sent to a chatbot or an unstructured description of the patient’s observations in 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 with ID codes?

    The most reliable way is to obtain them through the API itself (using 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
    • Dutch
    • Estonian
    • French
    • German
    • Italian
    • Polish
    • Portuguese
    • Portuguese (Brazilian)
    • Russian
    • Slovak
    • Spanish
    • Turkish
    • Ukrainian

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

    Our platform also supports custom translations, so interested partners can provide their own translations using our dedicated translation panel. For more information contact us.

  • 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 even more, please contact us or schedule a live demo and talk to us about it directly.

  • 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 even more, you can contact us or schedule a live demo.

  • What is the patient age included in the Infermedica API?

    Medical content used in Infermedica API is prepared for infants, children, adolescent and adults. It allows to run the initial diagnosis and triage from the first weeks of living.

Pediatrics content

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

    The exact age plays an important role in the diagnosis of infants and small children. We decided to ask for the exact date of all children in one question due to the better user experience reasons.

  • How can I add pediatrics content to my existing Symptom Checker?

    Start with contacting the Infermedica team to discuss pricing. Pediatrics content is fully compatible with Symptom Checker. We constructed it in a way that enables its simple deployment in the existing implementations.

  • How can I add pediatric content to my solutions based on the Infermedica API?

    There are two ways.

    If you are already using Infermedica API reach out to our support team. If you are considering using Infermedica API reach out to our sales team.

  • How much does the pediatrics content cost?

    Cost of implementing pediatrics content varies between our current and new customers.

    If you are already using Infermedica API talk about pricing with our support team. If you are considering using Infermedica API talk about pricing with our sales team.


  • 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 popular programming languages and frameworks.

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

    The /diagnosis endpoint returns a structure containing a few pieces 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 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?”); in the case of single-choice questions, it is sufficient to send only the answer chosen by the user (the ID of the answer with the present status), obviously together with the evidence collected in 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?”

    You can learn more about Infermedica API errors. If that doesn’t help, please contact support.

  • 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 and send 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?

    The 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 diagnostic 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 (not unlike differential diagnosis).

    The 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 in general descriptions of 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 the 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 report this to us via support@infermedica.com. While we can’t promise to 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 want to collect more than two pieces of evidence (e.g. two symptoms, two answers), so we believe that 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.