> For the complete documentation index, see [llms.txt](https://docs.aisuru.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.aisuru.com/api/engine/expert-references.md).

# Expert References

## GET /memori/v2/ExpertReferences/{strSessionID}

> Lists all Expert Reference objects.

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"paths":{"/memori/v2/ExpertReferences/{strSessionID}":{"get":{"tags":["ExpertReferences"],"summary":"Lists all Expert Reference objects.","operationId":"ExpertReferences-ListExpertReferences","parameters":[{"name":"strSessionID","in":"path","description":"The session ID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListExpertReferencesResponse"}}}}}}}},"components":{"schemas":{"ListExpertReferencesResponse":{"type":"object","properties":{"count":{"type":"integer","description":"Total number of Expert Reference objects.","format":"int32"},"experts":{"type":"array","items":{"$ref":"#/components/schemas/ExpertReferenceSpecs"},"description":"List of Expert Reference objects.\r\nMay be empty.","nullable":true},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a List Expert References request."},"ExpertReferenceSpecs":{"type":"object","properties":{"expertID":{"type":"string","description":"Expert Reference object ID.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"name":{"type":"string","description":"Name of the expert.\r\nReturned during Get operations.\r\nRequired during Add operations.\r\nOptional during Update operations.","nullable":true},"description":{"type":"string","description":"Description of the expert, i.e. a list of the expert's skills and knowledge.\r\nReturned during Get operations.\r\nRequired during Add operations.\r\nOptional during Update operations.","nullable":true},"default":{"type":"boolean","description":"If ```True```, this expert is used when no other expert\r\nis competent for the current question.\r\nReturned during Get operations.\r\nOptional during Add operations.\r\nOptional during Update operations.","nullable":true},"expertMemoriID":{"type":"string","description":"ID of the expert Memori.\r\nReturned during Get operations.\r\nRequired during Add operations.\r\nOptional during Update operations.","nullable":true},"expertPassword":{"type":"string","description":"Password of the expert Memori. Required if the chained Memori is private or secret.\r\nOptional during Add operations and Update operations.\r\nIgnore in other cases.","nullable":true},"expertBaseURL":{"type":"string","description":"Base URL of a chained Memori, typically ```https://engine.memori.ai/```.\r\nReturned during Get operations.\r\nRequired during Add operations.\r\nOptional during Update operations.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false}}}}
````

## GET /memori/v2/ExpertReferences/{strSessionID}/{from}/{howMany}

> Lists Expert Reference objects with pagination.

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"paths":{"/memori/v2/ExpertReferences/{strSessionID}/{from}/{howMany}":{"get":{"tags":["ExpertReferences"],"summary":"Lists Expert Reference objects with pagination.","operationId":"ExpertReferences-ListExpertReferencesPaginated","parameters":[{"name":"strSessionID","in":"path","description":"The session ID","required":true,"schema":{"type":"string"}},{"name":"from","in":"path","description":"The 0-based index of the first Expert Reference object to list","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"howMany","in":"path","description":"The number of the Expert Reference objects to list","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListExpertReferencesResponse"}}}}}}}},"components":{"schemas":{"ListExpertReferencesResponse":{"type":"object","properties":{"count":{"type":"integer","description":"Total number of Expert Reference objects.","format":"int32"},"experts":{"type":"array","items":{"$ref":"#/components/schemas/ExpertReferenceSpecs"},"description":"List of Expert Reference objects.\r\nMay be empty.","nullable":true},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a List Expert References request."},"ExpertReferenceSpecs":{"type":"object","properties":{"expertID":{"type":"string","description":"Expert Reference object ID.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"name":{"type":"string","description":"Name of the expert.\r\nReturned during Get operations.\r\nRequired during Add operations.\r\nOptional during Update operations.","nullable":true},"description":{"type":"string","description":"Description of the expert, i.e. a list of the expert's skills and knowledge.\r\nReturned during Get operations.\r\nRequired during Add operations.\r\nOptional during Update operations.","nullable":true},"default":{"type":"boolean","description":"If ```True```, this expert is used when no other expert\r\nis competent for the current question.\r\nReturned during Get operations.\r\nOptional during Add operations.\r\nOptional during Update operations.","nullable":true},"expertMemoriID":{"type":"string","description":"ID of the expert Memori.\r\nReturned during Get operations.\r\nRequired during Add operations.\r\nOptional during Update operations.","nullable":true},"expertPassword":{"type":"string","description":"Password of the expert Memori. Required if the chained Memori is private or secret.\r\nOptional during Add operations and Update operations.\r\nIgnore in other cases.","nullable":true},"expertBaseURL":{"type":"string","description":"Base URL of a chained Memori, typically ```https://engine.memori.ai/```.\r\nReturned during Get operations.\r\nRequired during Add operations.\r\nOptional during Update operations.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false}}}}
````

## GET /memori/v2/ExpertReference/{strSessionID}/{strExpertReferenceID}

> Gets the details of an Expert Reference object.

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"paths":{"/memori/v2/ExpertReference/{strSessionID}/{strExpertReferenceID}":{"get":{"tags":["ExpertReferences"],"summary":"Gets the details of an Expert Reference object.","operationId":"ExpertReferences-GetExpertReference","parameters":[{"name":"strSessionID","in":"path","description":"The session ID","required":true,"schema":{"type":"string"}},{"name":"strExpertReferenceID","in":"path","description":"The Expert Reference object ID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetExpertReferenceResponse"}}}}}}}},"components":{"schemas":{"GetExpertReferenceResponse":{"type":"object","properties":{"expert":{"$ref":"#/components/schemas/ExpertReferenceSpecs"},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a Get Expert Reference request."},"ExpertReferenceSpecs":{"type":"object","properties":{"expertID":{"type":"string","description":"Expert Reference object ID.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"name":{"type":"string","description":"Name of the expert.\r\nReturned during Get operations.\r\nRequired during Add operations.\r\nOptional during Update operations.","nullable":true},"description":{"type":"string","description":"Description of the expert, i.e. a list of the expert's skills and knowledge.\r\nReturned during Get operations.\r\nRequired during Add operations.\r\nOptional during Update operations.","nullable":true},"default":{"type":"boolean","description":"If ```True```, this expert is used when no other expert\r\nis competent for the current question.\r\nReturned during Get operations.\r\nOptional during Add operations.\r\nOptional during Update operations.","nullable":true},"expertMemoriID":{"type":"string","description":"ID of the expert Memori.\r\nReturned during Get operations.\r\nRequired during Add operations.\r\nOptional during Update operations.","nullable":true},"expertPassword":{"type":"string","description":"Password of the expert Memori. Required if the chained Memori is private or secret.\r\nOptional during Add operations and Update operations.\r\nIgnore in other cases.","nullable":true},"expertBaseURL":{"type":"string","description":"Base URL of a chained Memori, typically ```https://engine.memori.ai/```.\r\nReturned during Get operations.\r\nRequired during Add operations.\r\nOptional during Update operations.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false}}}}
````

## Removes an existing Expert Reference object.

> This API requires a Giver session.

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"paths":{"/memori/v2/ExpertReference/{strSessionID}/{strExpertReferenceID}":{"delete":{"tags":["ExpertReferences"],"summary":"Removes an existing Expert Reference object.","description":"This API requires a Giver session.","operationId":"ExpertReferences-RemoveExpertReference","parameters":[{"name":"strSessionID","in":"path","description":"The session ID","required":true,"schema":{"type":"string"}},{"name":"strExpertReferenceID","in":"path","description":"The Expert Reference object ID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}}}}}},"components":{"schemas":{"Response":{"type":"object","properties":{"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Base response."}}}}
````

## Updates an existing Expert Reference object.

> This API requires a Giver session.> \
> Only non-null (present) fields are considered for update.> \
> Null or absent fields are left unaltered.

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"paths":{"/memori/v2/ExpertReference/{strSessionID}/{strExpertReferenceID}":{"patch":{"tags":["ExpertReferences"],"summary":"Updates an existing Expert Reference object.","description":"This API requires a Giver session.\r\nOnly non-null (present) fields are considered for update.\r\nNull or absent fields are left unaltered.","operationId":"ExpertReferences-UpdateExpertReference","parameters":[{"name":"strSessionID","in":"path","description":"The session ID","required":true,"schema":{"type":"string"}},{"name":"strExpertReferenceID","in":"path","description":"The Expert Reference object ID","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"The Expert Reference object specifications","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateExpertReferenceSpecs"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}}}}}},"components":{"schemas":{"UpdateExpertReferenceSpecs":{"type":"object","properties":{"expertID":{"type":"string","description":"Expert Reference object ID.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"name":{"type":"string","description":"Name of the expert.\r\nReturned during Get operations.\r\nRequired during Add operations.\r\nOptional during Update operations.","nullable":true},"description":{"type":"string","description":"Description of the expert, i.e. a list of the expert's skills and knowledge.\r\nReturned during Get operations.\r\nRequired during Add operations.\r\nOptional during Update operations.","nullable":true},"default":{"type":"boolean","description":"If ```True```, this expert is used when no other expert\r\nis competent for the current question.\r\nReturned during Get operations.\r\nOptional during Add operations.\r\nOptional during Update operations.","nullable":true},"expertMemoriID":{"type":"string","description":"ID of the expert Memori.\r\nReturned during Get operations.\r\nRequired during Add operations.\r\nOptional during Update operations.","nullable":true},"expertPassword":{"type":"string","description":"Password of the expert Memori. Required if the chained Memori is private or secret.\r\nOptional during Add operations and Update operations.\r\nIgnore in other cases.","nullable":true},"expertBaseURL":{"type":"string","description":"Base URL of a chained Memori, typically ```https://engine.memori.ai/```.\r\nReturned during Get operations.\r\nRequired during Add operations.\r\nOptional during Update operations.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications for an Update Expert Reference request."},"Response":{"type":"object","properties":{"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Base response."}}}}
````

## Adds a new Expert Reference object.

> This API requires a Giver session.

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"paths":{"/memori/v2/ExpertReference/{strSessionID}":{"post":{"tags":["ExpertReferences"],"summary":"Adds a new Expert Reference object.","description":"This API requires a Giver session.","operationId":"ExpertReferences-AddExpertReference","parameters":[{"name":"strSessionID","in":"path","description":"The session ID","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"The Expert Reference object specifications","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddExpertReferenceSpecs"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddExpertReferenceResponse"}}}}}}}},"components":{"schemas":{"AddExpertReferenceSpecs":{"type":"object","properties":{"expertID":{"type":"string","description":"Expert Reference object ID.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"name":{"type":"string","description":"Name of the expert.\r\nReturned during Get operations.\r\nRequired during Add operations.\r\nOptional during Update operations.","nullable":true},"description":{"type":"string","description":"Description of the expert, i.e. a list of the expert's skills and knowledge.\r\nReturned during Get operations.\r\nRequired during Add operations.\r\nOptional during Update operations.","nullable":true},"default":{"type":"boolean","description":"If ```True```, this expert is used when no other expert\r\nis competent for the current question.\r\nReturned during Get operations.\r\nOptional during Add operations.\r\nOptional during Update operations.","nullable":true},"expertMemoriID":{"type":"string","description":"ID of the expert Memori.\r\nReturned during Get operations.\r\nRequired during Add operations.\r\nOptional during Update operations.","nullable":true},"expertPassword":{"type":"string","description":"Password of the expert Memori. Required if the chained Memori is private or secret.\r\nOptional during Add operations and Update operations.\r\nIgnore in other cases.","nullable":true},"expertBaseURL":{"type":"string","description":"Base URL of a chained Memori, typically ```https://engine.memori.ai/```.\r\nReturned during Get operations.\r\nRequired during Add operations.\r\nOptional during Update operations.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications for an Add Expert Reference request."},"AddExpertReferenceResponse":{"type":"object","properties":{"expertID":{"type":"string","description":"Expert Reference object ID.","nullable":true},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of an Add Expert Reference request."}}}}
````
