NAV Navbar
shell
  • Introduction
  • Authentication
  • Item API
  • Inventory API
  • Person API
  • Errors
  • Introduction

    Welcome to Sentino API!

    Sentino API is a data-driven, AI-powered service built to provide insights into one's personality. There are two main levels it operates on: item and person. An item is simply a statement about one's self that starts with a personal pronoun "I" (e.g. "I am an introvert" or "I am a man").

    Item API will help you getting insights into the item itself, providing you with a multifaceted analysis. Main questions are the following: are two items related and how? what are the closest items (commonly used in psychology) to any given one? what psychological traits are hidden behind an item? These are typical questions addressed by Item API. Self-statement analysis is a visual tool to explore Item API functionality.

    Inventory API combines items together. You can explore what items are needed to score people traits. Each inventory contains certain indices (traits/facets) that you will be able to effectively measure creating a questionnaire. There are a plenty of well-established, scientific inventories to choose from (see inventories).

    Person API moves the analysis to the next level: from items to person, thus providing insights on a person level. Person is defined as a collection of facts (items with responses). Given a set of facts about a person, it answers the following questions: what are the person's main traits (or any traits from a big pool of personality inventories)? It also answers psychological questions given in natural language.

    All end-points of Sentino API are explained in details. Examples are provided - you can view code examples in the dark area to the right.

    Sentino API uses Natural Language Processing (NLP) algorithms to understand the written input of human language. To understand an item is to know its relation to other well studied ones. This ensures that the resulting analysis is always based on data of real people.

    Sentino API provides a great flexibility to fit many domains where insights on personality is important. Based on the Sentino API, an AI-powered chatting bot was built that leverages all API’s functions. One can see Sentino API in action by chatting with the bot on the website sentino.org/bot or via Facebook Messenger facebook.com/sentinobot.

    Authentication

    To authorize, use this code:

    # With shell, you can just pass the correct header with each request
    curl "api_endpoint_here"
      -H "Authorization: Token sentino_api_token"
    

    Make sure to replace sentino_api_token with your API key.

    Sentino API uses tokens to allow access to the API. Sentino is still in developmental stage, so you can request the token by contacting us by e-mail: info@sentino.org

    Sentino API expects for the token to be included in all API requests to the server in a header that looks like the following:

    Authorization: Token sentino_api_token

    Item API

    Item API makes available a multifaceted analysis of written items (self-statements that start with “I”).

    Functions Summary Items API can provide you with the following functions’ opportunities:

    Function Description
    classify Classifying the given item according to predefined classes (age, gender, psy etc.)
    closest_items Semantically closest items* to the given one
    similarity Similarity between two given items, ranging from -1 to +1
    projection Projection of a given item on the specified personality inventory**
    inventories Get the list of all personality inventories
    inventory/<inventory> Scoring**** for a given inventory
    inventory/<inventory>/<index> Scoring for a given index withing inventory
    items Lists all items that are well studied
    items/<inventory> Lists all items for a given inventory
    items/<inventory>/<index> Lists all items for a given index and inventory

    *an item - a self-statement (should start with I...)

    **an inventory - a type of a psychological questionnaire in which a person answers (agrees or disagrees) with self-statements

    ***an index - a particular trait that is being evaluated with the help of a questionnaire

    ****scoring - set of items with signs (+1/-1) describing a item relation with the correspoinding index

    Items proximity

    Item API provides means to analyze a given self-statement (an item that starts with “I...”) by finding psychologically closest statements; or compare two items, finding their correlation.

    curl -X POST "https://sentino.org/api/v2/item/closest_items" 
    -H "Authorization: Token sentino_api_token"
    -H "Content-Type: application/json" 
    -d '{"text": "I am smart", "n": 2}'
    

    The above command returns JSON structured like this:

     {
        "closest_items": [
            [
                "I use my brain.",
                0.456
            ],
            [
                "I am able to find out things by myself.",
                0.427
            ]
        ],
        "prioritize": true,
        "include_adjectives": false,
        "text": "I am smart",
        "include_items": true,
        "n": 2
    }
    

    The Service finds psychologically closest statements or compares two or more self-statements, following specific commands with specific attributes. You can find detailed explanations in the subcategories of each function below.

    Closest items

    This endpoint retrieves semantically closest items to the given one. Similarity between the items ranges from [-1, +1]; the quantity of closest items is a specifiable parameter.

    HTTP Request POST https://sentino.org/api/v2/item/closest_items

    Query Parameters

    Parameter Default Description
    include_items true If set to true, the result will include items
    prioritize true If set to true, the result will prioritize items
    include_adjectives false If set to true, the result will include adjectives
    text The result will be based on the item written
    n The number of closest items will be limited to n
    curl -X POST "https://sentino.org/api/v2/item/similarity" 
    -H "Authorization: Token sentino_api_token"
    -H "Content-Type: application/json" 
    -d '{"text": "I am smart", "text_to": "I am intelligent"}'
    

    The above command returns JSON structured like this:

    {
        "text": "I am smart",
        "text_to": "I am intelligent",
        "similarity": 0.951
    }
    

    Similarity item vs item

    This endpoint shows the similarity between two items. The similarity figure range is [-1, +1].

    HTTP Request POST https://sentino.org/api/v2/item/similarity

    Query Parameters

    Parameter Description
    text The result will be based on the item written
    text_to The already given item will be compared with the second written one

    Item classification

    curl -X POST "https://sentino.org/api/v2/item/classify" 
    -H "Authorization: Token sentino_api_token"
    -H "Content-Type: application/json" 
    -d '{"text": "I am brave"}'
    

    The above command returns JSON structured like this:

    {
        "text": "I am brave",
        "basics": {
            "is_psy": 0.927,
            "is_mood": 0.0,
            "is_item": 0.928,
            "valence": 0.581,
            "proba": [0.14, 0.31, 0.55]
        },
        "topics": ["psy"],
        "proba": {
            "psy": 0.927,
            "food_preference": 0.003,
            "parental_status": 0.019,
            "age": 0.068,
            "gender": 0.129,
            "health_status": 0.014,
            "name": 0.069,
            "skill": 0.199,
            "appearance": 0.217,
            "location_origin": 0.015,
            "family_status": 0.0,
            "ethnicity": 0.017,
            "education_status": 0.011,
            "religion": 0.007,
            "language": 0.0,
            "location_residence": 0.0,
            "orientation": 0.0,
            "marital_status": 0.002,
            "sibling_status": 0.0
            ...
        }
     }
    
    

    The Service allows to analyze a given self-statement (an item that starts with “I...”) by classifying it according to specific classifications.

    HTTP Request POST https://sentino.org/api/v2/item/classify

    Query Parameters

    Parameter Description
    text The result will be based on the item written

    This endpoint classifies the given item according to the following categories below. The result is a probability of belonging to a certain category with a range of [0, +1]).

    Basic categories Description and typical item
    is_psy An item with a psychological meaning [0, 1] -- I am an extrovert
    is_item Any meaningful item about a person [0, 1] -- I am ambitious/I think so
    is_mood If item is related to mood expression [0, 1] -- I feel happy now/I feel depressed now
    valence Valence of the item [-1, +1] -- I behave well/I behave badly
    mean Bias the item -- I behave well/I behave badly
    proba Probability of people answering [no, neither, yes]
    Categories Typical item
    age I am 45
    age_group I am old
    appearance I am good-looking
    childhood_area I grew up in a village
    color My favorite color is blue
    education I have a master degree
    ethnicity I am asian
    family_member My grandfather is still alive
    fear I am afraid of dogs
    food I like pizza
    gender I am a female
    habit I usually go to sleep very late
    hand I am left-handed
    hobby I collect coins
    job I am employed
    language I speakEnglish
    mood I feel happy
    name My name is John
    nationality I am American
    occupation I am a doctor
    origin_location I am from Germany
    parenthood I am a father
    psy I am a brave person
    relationship I am married
    religion I am a committed atheist
    residence I live in Great Britain
    sexual_orientation I am a straight woman
    siblings I have a brother
    skill I am good at cooking

    Item projection

    curl -X POST "https://sentino.org/api/v2/item/projection" 
    -H "Authorization: Token sentino_api_token"
    -H "Content-Type: application/json" 
    -d '{"text": "I am brave", "inventory": "neo"}'
    

    The above command returns JSON structured like this:

     {
        "text": "I am brave",
        "inventory": "neo",
        "basics": {
            "is_psy": 0.927,
            "is_mood": 0.0,
            "is_item": 0.928,
            "is_demo": 0.001,
            "valence": 0.581
        },
        "projection": {
            "friendliness": 0.151,
            "self-discipline": 0.132,
            "cautiousness": -0.111,
            "depression": -0.17,
            "anxiety": -0.217,
            "sympathy": -0.101,
            "anger": -0.041,
            "cooperation": -0.134,
            "trust": 0.047,
            "vulnerability": -0.228,
            "achievement": 0.163,
            "emotionality": 0.021,
            ...
        }
     }
    
    

    The Service allows to analyze a given self-statement (an item that starts with “I...”) by projecting it on a specified personality inventory (projection correspondence range is [-1, +1]). You should choose a particular inventory from the list of personality inventories.

    This endpoint shows the projection of the given item on a specified personality inventory.

    HTTP Request POST https://sentino.org/api/v2/item/projection

    Query Parameters

    Parameter Description
    text The result will be based on the item written
    inventory The item will be projected on the given inventory

    Inventory API

    This section is dedicated to psychological inventories, their indices and questionnaires built to score them.

    The flow is the following:

    1. find an inventory you are interested
    2. create a questionnaire
    3. collect the data about person
    4. build person profile

    Inventories

    curl "https://sentino.org/api/v2/inventories"
      -H "Authorization: Token sentino_api_token"
    

    The above command returns JSON structured like this:

      {
        "inventories": [
            "6fpq",
            "8ics",
            "ab5c",
            "adjectives",
            "bfas",
            "big5",
            "big7",
            "bisbas",
            "cpi",
            "emoint",
            "epq",
            "hexaco",
            "jpi",
            "mpq",
            "neo",
            "orvis",
            "ps",
            "qb6",
            "tci",
            "via"
        ]
      }
    

    The API allows to see all the personality inventories used for analyzing self-statements, in addition to all the facets of the inventories (indices) and the items that correspond to a particular inventory and/or index. You can find detailed explanations in the subcategories of each function below.

    Inventories

    This endpoint shows all personality inventories.

    HTTP Request GET https://sentino.org/api/v2/inventories

    List of inventories

    Inventory Description
    big5 Big-Five personality traits [1]
    bfas Big-Five Aspects [2]
    neo Revised NEO Personality Inventory [3]
    ab5c Abridged Big Five Dimensional Circumplex facets [4]
    hexaco HEXACO Personality Inventory [5]
    6fpq Six Factor Personality Questionnaire [6]
    8ics 8 IPIP Interpersonal Circumplex Scales [7]
    big7 7 Preliminary IPIP Scales [8]
    cpi California Psychological Inventory [9]
    emoint Potential "Emotional Intelligence" Components [10]
    epq Eysenck Personality Questionnaire [11]
    jpi Jackson Personality Inventory [12]
    mpq Multidimensional Personality Questionnaire [13]
    tci Temperament and Character Inventory [14]
    via Values in Action Character Survey [15]
    orvis Oregon Vocational Interest Scales [16]
    adjectives Trait adjectives [17]
    bisbas Behavioral Inhibition/Activation Systems [18]
    ps Plasticity and stability [19]
    qb6 Six Factor Personality Questionnaire [20]

    [1] Goldberg (1992). Big-Five Factor Markers

    [2] DeYoung, Quilty, and Peterson (2007). 10 Big-Five Aspects

    [3] Costa and McCrae (1992). NEO-PI-R

    [4] Hofstee, de Raad and Goldberg (1992). 45 AB5C facets

    [5] Lee and Ashton (2004). HEXACO-PI

    [6] Jackson, Paunonen, and Tremblay (2000). Six Factor Personality Questionnaire

    [7] Markey and Markey (2009). 8 IPIP Interpersonal Circumplex Scales

    [8] Saucier (1997). 7-factor scales

    [9] Gough (1996). California Psychological Inventory

    [10] Barchard (2001). Potential "Emotional Intelligence" Components

    [11] Hans Eysenck & Sybil Eysenck (1975). Eysenck Personality Questionnaire

    [12] Jackson (1994). Jackson Personality Inventory

    [13] Tellegen (1995/2003). Multidimensional Personality Questionnaire

    [14] Cloninger, et al. (1994). Temperament and Character Inventory

    [15] Peterson & Seligman (2004). Values in Action Character Survey

    [16] Pozzebon, et al. (2010). Oregon Vocational Interest Scales

    [17] Goldberg, L. R. (1990). An alternative “Description of personality”: The Big-Five factor structure

    [18] Carver & White (1994). Behavioral Inhibition/Activation Systems

    [19] DeYoung, C. G., Peterson, J. B., & Higgins, D. M. (2002). Higher-order factors of the Big Five predict conformity: Are there neuroses of health?

    [20] Jackson, Paunonen, and Tremblay (2000). Six Factor Personality Questionnaire

    curl "https://sentino.org/api/v2/inventory/big5"
      -H "Authorization: Token sentino_api_token"
    

    The above command returns JSON structured like this:

      {
        "inventory": "big5",
        "scoring": {
            "conscientiousness": [
                [
                    "I am easily distracted.",
                    -1
                ],
                [
                    "I do not put my mind on the task at hand.",
                    -1
                ],
                
                }
      }
    





    Inventory scoring

    This endpoint lists scoring for indices for a given personality inventory.

    HTTP Request GET https://sentino.org/api/v2/inventory/<inventory>

    Instead of <inventory> you should choose a particular inventory from the list of personality inventories.





    Index scoring

    curl "https://sentino.org/api/v2/inventory/bfas/intellect"
      -H "Authorization: Token sentino_api_token"
    

    The above command returns JSON structured like this:

    {
        "inventory": "bfas",
        "index": "intellect",
        "scoring": [
            [
                "I avoid difficult reading material.",
                -1
            ],
            [
                "I avoid philosophical discussions.",
                -1
            ],
         [  ]
         ]
    }
    
    

    This endpoint lists items for a selected idex of a given inventory with a positive (+1) or negative (-1) sign of item correlation to the given index.

    HTTP Request GET https://sentino.org/api/v2/inventories/<inventory>/<index>

    Instead of <inventory> you should choose a particular inventory from the list of personality inventories.

    Instead of <index> you should choose a particular index of the inventory. You can see them at https://sentino.org/api/v2/inventories/<inventory> (mention the previously chosen inventory).








    Questionnairies

    This endpoint lists all questionnaires available out-of-the-box. Remember, you can create your own for any inventory (see below).

    curl "https://sentino.org/api/v2/questionnaires"
      -H "Authorization: Token sentino_api_token"
    

    The above command returns JSON structured like this:

      {
        "questionnaires": [
            "neo.sentino.90",
            ...
        ]
      }
    

    HTTP Request GET https://sentino.org/api/v2/questionnaires













    Questionnaire

    HTTP Request GET https://sentino.org/api/v2/questionnaire/<questionnaire>

    Select a particular questionnaire to view its items and scorings.

    Instead of <questionnaire> you should choose a questionnaire from the list of questionnairies.

    curl "https://sentino.org/api/v2/questionnaire/neo.sentino.90"
      -H "Authorization: Token sentino_api_token"
    

    The above command returns JSON structured like this:

    {
        "questionnaire": "neo.sentino.90",
        "items": [
            "I am open about my feelings.",
            "I crave the experience of great art.",
            ...
            ],
        "scoring": {
            "cautiousness": [
                [
                    "I do not know why I do some of the things I do.",
                    -1
                ],
                [
                    "I jump into things without thinking.",
                    -1
                ],
                ...
                ]
            ...
            }
    
    }
    
    


















    Create a Questionnaire

    HTTP Request POST https://sentino.org/api/v2/inventory/<inventory>/questionnaire/create

    Create a questionnaire to score a given inventory. Privide n - number of items you need and method for selecting items.

    Instead of <inventory> you should choose a particular inventory from the list of inventories.

    Method Description
    simple goes index by index and selects most informative item
    sentino selects items such that their have maximum loading on the indices
    curl -X POST "https://sentino.org/api/v2/inventory/neo/questionnaire/create" 
    -H "Authorization: Token sentino_api_token"
    -H "Content-Type: application/json" 
    -d '{"n": 90, "method": "sentino"}'
    

    The above command returns JSON structured like this:

    {
        "inventory": "neo",
        "method": "sentino",
        "n": 90,
        "items": [
            ...
            "I do crazy things.",
            "I do not like the idea of change.",
            ...
            ]
        "scoring": {
            "cautiousness": [
                ["I do crazy things.", -1],
                ...
            ]
            ...
        }       
    }
    

    Items retrieval

    curl "https://sentino.org/api/v2/items"
      -H "Authorization: Token sentino_api_token"
    

    The above command returns JSON structured like this:

      {
        "items": [
            "I abuse people's confidences.",
            "I accept apologies easily.",
            "I accept challenging tasks.",
            "I accept little from others.",
             
       ]
      }
    

    The Service allows to see the lists of all the main items used by the Service, all the items for a given inventory and for a particular index. You can find detailed explanations in the subcategories of each function below.

    Main items

    This endpoint retrieves all main items used by the Service.

    HTTP Request GET https://sentino.org/api/v2/items





    Inventory items

    curl "https://sentino.org/api/v2/items/neo"
      -H "Authorization: Token sentino_api_token"
    

    The above command returns JSON structured like this:

    {
        "inventory": "neo",
        "items": [
            "I a lot in my spare time.",
            "I act comfortably with others.",
            "I act wild and crazy.",
            "I act without thinking.",
            "I adapt easily to new situations.",
            "I am a creature of habit.",
            "I am able to control my cravings.",
            "I am able to stand up for myself.",
            "I am afraid of many things."
             ...
        ]
    }
    
    

    This endpoint retrieves all the items for a given inventory.

    HTTP Request GET https://sentino.org/api/v2/items/<inventory>

    Instead of <inventory> you should choose a particular inventory from the list of personality inventories.





    Index items

    curl "https://sentino.org/api/v2/items/neo/anger"
      -H "Authorization: Token sentino_api_token"
    

    The above command returns JSON structured like this:

    {
        "inventory": "neo",
        "index": "anger",
        "items": [
            "I am not easily annoyed.",
            "I am often in a bad mood.",
            "I get angry easily.",
            "I get irritated easily.",
            "I get upset easily.",
            "I keep my cool.",
            "I lose my temper.",
            "I rarely complain.",
            "I rarely get irritated.",
            "I seldom get mad."
        ]
    }
    

    This endpoint retrieves 10 items for a given index and inventory.

    HTTP Request GET https://sentino.org/api/v2/items/<inventory>/<index>

    Instead of you should choose a particular inventory from the list of personality inventories.

    Instead of you should choose a particular index of the inventory. You can see them at https://sentino.org/api/v2/inventories/<inventory> (mention the previously chosen inventory).

    Person API

    Person API moves the analysis to the next level: from items to person, thus providing insights on a person level. Person is defined as a collection of facts (items). Given a set of facts about a person, it answers the following questions: what are the person's main traits (or any traits from a big pool of personality inventories)? It also answers psychological questions given in natural language.

    Person API provides functionality on a person level. Person is defined as a collection of facts (items). Currently, there are four types of facts supported by the API (see below). Once a person is defined, it becomes possible to get its profile consisting of predefined inventories/indices or directly query the person.. This section is exactly about how to define a person and what can be done afterwards.


    Facts

    Fact is a simple piece of information about a person. There are four types of facts currently supported:

    Illustration of four types of facts.

    {
      "facts": [
        {
          "item": "I am a happy person"
        },
        {
          "item": "I usually feel blue",
          "response": "disagree"
        },
        {
          "question": "Are you nice to strangers?",
          "answer": "Yes, I am"
        },
        {
          "description": "I am an open-minded person. I like learning new things."
        }
      ]
    }
    
    Fact type Description
    item This is a “self-statement” presumably given by a person. It must start with a pronoun “I”.
    item-response This is a typical setup of a personality questionnaire. Item is defined as above and Response a degree of dis/agreement with the item.
    question-answer This is a self-explanatory pair. Currently only questions starting from “Are/Do” are supported.
    description This is a short description of a person. It should preferably come from “Please describe yourself in a couple of sentences” incentive.

    For each fact a timestamp can be specified. This is required for example to account for time persistency of a fact. For example “I am in a bad mood now” is usually constrained in time unlike “I am usually in a bad mood”. If a timestamp is not provided, it is set to the current time.


    Responses

    There are many ways to response to a question or psychological item. However, internally all responses are translated into the seven distinct groups: from "strongly disagree" through "neutral" to "strongly angree". The table below shows typical synonyms to the core responses.

    Response Score Synonyms
    strongly agree +3 completely agree, exactly, absolutely, etc.
    agree +2 yes, sure, agreed, indeed, etc.
    slightly agree +1 guess so, maybe, I suppose so, etc.
    neutral 0 neither, whatever, I don't know, etc.
    slightly disagree -1 not really, not sure, etc.
    disagree -2 no, I disagree, I don’t think so, etc.
    strongly disagree -3 no way, totally disagree, absolutely not, etc.


    Metrics

    There are several quantitative results one receives from person-level endpoints. In the table below key metrics with their range are briefly summarized.

    Metric Range Explanation
    similarity [-1, +1] similarity between the person and index/question/etc.
    quantile [ 0, +1] reflects belonging to some percent of the whole population
    confidence [ 0, +1] degree of certainty in the result
    confidence_text five-level confidence: from "very low" to "very high"
    score [-3, +3] response score (see the table above)
    score_text response text (see the table above)
    answer [‘no’-1, ‘yes’ +1] a positive or negative answer on an input question

    Self-Description Analysis

    This endpoint makes it easy to extract most meaning from a self-description of a person given in a natural language. First, text is split into sentences. Every sentence is labeled with correspoinding topic (see Item Classification) and inventory (like Big5, Neo etc.) projection.

    Currently only English (en) and Portuguese (pt) is supported.

    You can try Self-Description analysis - a visual tool to explore Person API functionality.

    HTTP Request POST https://sentino.org/api/v2/person/description

    curl -X POST "https://sentino.org/api/v2/person/description" 
    -H "Authorization: Token sentino_api_token"
    -H "Content-Type: application/json" 
    -d '{
        "text": "I am 30 years old man. 
            I studied physics and currently work as a software engineer. 
            I am married and have a couple of kids. 
            What else I can tell... 
            I am open to new experience and like to chat. I am being nasty sometimes.",
    
        "inventories": ["big5", "neo"],
    
        "lang": "en"
    
        }'
    

    The above command returns JSON structured like this:

    {
      "text": "I am 30 years old man...",
    
      "sents": [
            {
                "text": "I am 30 years old man.",
                "is_itemlike": true,
                "facts": [
                    {
                        "text": "I am 30 years old man.",
                        "labels": [
                            "age",
                            "gender"
                        ],
                        "inventories": {}
                    }
                ]
            },
    
            ...
    
            {
                "text": "I am open to new experience and like to chat.",
                "is_itemlike": true,
                "facts": [
                    {
                        "text": "I am like to chat.",
                        "labels": [
                            "psy"
                        ],
                        "inventories": {
                            "big5": {
                                "conscientiousness": -0.032,
                                "neuroticism": 0.083,
                                "extraversion": 0.753,
                                "openness": 0.099,
                                "agreeableness": 0.156
                            },
                            "neo": {
                                ...
                            }
                        }
                    },
                ...]
            }
        ...
      ],
    
    }
    

    Profile

    Once all facts are gathered, one can get many insights on the person. Person API allows building a personal profile of out the facts. Profile is a collection of psychological inventories or indices that are typically used in psychological assessment.

    In order to get a personal profile, one needs to provide a list of personality inventories or any arbitrary subset of indices from these inventories. Please see an example of such a request in the right-side of the page.

    Only items that are highly correlated with the indices/inventories will be considered.

    HTTP Request POST https://sentino.org/api/v2/person/profile

    curl -X POST "https://sentino.org/api/v2/person/profile" 
    -H "Authorization: Token sentino_api_token"
    -H "Content-Type: application/json" 
    -d '{
        "facts": [
        {
          "item": "I am a happy person"
        },
        {
          "item": "I often feel blue",
          "response": "disagree"
        },
        {
          "question": "Do you have frequent mood swings?",
          "answer": "No, I do not"
        },
        {
          "description": "I am an open-minded person. I like learning new things."
        }
      ],
        "profile": {"inventories": ["big5"], 
                    "indices": ["withdrawal"]}
    }'
    

    The above command returns JSON structured like this:

    {
      "profile": {
        "indices": {
          "withdrawal": {
            "proba": [1.0, 0.0, 0.0],
            "score": -1.0,
            "quantile": 0.0,
            "n": 2,
            "confidence": 0.2,
            "confidence_text": "low"
          }
        },
        "inventories": {
          "big5": {
            "conscientiousness": {
              ...
            },
            "openness": {
                "proba": [0.0, 0.0, 1.0],
                "score": 1.0,
                "quantile": 1.0,
                "n": 1,
                "confidence": 0.1,
                "confidence_text": "low"
            },
            "extraversion": {
              "similarity": 0.0,
              ...
            },
            "agreeableness": {
              "similarity": 0.0,
              ...
            },
            "neuroticism": {
              "score": -1.0,
              ...
            }
          }
        }
      },
      "facts": [ ... ]
    }
    

    Query

    curl -X POST "https://sentino.org/api/v2/person/query" 
    -H "Authorization: Token sentino_api_token"
    -H "Content-Type: application/json" 
    -d '{
        "facts": [
        {
          "item": "I am a happy person"
        },
        {
          "item": "I usually feel blue",
          "response": "disagree"
        },
        {
          "question": "Are you nice to strangers?",
          "answer": "Yes, I am"
        },
        {
          "description": "I am an open-minded person. I like learning new things."
        }
      ],
        "question": "Am I open to new experiences?"
    }'
    

    The above command returns JSON structured like this:

    {
      "facts": [ ... ],
      "question": "Am I open to new experiences?",
      "response": {
        "answer": "yes",
        "confidence": 0.636,
        "quantile": 1,
        "similarity": 0.538
      }
    }
    

    The big idea behind "query" end-point is to provide a channel for communication with a person. Like with the profile end-point, one first defines a person by providing facts. Once facts are provided, one can asks questions in a raw language.

    The result of the query will provide the details on the answer. Please refer to metrics table above for more details

    HTTP Request POST https://sentino.org/api/v2/person/query

    Errors

    The Sentino API uses the following error codes:

    Error Code Meaning
    400 Bad Request -- Your request is invalid.
    401 Unauthorized -- Your Sentino API token is wrong.
    404 Not Found -- The endpoint is not found.
    405 Method Not Allowed -- You tried to access an invalid method.
    406 Not Acceptable -- You requested a format that isn't json.
    429 Too Many Requests -- You're requesting too many things! Slow down!
    500 Internal Server Error -- We had a problem with our server. Try again later.
    503 Service Unavailable -- We're temporarily offline for maintenance. Please try again later.