eDiscovery AI API

eDiscovery AI API


The eDiscoveryAI API provides a powerful and streamlined way to integrate your existing systems with our platform to seamlessly submit documents for eDiscovery AI review. Whether you're managing large datasets, automating legal workflows, or simply seeking a more efficient method to handle document uploads, our API simplifies the process. In this guide, we'll walk you through how to connect to the eDiscoveryAI API, submit documents, and ensure they are ready for eDiscovery review quickly and securely.

Authorisation: X-API-KEY header

X-API-KEY = 4928a2c3-ab29-4d18-9263-41bbee936183

Step 1 - Create new processing job

Relevancy Review

  1. {
  2.   "job_name": string or None,
  3.   "job_type": "relevancy-review",
  4.   "instance_name": string or None,
  5.   "added_by": string or None,
  6.   "workspace_id": string or None,
  7.   "workspace_name": string or None,
  8.   "issues": [
  9.     {
  10.       "name": string,
  11.       "description": string
  12.     }
  13.     ...
  14.   ]
  15. }


Privilege Review

  1. {
  2.   "job_name": string or None,
  3.   "job_type": " privilege-review",
  4.   "instance_name": string or None,
  5.   "added_by": string or None,
  6.   "workspace_id": string or None,
  7.   "workspace_name": string or None,
  8.   "privilege": {
  9.     "attorney_list": string,
  10.     "safe_domains": string,
  11.     "privilege_types": [
  12.       {
  13.         "id": int,
  14.         "name": string,
  15.         "description": string
  16.       }
  17.       ...
  18.     ]
  19.   }
  20. }

    Example JSON Text

        "privilege": {

            "attorney_list": "John Doe; Jane Doe", 

            "safe_domains": "@test.com; @test.org", 

            "privilege_types": [

                {"id": 1, "name": "Attorney-Client", "description": ""}, --Leave description blank

                {"id": 2, "name": "Work Product", "description": ""}, --Leave description blank

                {"id": 3, "name": "<name of your custom priv type>", "description": "<description of your custom priv type>"},

                {"id": 4, "name": "<name of your custom priv type>", "description": "<description of your custom priv type>"}

    ]}

    Response: 200 with JSON on success

    1. {
    2. "job_id": "test123",
    3. "issues_added": 3,
    4. "azure_path": "https://"
    5. "sas_token": "?"
    6. }

    Case 2: No new processed files (ping again for results)
    1. {
    2.   "job_id": "53db4abb-0ed0-48eb-b9a3-1cc9cd46d45a",
    3.   "number_of_files": 0,
    4.   "results": []

    Case 3: Processing finished (should not ping anymore)
    1. { "job_id": "53db4abb-0ed0-48eb-b9a3-1cc9cd46d45a", "number_of_files": -1, "results": [] }


    Step 2 - Upload files to Azure blob storage

    Step 3 - Start processing job

    Response: 200 with empty on success

    Step 4 - Ping for results - relevance review

    Response: 200 with JSON on success

    Case 1: New processed files - Relevance Review

    1. {
    2.   "job_id": "53db4abb-0ed0-48eb-b9a3-1cc9cd46d45a",
    3.   "number_of_files": 2,
    4.   "results": [{
    5. "file_id": "file_01",
    6.     "filename": "file_01",
    7.     "summary": "Dolore consequat nostrud aliquip dolor cillum consectetur quis enim excepteur reprehenderit et minim. Laborum non qui officia deserunt. Dolor incididunt reprehenderit ut sit. Qui non commodo non adipisicing irure ex anim officia eu laboris laboris aute dolor ad excepteur. Ullamco anim sunt eiusmod velit consectetur quis sit tempor elit sit velit. Adipisicing nisi consectetur sit. Incididunt culpa excepteur mollit Lorem in adipisicing labore ad proident nisi velit commodo cupidatat duis.",
    8.     "issues": [{
    9.       "name": "issue_01",
    10.       "result": "NR",
    11.       "explanation": "Est consectetur labore officia et occaecat et culpa. Enim commodo adipisicing enim qui. Dolor fugiat ullamco enim laborum pariatur laboris proident occaecat duis enim eu pariatur ipsum. Voluptate est dolore qui duis ut sit. Elit magna enim enim quis. Pariatur dolore id nisi non culpa labore veniam nisi. Occaecat dolor labore dolor tempor aute. Veniam veniam officia esse est exercitation."
    12.     },{
    13.       "name": "issue_02",
    14.       "result": "NR",
    15.       "explanation": "Dolore eu in Lorem tempor consequat occaecat ullamco eu duis labore occaecat officia officia irure. Tempor deserunt ex nostrud officia est est tempor dolor. Ea occaecat do occaecat consequat ullamco elit excepteur mollit adipisicing laboris. Exercitation veniam adipisicing aliquip ullamco mollit dolor sit anim eiusmod commodo magna. Proident veniam ea eu cillum adipisicing id qui qui cillum. Laborum id laborum commodo minim non. Eu esse do mollit officia voluptate labore nisi eu consectetur nulla mollit mollit velit."
    16.     },{
    17.       "name": "issue_03",
    18.       "result": "NR",
    19.       "explanation": "Ea exercitation amet commodo nulla non reprehenderit. Do commodo elit sit cillum occaecat sit cupidatat sint adipisicing commodo ullamco aliqua ut commodo occaecat. Ex proident veniam minim est est sunt consequat non labore cillum sunt deserunt ipsum. Consectetur et et est qui tempor aliquip eu aliquip consequat sit cupidatat pariatur eiusmod ipsum laboris. Id in cillum esse aliquip magna et eu dolor minim eu velit esse. Dolore mollit voluptate sit excepteur mollit. Exercitation pariatur pariatur enim exercitation elit eu ea in commodo nisi sit. Culpa cillum sint deserunt id duis ex eiusmod exercitation ipsum eu."
    20.     }]
    21.   },{
    22. "file_id": "file_02",
    23.     "filename": "file_02",
    24.     "summary": "Dolore consequat nostrud aliquip dolor cillum consectetur quis enim excepteur reprehenderit et minim. Laborum non qui officia deserunt. Dolor incididunt reprehenderit ut sit. Qui non commodo non adipisicing irure ex anim officia eu laboris laboris aute dolor ad excepteur. Ullamco anim sunt eiusmod velit consectetur quis sit tempor elit sit velit. Adipisicing nisi consectetur sit. Incididunt culpa excepteur mollit Lorem in adipisicing labore ad proident nisi velit commodo cupidatat duis.",
    25.     "issues": [{
    26.       "name": "issue_01",
    27.       "result": "R",
    28.       "explanation": "Culpa aute veniam sunt eu consequat qui elit et cupidatat. Ullamco qui sunt cillum. Cillum non Lorem est consectetur duis eu duis aliqua dolor. Non cillum et quis sunt quis aliquip labore nisi do in amet cupidatat reprehenderit nostrud do. Aute amet dolor laborum cupidatat quis veniam eiusmod reprehenderit consectetur ut dolore consectetur nostrud qui quis. Amet esse et laborum voluptate sunt do id voluptate. Sunt sunt enim cupidatat id commodo esse. Ad laborum nostrud in culpa sunt excepteur consectetur non aliquip velit culpa ut fugiat tempor."
    29.     },{
    30.       "name": "issue_02",
    31.       "result": "NR",
    32.       "explanation": "Excepteur nostrud ea commodo duis ut incididunt nulla amet labore est. Elit consequat consectetur consequat duis id pariatur excepteur. Nostrud aute magna ullamco voluptate ullamco pariatur aute eu nostrud in officia veniam commodo. Adipisicing aliqua aliquip exercitation et. Elit do in veniam aliquip."
    33.     },{
    34.       "name": "issue_03",
    35.       "result": "R",
    36.       "explanation": "Consequat in eiusmod exercitation qui tempor consequat culpa sit est ut. Proident elit culpa exercitation deserunt aute esse dolor aliquip Lorem magna veniam. Lorem commodo eu duis. Cupidatat mollit tempor aute adipisicing veniam velit non ullamco voluptate labore."
    37.     }]
    38.   }]
    39. }


    1.   Response: 200 with JSON on success


    1. {
    2. "job_id": "test123",
    3. "issues_added": 3,
    4. "azure_path": "https://"
    5. "sas_token": "?"
    6. }
    Case 2: New processed files - Privilege Review

    1.    {
    2.   "job_type": "privilege-review",
    3.     "job_id": "j5tkutzdcqmga4cxmv6",
    4.     "number_of_files": 4,
    5.     "results": [
    6.         {
    7.             "file_id": "fa4srrwtpmfuqbaugwn6sm",
    8.             "filename": "CNTRL0000000001.txt",
    9.             "priv_results": {
    10.                 "privilege_types": null,
    11.                 "attorney_list": "John Doe",
    12.                 "element_types": null,
    13.                 "privilege_log_entry": "Communication from John Doe regarding employment status.",
    14.                 "result": "Potentially Privileged"
    15.             }
    16.         },
    17.         {
    18.             "file_id": "fdgppnr3cggk9np674vq53",
    19.             "filename": "CNTRL0000000002.txt",
    20.             "priv_results": {
    21.                 "privilege_types": [{"id": 1, "name": "Attorney-Client"}],
    22.                 "attorney_list": "John Doe",
    23.                 "element_types": [{"id": 1,"name": "Attorney Name in Document"},{"id": 2,"name": "Confidential Communication"}],
    24.                 "privilege_log_entry": "Communication from John Doe regarding his departure from Test company.",
    25.                 "result": "Privileged"
    26.             }
    27.         },
    28.         {
    29.             "file_id": "fw7k2ndhcavqrazmmxmrnx",
    30.             "filename": "CNTRL0000000003.txt",
    31.             "priv_results": {
    32.                 "privilege_types": null,
    33.                 "attorney_list": null,
    34.                 "element_types": null,
    35.                 "privilege_log_entry": null,
    36.                 "result": "Not Privileged"
    37.             }
    38.         },
    39.         {
    40.             "file_id": "fw7k2ndhcavqrazmmxmrnx",
    41.             "filename": "CNTRL0000000004.txt",
    42.             "priv_results": {
    43.                 "privilege_types": null,
    44.                 "attorney_list": null,
    45.                 "element_types": null,
    46.                 "privilege_log_entry": null,
    47.                 "result": "Tech Issue"
    48.             }
    49.         }
    50.     ]
    51. }

    Step 5 - Confirm receiving results for files

    Request: POST → https://api.ediscoveryai.com/jobs/{job_id}/results/

    1. {
    2. "files": ["file_01", "file_02"]
    3. }
    Response: 200 with empty on success

    Step  6 - Connection requirements

    Prior to your first document submission, you will need to provide eDiscovery AI with the originating Public source IP address(es) of your hosting instance. For security purposes, eDiscovery AI restricts communications from all but pre-approved sources. Email support@ediscoveryai.com to have your IP address(es) added to our whitelist. 

          Additionally, you will need an API key for access, support@ediscoveryai.com will be able to provide you that as well. 
      

    If you have direct access to your Relativity Agent Server, you may check this with a web browser by going to www.ipdonkey.com 




      

    If you are unable to access your hosting servers or if they are not permitted browse the internet, please consult your Network/IT Support to determine the correct public IP address. The IP address we require is not the locally assigned or private address (typically beginning with 192.168 , 172, or 10) but rather the address that is used by a network router or firewall to access the internet at large. 


    Your server(s) may be restricted from the internet in some way from a firewall or other security system. 
    Please consult with your Network or IT security team to request that this server have access to the following: 
     
    US / Global 

     

    ·          https://api.ediscoveryai.com  

    ·      https://ediscoveryai.blob.core.windows.net  

    UK 


    •       https://api-uk.ediscoveryai.com  

    •       https://ediscoveryaiuk.blob.core.windows.net