{"openapi":"3.1.0","info":{"title":"Bulk Orchestrator APIs","description":"This service handles submission and management of bulk spatial workflows.\n\n<details>\n    <summary>Error Codes</summary>\n\nAPIs will return the following error codes in case of any error:\n\n| Error Code                 | Description\n|----------------------------|-------------------------------------------------------\n|DIS-1001                    |Invalid token.\n|DIS-1002                    |Not Authorized to access this API.\n|DIS-1003                    |Issue with internal services.\n|DIS-1004                    |Workspace Id is missing from Bearer Token.\n|DIS-1005                    |Rate limit exceeded.\n|DIS-1006                    |Invalid Key secret, unauthorized.\n|DIS-1007                    |API quota has been permanently exhausted. No further requests are allowed.\n|DIS-1008                    |Invalid request ID provided, maximum allowed length is 38 characters.\n|DIS-1009                    |Access blocked due to too many failed attempts. Please try again after sometime.\n|DIS-1010                    |Workspace has been expired.\n|DIS-SFB-1001                |Input file name should not be empty\n|DIS-SFB-1002                |tableName cannot be null or blank\n|DIS-SFB-1003                |Attributes cannot be empty. Provide * for all columns\n|DIS-SFB-1004                |Invalid File Id\n|DIS-SFB-1005                |File id cannot be empty\n|DIS-SFB-1006                |Workflow ID not found\n|DIS-SFB-1007                |Unable to retrieve workflow status\n|DIS-SFB-1008                |Invalid argument provided in the request\n|DIS-SFB-1009                |Proportional calculation is only allowed with 'intersects' spatial operation\n|DIS-SFB-1010                |Aggregation columns cannot be empty\n|DIS-SFB-1011                |Limit must be at least 1\n|DIS-SFB-1012                |Limit cannot exceed 1000\n\n</details>\n","version":"1.0"},"servers":[{"url":"https://api.cloud.precisely.com"}],"security":[{"bearerAuth":[]}],"tags":[{"name":"Bulk Analysis API","description":"This API generates and manages workflow for processing bulk spatial operations asynchronously"}],"paths":{"/v1/spatial/bulk-operations":{"post":{"tags":["Bulk Analysis API"],"summary":"Submits a workflow for Bulk Spatial Operation","description":"This API allows users to submit a workflow for bulk spatial operations such as Search Nearest, Search At Location, Overlaps, and Summarize. The request must include the necessary payload for the operation and returns a workflow url","operationId":"bulkSpatialOperation","parameters":[{"name":"X-Request-Id","in":"header","description":"The X-Request-Id header is optional but helpful for tracking requests. It acts as a unique identifier for troubleshooting and debugging issues effectively. Maximum length: 38 characters. Example: e02f00d5-e3a9-4fd6-aen1-3e5451abee46","schema":{"type":"string"},"example":"e02f00d5-e3a9-4fd6-aen1-3e5451abee46"}],"requestBody":{"description":"Bulk spatial operation request with operation and payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkOperationRequest"},"example":{"operation":"SEARCH_NEAREST","payload":{"fileId":"82390015-19b2-40bd-8f00-e3d705af9885","tableName":"/precisely/riskdata/flr_usa_comm","geometryFormat":"WKT","delimiter":",","distanceAttributeName":"dist","withinDistance":"10 mi","maxFeatures":1,"attributes":["statecode","type","mapname"],"limit":100,"sortOrder":"ASC"}}}},"required":true},"responses":{"200":{"description":"Successfully submits a workflow.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowSubmitResponse"},"example":{"statusUrl":"https://api.cloud.precisely.com/v1/li/workflows/status/606969c3-a570-495e-88b4-c34790b32201"}}}},"400":{"description":"Invalid File Id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"id":"124fe974-cc53-4722-861e-7f4bf582a5ec","errors":[{"code":"DIS-SFB-1004","detail":"Invalid File Id"}]}}}},"401":{"description":"Unauthorized: Invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"id":"124fe974-cc53-4722-861e-7f4bf582a5ec","errors":[{"code":"DIS-1001","detail":"Unauthorized"}]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"id":"124fe974-cc53-4722-861e-7f4bf582a5ec","errors":[{"code":"DIS-1002","detail":"Not Authorized to access this API"}]}}}},"429":{"description":"Too many requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"id":"124fe974-cc53-4722-861e-7f4bf582a5ec","errors":[{"code":"DIS-1005","detail":"Rate limit exceeded"}]}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"id":"124fe974-cc53-4722-861e-7f4bf582a5ec","errors":[{"code":"DIS-1003","detail":"Issue with internal services"}]}}}},"503":{"description":"Service Unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"id":"124fe974-cc53-4722-861e-7f4bf582a5ec","errors":[{"code":"DIS-1003","detail":"Issue with internal services"}]}}}}}}},"/v1/routing/bulk-operations":{"post":{"tags":["Bulk Routing API"],"summary":"Submits a workflow for Bulk routing Operation","description":"This API allows users to submit a workflow for bulk isochrone operations. The request must include the necessary payload for the operation and returns a workflow url","operationId":"bulkRoutingOperation","parameters":[{"name":"X-Request-Id","in":"header","description":"The X-Request-Id header is optional but helpful for tracking requests. It acts as a unique identifier for troubleshooting and debugging issues effectively. Maximum length: 38 characters. Example: e02f00d5-e3a9-4fd6-aen1-3e5451abee46","schema":{"type":"string"},"example":"e02f00d5-e3a9-4fd6-aen1-3e5451abee46"}],"requestBody":{"description":"Bulk spatial operation request with operation and payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkOperationRequest"},"example":{"operation":"TRAVEL_BOUNDARY","payload":{"fileId":"5b4d7911-8861-468b-867b-228c0f9b884e","delimiter":","}}}},"required":true},"responses":{"200":{"description":"Successfully submits a workflow.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowSubmitResponse"},"example":{"statusUrl":"https://api.cloud.precisely.com/v1/li/workflows/status/606969c3-a570-495e-88b4-c34790b32201"}}}},"400":{"description":"Invalid File Id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"id":"124fe974-cc53-4722-861e-7f4bf582a5ec","errors":[{"code":"DIS-SFB-1004","detail":"Invalid File Id"}]}}}},"401":{"description":"Unauthorized: Invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"id":"124fe974-cc53-4722-861e-7f4bf582a5ec","errors":[{"code":"DIS-1001","detail":"Unauthorized"}]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"id":"124fe974-cc53-4722-861e-7f4bf582a5ec","errors":[{"code":"DIS-1002","detail":"Not Authorized to access this API"}]}}}},"429":{"description":"Too many requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"id":"124fe974-cc53-4722-861e-7f4bf582a5ec","errors":[{"code":"DIS-1005","detail":"Rate limit exceeded"}]}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"id":"124fe974-cc53-4722-861e-7f4bf582a5ec","errors":[{"code":"DIS-1003","detail":"Issue with internal services"}]}}}},"503":{"description":"Service Unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"id":"124fe974-cc53-4722-861e-7f4bf582a5ec","errors":[{"code":"DIS-1003","detail":"Issue with internal services"}]}}}}}}},"/v1/order-management/bulk-operations":{"post":{"tags":["Bulk Order Management API"],"summary":"Submits a workflow for Order Extractor Operation","description":"This API allows users to submit a workflow for order extractor operation. The request must include the necessary payload for the operation and returns a workflow url","operationId":"orderExtractOperation","parameters":[{"name":"X-Request-Id","in":"header","description":"The X-Request-Id header is optional but helpful for tracking requests. It acts as a unique identifier for troubleshooting and debugging issues effectively. Maximum length: 38 characters. Example: e02f00d5-e3a9-4fd6-aen1-3e5451abee46","schema":{"type":"string"},"example":"e02f00d5-e3a9-4fd6-aen1-3e5451abee46"}],"requestBody":{"description":"Bulk order management service request with fileId, requestType","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkOrderRequest"},"example":{"fileId":"d9e03a7a-e714-4a45-bcae-7609b32002c2","requestType":"PhotoPackage1"}}},"required":true},"responses":{"200":{"description":"Successfully submits a workflow.","content":{"*/*":{"schema":{"$ref":"#/components/schemas/WorkflowSubmitResponse"}}}},"400":{"description":"Invalid File Id","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"id":"124fe974-cc53-4722-861e-7f4bf582a5ec","errors":[{"code":"DIS-SFB-1004","detail":"Invalid File Id"}]}}}},"401":{"description":"Unauthorized: Invalid token","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"id":"124fe974-cc53-4722-861e-7f4bf582a5ec","errors":[{"code":"DIS-1001","detail":"Unauthorized"}]}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"id":"124fe974-cc53-4722-861e-7f4bf582a5ec","errors":[{"code":"DIS-1002","detail":"Not Authorized to access this API"}]}}}},"429":{"description":"Too many requests","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"id":"124fe974-cc53-4722-861e-7f4bf582a5ec","errors":[{"code":"DIS-1005","detail":"Rate limit exceeded"}]}}}},"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"id":"124fe974-cc53-4722-861e-7f4bf582a5ec","errors":[{"code":"DIS-1003","detail":"Issue with internal services"}]}}}},"503":{"description":"Service Unavailable","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"id":"124fe974-cc53-4722-861e-7f4bf582a5ec","errors":[{"code":"DIS-1003","detail":"Issue with internal services"}]}}}}}}},"/v1/order-management/bulk-operations/upload-sample-file":{"post":{"tags":["Bulk Order Management API"],"summary":"Upload sample input file to S3","operationId":"uploadSampleInputFile","requestBody":{"description":"Sample file to upload to S3","content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary"}},"required":["file"]}}},"required":true},"responses":{"200":{"description":"Sample input file uploaded successfully.","content":{"*/*":{"schema":{"type":"string"}}}},"400":{"description":"Invalid file or request."},"401":{"description":"Unauthorized: Invalid token","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"id":"124fe974-cc53-4722-861e-7f4bf582a5ec","errors":[{"code":"DIS-1001","detail":"Unauthorized"}]}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"id":"124fe974-cc53-4722-861e-7f4bf582a5ec","errors":[{"code":"DIS-1002","detail":"Not Authorized to access this API"}]}}}},"500":{"description":"Internal server error.","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"id":"124fe974-cc53-4722-861e-7f4bf582a5ec","errors":[{"code":"DIS-1003","detail":"Issue with internal services"}]}}}}}}},"/v1/multipass/bulk-operations":{"post":{"tags":["Bulk Multipass API"],"summary":"Submits a workflow for Multipass bulk execution","description":"This API allows users to submit a workflow for Multipass bulk execution using a file, flow id, and input mapping. The request must include the necessary payload and returns a workflow url","operationId":"multipassOperation","parameters":[{"name":"X-Request-Id","in":"header","description":"The X-Request-Id header is optional but helpful for tracking requests. It acts as a unique identifier for troubleshooting and debugging issues effectively. Maximum length: 38 characters. Example: e02f00d5-e3a9-4fd6-aen1-3e5451abee46","schema":{"type":"string"},"example":"e02f00d5-e3a9-4fd6-aen1-3e5451abee46"}],"requestBody":{"description":"Multipass bulk execution request with operation and payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkOperationRequest","example":{"operation":"MULTIPASS","payload":{"fileId":"f5f09f97-9043-4383-9ba5-df7b178ccde7","delimiter":",","flowId":"us-geocode-v2","inputMapping":{"addressLine1":"AddressLine1","city":"City","state":"State","postalCode":"PostalCode","country":"Country"},"token":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."}}},"examples":{"Multipass Execute":{"description":"Multipass Execute","value":{"operation":"MULTIPASS","payload":{"fileId":"f5f09f97-9043-4383-9ba5-df7b178ccde7","delimiter":",","flowId":"us-geocode-v2","inputMapping":{"addressLine1":"AddressLine1","city":"City","state":"State","postalCode":"PostalCode","country":"Country"},"token":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."}}}}}},"required":true},"responses":{"200":{"description":"Successfully submits a workflow.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowSubmitResponse"},"example":{"statusUrl":"https://api.cloud.precisely.com/v1/li/workflows/status/606969c3-a570-495e-88b4-c34790b32201"}}}},"400":{"description":"Invalid File Id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"id":"124fe974-cc53-4722-861e-7f4bf582a5ec","errors":[{"code":"DIS-SFB-1004","detail":"Invalid File Id"}]}}}},"401":{"description":"Unauthorized: Invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"id":"124fe974-cc53-4722-861e-7f4bf582a5ec","errors":[{"code":"DIS-1001","detail":"Unauthorized"}]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"id":"124fe974-cc53-4722-861e-7f4bf582a5ec","errors":[{"code":"DIS-1002","detail":"Not Authorized to access this API"}]}}}},"429":{"description":"Too many requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"id":"124fe974-cc53-4722-861e-7f4bf582a5ec","errors":[{"code":"DIS-1005","detail":"Rate limit exceeded"}]}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"id":"124fe974-cc53-4722-861e-7f4bf582a5ec","errors":[{"code":"DIS-1003","detail":"Issue with internal services"}]}}}},"503":{"description":"Service Unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"id":"124fe974-cc53-4722-861e-7f4bf582a5ec","errors":[{"code":"DIS-1003","detail":"Issue with internal services"}]}}}}}}},"/v1/li/files/upload-url":{"post":{"tags":["Bulk Routing API","Bulk Multipass API","Bulk Data Graph API","Bulk Order Management API","Bulk Analysis API"],"summary":"Generates a pre-signed url for a user","description":"This endpoint generates a pre-signed Url for uploading a file. The file name is provided in the request body. The pre-signed Url can be used to upload the file without needing to authenticate again.","operationId":"generateUploadUrl","parameters":[{"name":"X-Request-Id","in":"header","description":"The X-Request-Id header is optional but helpful for tracking requests. It acts as a unique identifier for troubleshooting and debugging issues effectively. Maximum length: 38 characters. Example: e02f00d5-e3a9-4fd6-aen1-3e5451abee46","schema":{"type":"string"},"example":"e02f00d5-e3a9-4fd6-aen1-3e5451abee46"}],"requestBody":{"description":"Request body containing fileName","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadUrlRequest"},"example":{"fileName":"test_file"}}},"required":true},"responses":{"200":{"description":"pre-signed url in UploadUrlResponse","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadUrlResponse"},"example":{"fileId":"54a8b051-6381-4bf8-b88a-d4f7f3fb121a","url":"https://dummy-bucket.s3.us-east-2.amazonaws.com/id/email/input/test_file.csv?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=DUMMYACCESSKEY%2F20250722%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date=20250722T140722Z&X-Amz-Expires=600&X-Amz-Security-Token=DummySecurityToken123&X-Amz-Signature=deadbeef1234567890abcdef&X-Amz-SignedHeaders=host","message":"This upload URL will be valid for the next 10 mins."}}}},"400":{"description":"Input file name should not be empty","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"id":"124fe974-cc53-4722-861e-7f4bf582a5ec","errors":[{"code":"DIS-SFB-1001","detail":"Input file name should not be empty"}]}}}},"401":{"description":"Unauthorized: Invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"id":"124fe974-cc53-4722-861e-7f4bf582a5ec","errors":[{"code":"DIS-1001","detail":"Unauthorized"}]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"id":"124fe974-cc53-4722-861e-7f4bf582a5ec","errors":[{"code":"DIS-1002","detail":"Not Authorized to access this API"}]}}}},"429":{"description":"Too many requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"id":"124fe974-cc53-4722-861e-7f4bf582a5ec","errors":[{"code":"DIS-1005","detail":"Rate limit exceeded"}]}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"id":"124fe974-cc53-4722-861e-7f4bf582a5ec","errors":[{"code":"DIS-1003","detail":"Issue with internal services"}]}}}},"503":{"description":"Service Unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"id":"124fe974-cc53-4722-861e-7f4bf582a5ec","errors":[{"code":"DIS-1003","detail":"Issue with internal services"}]}}}}}}},"/v1/data-graph/bulk-operations":{"post":{"tags":["Bulk Data Graph API"],"summary":"Submits a workflow for Bulk Data Graph Operation","description":"This API allows users to submit a workflow for bulk data graph operations. The request must include the necessary payload for the operation and returns a workflow url","operationId":"dataGraphOperation","parameters":[{"name":"X-Request-Id","in":"header","description":"The X-Request-Id header is optional but helpful for tracking requests. It acts as a unique identifier for troubleshooting and debugging issues effectively. Maximum length: 38 characters. Example: e02f00d5-e3a9-4fd6-aen1-3e5451abee46","schema":{"type":"string"},"example":"e02f00d5-e3a9-4fd6-aen1-3e5451abee46"}],"requestBody":{"description":"Bulk data graph operation request with operation and payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkOperationRequest"},"examples":{"getById":{"description":"getById","value":{"operation":"DATA_GRAPH_GET_BY_ID","payload":{"fileId":"4fd90f34-07c1-4f63-97de-696739bbae76","delimiter":",","queryType":"PRECISELY_ID","datasets":{"parcels":["parcelID","fips","parcelArea","geometry"],"buildings":["buildingID","longitude","latitude","geometry"],"addresses":["preciselyID","locationCode","addressNumber"],"earthRisk":["preciselyID"]}}}},"getBySpatial":{"description":"Input CSV columns: InputId, SpatialInput (WKT, GeoJSON or address), optional Country. Non-blank row Country is used; when blank or missing, it defaults to USA.","value":{"operation":"DATA_GRAPH_GET_BY_SPATIAL","payload":{"fileId":"4fd90f34-07c1-4f63-97de-696739bbae76","delimiter":"|","spatialFunction":"INTERSECTS","datasets":{"parcels":["parcelID","geometry"],"buildings":["buildingID"]}}}}}}},"required":true},"responses":{"200":{"description":"Successfully submits a workflow.","content":{"*/*":{"schema":{"$ref":"#/components/schemas/WorkflowSubmitResponse"}}}},"400":{"description":"Invalid File Id","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"id":"124fe974-cc53-4722-861e-7f4bf582a5ec","errors":[{"code":"DIS-SFB-1004","detail":"Invalid File Id"}]}}}},"401":{"description":"Unauthorized: Invalid token","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"id":"124fe974-cc53-4722-861e-7f4bf582a5ec","errors":[{"code":"DIS-1001","detail":"Unauthorized"}]}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"id":"124fe974-cc53-4722-861e-7f4bf582a5ec","errors":[{"code":"DIS-1002","detail":"Not Authorized to access this API"}]}}}},"429":{"description":"Too many requests","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"id":"124fe974-cc53-4722-861e-7f4bf582a5ec","errors":[{"code":"DIS-1005","detail":"Rate limit exceeded"}]}}}},"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"id":"124fe974-cc53-4722-861e-7f4bf582a5ec","errors":[{"code":"DIS-1003","detail":"Issue with internal services"}]}}}},"503":{"description":"Service Unavailable","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"id":"124fe974-cc53-4722-861e-7f4bf582a5ec","errors":[{"code":"DIS-1003","detail":"Issue with internal services"}]}}}}}}},"/v1/order-management/bulk-operations/download-sample-file":{"get":{"tags":["Bulk Order Management API"],"summary":"Download sample input file from S3","operationId":"downloadSampleInputFile","responses":{"200":{"description":"Sample input file downloaded successfully.","content":{"*/*":{"schema":{"type":"object"}}}},"404":{"description":"Sample input file not found.","content":{"*/*":{"schema":{"type":"object"}}}},"500":{"description":"Internal server error.","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/v1/li/workflows/status/{workflowId}":{"get":{"tags":["Bulk Routing API","Bulk Multipass API","Bulk Data Graph API","Bulk Order Management API","Bulk Analysis API"],"summary":"Fetch workflow status by workflowId","description":"This endpoint returns the current status of a workflow execution (e.g., RUNNING, COMPLETED, FAILED)  identified by the given workflowId. The request must include workflowId as a path variable whose status is to be fetched. ","operationId":"getWorkflowStatus","parameters":[{"name":"X-Request-Id","in":"header","description":"The X-Request-Id header is optional but helpful for tracking requests. It acts as a unique identifier for troubleshooting and debugging issues effectively. Maximum length: 38 characters. Example: e02f00d5-e3a9-4fd6-aen1-3e5451abee46","schema":{"type":"string"},"example":"e02f00d5-e3a9-4fd6-aen1-3e5451abee46"},{"name":"workflowId","in":"path","description":"Unique workflow ID for which the workflow status is to be retrieved","required":true,"schema":{"type":"string"},"example":"606969c3-a570-495e-88b4-c34790b32201"}],"responses":{"200":{"description":"Successfully retrieved workflow status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowStatusResponse"},"example":{"status":"COMPLETED","downloadUrl":"https://dummy-bucket.s3.us-east-2.amazonaws.com/id/email/output/job-id/test_file.csv?X-Amz-Security-Token=DummySecurityToken123&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20250722T142259Z&X-Amz-SignedHeaders=host&X-Amz-Credential=DUMMYACCESSKEY%2F20250722%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Expires=600&X-Amz-Signature=dummysignature1234567890abcdef"}}}},"400":{"description":"Unable to retrieve workflow status","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"id":"124fe974-cc53-4722-861e-7f4bf582a5ec","errors":[{"code":"DIS-SFB-1007","detail":"Unable to retrieve workflow status"}]}}}},"401":{"description":"Unauthorized: Invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"id":"124fe974-cc53-4722-861e-7f4bf582a5ec","errors":[{"code":"DIS-1001","detail":"Unauthorized"}]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"id":"124fe974-cc53-4722-861e-7f4bf582a5ec","errors":[{"code":"DIS-1002","detail":"Not Authorized to access this API"}]}}}},"404":{"description":"Workflow ID not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"id":"124fe974-cc53-4722-861e-7f4bf582a5ec","errors":[{"code":"DIS-SFB-1006","detail":"Workflow ID not found"}]}}}},"429":{"description":"Too many requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"id":"124fe974-cc53-4722-861e-7f4bf582a5ec","errors":[{"code":"DIS-1005","detail":"Rate limit exceeded"}]}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"id":"124fe974-cc53-4722-861e-7f4bf582a5ec","errors":[{"code":"DIS-1003","detail":"Issue with internal services"}]}}}},"503":{"description":"Service Unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"id":"124fe974-cc53-4722-861e-7f4bf582a5ec","errors":[{"code":"DIS-1003","detail":"Issue with internal services"}]}}}}}}},"/v1/li/workflows/history":{"get":{"tags":["Bulk Routing API","Bulk Multipass API","Bulk Data Graph API","Bulk Order Management API","Bulk Analysis API"],"summary":"Lists Workflow Execution Summaries","description":"This endpoint returns a list of past and current workflow executions summaries (i.e., workflow history) for authenticated user","operationId":"listWorkflowHistory","parameters":[{"name":"X-Request-Id","in":"header","description":"The X-Request-Id header is optional but helpful for tracking requests. It acts as a unique identifier for troubleshooting and debugging issues effectively. Maximum length: 38 characters. Example: e02f00d5-e3a9-4fd6-aen1-3e5451abee46","schema":{"type":"string"},"example":"e02f00d5-e3a9-4fd6-aen1-3e5451abee46"}],"responses":{"200":{"description":"Successfully retrieved workflow execution history","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowHistoryResponse"},"example":{"workflows":[{"workflowId":"3e5a0973-d673-4cd3-ac2d-31840deeddbb","status":"COMPLETED","startTime":"2025-07-22T14:01:52.140582386Z","closeTime":"2025-07-22T14:03:39.796607481Z"},{"workflowId":"83f91950-15ca-4ed3-9da9-f43a30e91b26","status":"FAILED","startTime":"2025-07-22T11:33:49.061987993Z","closeTime":"2025-07-22T11:37:29.514942666Z"}]}}}},"400":{"description":"Unable to retrieve workflow status","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"id":"124fe974-cc53-4722-861e-7f4bf582a5ec","errors":[{"code":"DIS-SFB-1007","detail":"Unable to retrieve workflow status"}]}}}},"401":{"description":"Unauthorized: Invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"id":"124fe974-cc53-4722-861e-7f4bf582a5ec","errors":[{"code":"DIS-1001","detail":"Unauthorized"}]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"id":"124fe974-cc53-4722-861e-7f4bf582a5ec","errors":[{"code":"DIS-1002","detail":"Not Authorized to access this API"}]}}}},"404":{"description":"Workflow ID not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"id":"124fe974-cc53-4722-861e-7f4bf582a5ec","errors":[{"code":"DIS-SFB-1006","detail":"Workflow ID not found"}]}}}},"429":{"description":"Too many requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"id":"124fe974-cc53-4722-861e-7f4bf582a5ec","errors":[{"code":"DIS-1005","detail":"Rate limit exceeded"}]}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"id":"124fe974-cc53-4722-861e-7f4bf582a5ec","errors":[{"code":"DIS-1003","detail":"Issue with internal services"}]}}}},"503":{"description":"Service Unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"id":"124fe974-cc53-4722-861e-7f4bf582a5ec","errors":[{"code":"DIS-1003","detail":"Issue with internal services"}]}}}}}}},"/v1/li/files":{"get":{"tags":["Bulk Routing API","Bulk Multipass API","Bulk Data Graph API","Bulk Order Management API","Bulk Analysis API"],"summary":"Lists files uploaded by a user in S3","description":"This endpoint retrieves a list of files uploaded by the specified user. The response includes the fileName, fileId and uploadTime of each uploaded file. Files are ordered newest first; use limit to return only the latest N files. Set includeColumns=true to also return the header column names of each file (delimiter is auto-detected); this reads every file and is slower.","operationId":"listUploads","parameters":[{"name":"X-Request-Id","in":"header","description":"The X-Request-Id header is optional but helpful for tracking requests. It acts as a unique identifier for troubleshooting and debugging issues effectively. Maximum length: 38 characters. Example: e02f00d5-e3a9-4fd6-aen1-3e5451abee46","schema":{"type":"string"},"example":"e02f00d5-e3a9-4fd6-aen1-3e5451abee46"},{"name":"includeColumns","in":"query","description":"Include header column names for each file","required":false,"schema":{"type":"boolean","default":false},"example":false},{"name":"limit","in":"query","description":"Maximum number of files to return, newest first (e.g. 15). Returns all files when omitted","required":false,"schema":{"type":"integer","format":"int32"},"example":15}],"responses":{"200":{"description":"Successfully fetched list of uploaded files ( can be empty )","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadFileResultWrapper"},"example":{"results":[{"fileId":"2d6f5ef1-ccbb-41c9-984c-9d372ba98cc8","fileName":"qa_test999234","uploadTime":"2025-07-22T14:01:52.140582386Z"},{"fileId":"44c5cd47-d157-4c10-93de-28eb760ae9f1","fileName":"test_200","uploadTime":"2025-07-22T14:03:10.512310004Z"}]}}}},"401":{"description":"Unauthorized: Invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"id":"124fe974-cc53-4722-861e-7f4bf582a5ec","errors":[{"code":"DIS-1001","detail":"Unauthorized"}]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"id":"124fe974-cc53-4722-861e-7f4bf582a5ec","errors":[{"code":"DIS-1002","detail":"Not Authorized to access this API"}]}}}},"429":{"description":"Too many requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"id":"124fe974-cc53-4722-861e-7f4bf582a5ec","errors":[{"code":"DIS-1005","detail":"Rate limit exceeded"}]}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"id":"124fe974-cc53-4722-861e-7f4bf582a5ec","errors":[{"code":"DIS-1003","detail":"Issue with internal services"}]}}}},"503":{"description":"Service Unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"id":"124fe974-cc53-4722-861e-7f4bf582a5ec","errors":[{"code":"DIS-1003","detail":"Issue with internal services"}]}}}}}}},"/v1/li/files/{fileId}":{"delete":{"tags":["Bulk Routing API","Bulk Multipass API","Bulk Data Graph API","Bulk Order Management API","Bulk Analysis API"],"summary":"Deletes a file corresponding to given fileId in S3","description":"This endpoint deletes a file corresponding to given fileId by the specified user. The fileId is provided in the path variable. If the fileId is invalid or the file does not exist, an error response will be returned. The response includes status of the deletion operation and detailed message and indicates whether the deletion was successful or not.","operationId":"deleteUploads","parameters":[{"name":"X-Request-Id","in":"header","description":"The X-Request-Id header is optional but helpful for tracking requests. It acts as a unique identifier for troubleshooting and debugging issues effectively. Maximum length: 38 characters. Example: e02f00d5-e3a9-4fd6-aen1-3e5451abee46","schema":{"type":"string"},"example":"e02f00d5-e3a9-4fd6-aen1-3e5451abee46"},{"name":"fileId","in":"path","description":"ID of the file to be deleted","required":true,"schema":{"type":"string"},"example":"54a8b051-6381-4bf8-b88a-d4f7f3fb121a"}],"responses":{"200":{"description":"File deletion success or failure","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteUploadResponse"},"example":{"status":"SUCCESS","message":"File Deleted Successfully"}}}},"400":{"description":"Invalid File Id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"id":"124fe974-cc53-4722-861e-7f4bf582a5ec","errors":[{"code":"DIS-SFB-1004","detail":"Invalid File Id"}]}}}},"401":{"description":"Unauthorized: Invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"id":"124fe974-cc53-4722-861e-7f4bf582a5ec","errors":[{"code":"DIS-1001","detail":"Unauthorized"}]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"id":"124fe974-cc53-4722-861e-7f4bf582a5ec","errors":[{"code":"DIS-1002","detail":"Not Authorized to access this API"}]}}}},"429":{"description":"Too many requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"id":"124fe974-cc53-4722-861e-7f4bf582a5ec","errors":[{"code":"DIS-1005","detail":"Rate limit exceeded"}]}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"id":"124fe974-cc53-4722-861e-7f4bf582a5ec","errors":[{"code":"DIS-1003","detail":"Issue with internal services"}]}}}},"503":{"description":"Service Unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"id":"124fe974-cc53-4722-861e-7f4bf582a5ec","errors":[{"code":"DIS-1003","detail":"Issue with internal services"}]}}}}}}}},"components":{"schemas":{"BulkOperationRequest":{"type":"object","properties":{"operation":{"type":"string","description":"Name of the bulk operations such as SEARCH_NEAREST, SEARCH_AT_LOCATION, OVERLAPS, SUMMARIZE, DATA_GRAPH_GET_BY_ID, DATA_GRAPH_GET_BY_ADDRESS, DATA_GRAPH_GET_BY_SPATIAL, MULTIPASS, TRAVEL_BOUNDARY and ORDER_EXTRACTOR","enum":["SEARCH_NEAREST","SEARCH_AT_LOCATION","OVERLAPS","SUMMARIZE","DATA_GRAPH_GET_BY_ID","DATA_GRAPH_GET_BY_ADDRESS","DATA_GRAPH_GET_BY_SPATIAL","MULTIPASS","ORDER_EXTRACTOR","OTHER","TRAVEL_BOUNDARY"],"example":"SEARCH_NEAREST"},"payload":{"$ref":"#/components/schemas/JsonNode","description":" The necessary payload for the bulk operation to perform","example":{"payload":{"fileId":"82390015-19b2-40bd-8f00-e3d705af9885","tableName":"/precisely/riskdata/flr_usa_comm","geometryFormat":"WKT","delimiter":",","distanceAttributeName":"dist","withinDistance":"10 mi","maxFeatures":1,"attributes":["statecode","type","mapname"],"limit":100,"sortOrder":"ASC"}}}},"required":["operation","payload"]},"JsonNode":{"type":"object"},"WorkflowSubmitResponse":{"type":"object","description":"Response containing the URI to check the status of the submitted workflow.","properties":{"statusUrl":{"type":"string","format":"uri","description":"URI endpoint to poll for the workflow status.","example":"http://localhost:8080/api/workflows/status/sample-workflow-id"}}},"ErrorDetail":{"type":"object","description":"Error details","properties":{"code":{"type":"string","description":"A unique code representing the specific error","example":"DIS-1001"},"detail":{"type":"string","description":"A detailed message describing the error.","example":"Unauthorized"}},"required":["detail"]},"ErrorResponse":{"type":"object","description":"Error response returned from the api","properties":{"id":{"type":"string","description":"Unique identifier for the error","example":"ad45c1aded938181a05f256e5a1b594d"},"errors":{"type":"array","description":"List of error details","items":{"$ref":"#/components/schemas/ErrorDetail"}}}},"BulkOrderRequest":{"type":"object","properties":{"fileId":{"type":"string","minLength":1},"requestType":{"type":"string","enum":["INSURANCE","TELCOM","UTILITIES","RETAIL_OUTDOOR","REAL_ESTATE","PhotoPackage1"]},"customerUseCase":{"type":"string","minLength":1}},"required":["requestType"]},"UploadUrlRequest":{"type":"object","properties":{"fileName":{"type":"string","description":"Name of the file to upload","example":"test_file","minLength":1}}},"UploadUrlResponse":{"type":"object","description":"Upload url response","properties":{"fileId":{"type":"string","description":"file Id for uploading file","example":"8d907c8c-5b63-417f-b69f-2d33dbdd2fcd"},"url":{"type":"string","format":"url","description":"pre signed url for uploading the file on S3","example":"https://us-east-1-test.s3.us-east-1.amazonaws.com/test/test_user_1%40precisely.com/input/test_new%3A%3A8d907c8c-5b63-417f-b69f-2d33dbdd2fcd%0A"},"message":{"type":"string","description":"message for the response","example":"This download URL will be valid for the next 10 mins."}},"required":["fileId","message","url"]},"DatasetDownloadUrl":{"type":"object","properties":{"datasetName":{"type":"string"},"downloadUrl":{"type":"string"}}},"WorkflowStatusResponse":{"type":"object","properties":{"status":{"type":"string","description":"Current status of the workflow","enum":["SCHEDULED","RUNNING","COMPLETED","FAILED","CANCELED","TERMINATED","CONTINUED_AS_NEW","TIMED_OUT","UNKNOWN"],"example":"COMPLETED"},"progress":{"type":"integer","format":"int64","description":"Percentage of the workflow completed so far (0-100). May be null if progress has not been reported yet.","example":42},"orderId":{"type":"string","description":"OrderID generated for the respective workflow","example":"fly-213-fun"},"downloadUrl":{"type":"string","description":"Pre-signed S3 download URL for the output file. Available only when the workflow is COMPLETED.","example":"https://s3.amazonaws.com/bucket-name/output/file-123.csv"},"downloadUrls":{"type":"array","description":"List of pre-signed download URLs for files in each dataset folder. Available only when workflow is COMPLETED and folders exist.","items":{"$ref":"#/components/schemas/DatasetDownloadUrl"}},"error":{"$ref":"#/components/schemas/ErrorDetail","description":"Failure code and detail from the failed workflow execution. Available only when the workflow is FAILED."},"rowCount":{"type":"integer","format":"int64","description":"Total number of rows processed by the workflow. Available only when the workflow is COMPLETED and the worker has reported it.","example":10000}}},"WorkflowExecutionSummary":{"type":"object","properties":{"workflowId":{"type":"string","description":"Unique identifier for the workflow execution","example":"workflow-12345"},"status":{"type":"string","description":"The current status of the workflow","enum":["SCHEDULED","RUNNING","COMPLETED","FAILED","CANCELED","TERMINATED","CONTINUED_AS_NEW","TIMED_OUT","UNKNOWN"],"example":"RUNNING"},"startTime":{"type":"string","format":"date-time","description":"The start time of the workflow execution","example":"2025-05-01T10:15:30Z"},"closeTime":{"type":"string","format":"date-time","description":"The close time of the workflow execution. Null if the workflow is still running","example":"2025-05-01T10:45:30Z"},"fileId":{"type":"string","description":"Identifier of the file associated with the workflow","example":"file-12345"},"fileName":{"type":"string","description":"Name of the file associated with the workflow","example":"input.csv"},"operation":{"type":"string","description":"The bulk operation type performed by the workflow","example":"GEOCODE"},"flowId":{"type":"string","description":"Identifier of the Multipass flow executed by the workflow. Present only for MULTIPASS operations","example":"us-geocode-v2"}}},"WorkflowHistoryResponse":{"type":"object","properties":{"workflows":{"type":"array","items":{"$ref":"#/components/schemas/WorkflowExecutionSummary"}}}},"UploadFileResult":{"type":"object","description":"Result of a file upload operation to S3.","properties":{"fileId":{"type":"string","description":"Unique identifier of the uploaded file","example":"23f9a0cb-7c30-4e9c-89f6-6fcac5aebc65"},"fileName":{"type":"string","description":"Original name of the uploaded file","example":"customer_data.csv"},"uploadTime":{"type":"string","format":"date-time","description":"Time the file was uploaded to S3","example":"2026-09-23T10:15:30Z"},"columns":{"type":"array","description":"Header column names of the file. Present only when includeColumns=true and the header could be read","example":["InputId","Address","City"],"items":{"type":"string"}}}},"UploadFileResultWrapper":{"type":"object","description":"Wrapper object for a list of file upload results.","properties":{"results":{"type":"array","description":"List of results for each uploaded file","example":[{"fileId":"9c5d26e0-0f92-4b48-b58d-cfd91e3d9b8d","fileName":"customer_data.csv"},{"fileId":"8f2e01a4-d3c9-4a89-b11b-056c184d8b60","fileName":"sales_data.csv"}],"items":{"$ref":"#/components/schemas/UploadFileResult"}}}},"DeleteUploadResponse":{"type":"object","description":"Response indicating result of deleting a file from S3","properties":{"status":{"type":"string","description":"Status of the deletion operation","enum":["SUCCESS","FAILURE"],"example":"SUCCESS"},"message":{"type":"string","description":"Detailed message about the operation result","example":"File Deleted Successfully"}}}},"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","description":"Pass the value in the following format: Apikey <base64(api_key:api_secret)>.","name":"Authorization","in":"header","scheme":"ApiKeyAuth"},"bearerAuth":{"type":"http","description":"Pass the value as JWT Bearer Token.","name":"bearerAuth","in":"header","scheme":"bearer","bearerFormat":"JWT"}}}}