Bankruptcy Search
Verified against source (31)
qbo4.ContactServices.QBS.WebApi/readme.mdqbo4.ContactServices.QBS.WebApi/appsettings.jsonControllers/InstantSearchController.csControllers/BatchSearchController.csControllers/RegionalSearchController.csControllers/DocketSearchController.csControllers/DocumentSearchController.csFilters/EnumSchemaFilter.csqbo4.ContactServices.QBS.Models/BankruptcyInstantRequest.csqbo4.ContactServices.QBS.Models/BankruptcyInstantResponse.csqbo4.ContactServices.QBS.Models/BankruptcySearchRequest.csqbo4.ContactServices.QBS.Models/BankruptcySearchResponse.csqbo4.ContactServices.QBS.Models/BankruptcySearchContact.csqbo4.ContactServices.QBS.Models/BankruptcyProductContact.csqbo4.ContactServices.QBS.Models/BankruptcySearchOptions.csqbo4.ContactServices.QBS.Models/InstantSearchOptions.csqbo4.ContactServices.QBS.Models/BankruptcyRequestAcknowledgement.csqbo4.ContactServices.QBS.Models/BankruptcySearchProductRequest.csqbo4.ContactServices.QBS.Models/PopMessage.csqbo4.ContactServices.QBS.Models/RegionalSearchRequest.csqbo4.ContactServices.QBS.Models/DocketSearchRequest.csqbo4.ContactServices.QBS.Models/DocumentSearchRequest.csqbo4.ContactServices.QBS.Models/Bankruptcy.csqbo4.ContactServices.QBS.Models/Docket.csqbo4.ContactServices.QBS.Models/BillingItem.csqbo4.ContactServices.QBS.Models/ImportException.csqbo4.ContactServices.QBS.Models/USSSNRequiresLastNameAttribute.csqbo4.ContactServices.QBS.Pacer.SearchProvider/PacerSearchProvider.csControllers/DebtorMonitorController.csqbo4.ContactServices.Models/Bankruptcy.csqbo4.ContactServices.Models/PopParameters.cs
The Bankruptcy Search API searches PACER for bankruptcy filings. It is a REST API with JSON bodies over HTTPS, documented by an OpenAPI specification with annotated models.
Quandis provides your host name (for example, uatservices.quandis.io for testing) and an API key, plus a Postman environment with ApiKey and HostName variables. Keys for testing and production are separate.
Check current API availability on the Quandis status page ↗.
Endpoints
Section titled “Endpoints”| Verb | Path | Purpose |
|---|---|---|
POST |
/api/bankruptcy/instant |
National search for one person or company; results in the response |
GET |
/api/bankruptcy/instant/{id} |
Retrieve an instant search by Quandis order ID |
POST |
/api/bankruptcy/search |
Submit a batch order |
GET |
/api/bankruptcy/search/{id} |
Retrieve a batch order’s results by order ID |
GET |
/api/bankruptcy/search/pop |
Pick up recently completed batch orders |
POST |
/api/bankruptcy/regional |
Case summary from the bankruptcy court, for one case |
GET |
/api/bankruptcy/regional/{id} |
Retrieve a case summary by order ID |
POST |
/api/bankruptcy/dockets |
Docket entries for one case |
GET |
/api/bankruptcy/dockets/{id} |
Retrieve a docket search by order ID |
POST |
/api/bankruptcy/documents |
Download a filed document |
GET |
/api/bankruptcy/documents/{id} |
Retrieve a document search by order ID |
GET |
/api/bankruptcy/instant/healthcheck |
Service health (no authentication) |
The GET …/{id} operations return 204 when there is nothing for that ID.
Authenticate
Section titled “Authenticate”Send your API key in the X-ApiKey header on every request. Requests over HTTP are redirected to HTTPS.
POST /api/bankruptcy/instantX-ApiKey: {apiKey}Content-Type: application/jsonInstant search
Section titled “Instant search”POST /api/bankruptcy/instantX-ApiKey: {apiKey}Content-Type: application/json
{ "clientID": "LN-1001", "options": { "filingDateStart": "2020-01-01" }, "contact": { "contactID": "C-1", "firstName": "Jane", "lastName": "Example", "usssn": "123456788", "userDefined": [ { "name": "SourceReferenceNumber", "value": "LN-1001" } ] }}Contact fields
Section titled “Contact fields”| Field | Type | Notes |
|---|---|---|
contactType |
enum | Party (a person) or Corporation. |
firstName, middleName, lastName |
string | Up to 40 characters each. |
company |
string | Company name, up to 40 characters. |
usssn |
string | Full SSN: 123456789 or 123-45-6789. Requires lastName (or company). |
usssN4 |
string | Last four digits of the SSN, searched with the name. |
ein |
string | Employer identification number, for company searches. |
address, city, state, postalCode |
state is a two-letter code; postalCode is 12345 or 12345-6789. |
|
contactID |
string | Your identifier for the contact, returned in the response. |
userDefined |
array | name (up to 50 characters) and value pairs, returned with the results. |
The search type follows from what you send: a full SSN searches by SSN; the last four searches by SSN4 and name; a name alone searches by name.
Instant options
Section titled “Instant options”| Field | Notes |
|---|---|
filingDateStart, filingDateEnd |
Only cases filed in this range. |
closedDateStart, closedDateEnd |
Only cases closed in this range. |
dismissedDateStart, dismissedDateEnd |
Only cases dismissed in this range. |
dischargedDateStart, dischargedDateEnd |
Only cases discharged in this range. |
partyRoleCodes |
Comma-separated PACER party role codes. Applies to name-only searches. |
exactMatchesOnly |
Return exact name matches only. |
matchEmptyFirstMiddleNames |
With exactMatchesOnly, also match cases where the first or middle name is blank. |
Dates can’t be in the future.
Response
Section titled “Response”{ "clientID": "LN-1001", "id": 900001, "contact": { "firstName": "Jane", "lastName": "Example", "usssN4": "6788", "billingItem": [ { "item": "PCL Charges", "description": "All Court Types Party Search; …", "unitFee": 0.1, "unitAmount": 1 } ], "bankruptcies": [ { "bkCaseNo": "1:26-bk-00001", "chapter": "7", "court": "Example Bankruptcy Court", "courtCode": "…", "stateOfFiling": "XX", "filingDate": "2026-02-15T00:00:00", "disposition": "…", "dateClosed": null, "caseUrl": "https://…" } ], "messages": [] }, "documents": [ { "name": "….pdf", "mimeType": "pdf", "content": "{base64}" } ]}| Field | Meaning |
|---|---|
id |
Quandis order ID. |
contact.bankruptcies[] |
One entry per case. Empty or missing when PACER found no case. |
contact.billingItem[] |
PACER charges the search incurred: item, description, unitFee, unitAmount, transactionDate. |
contact.messages[] |
Notes about the search, such as a threshold being reached. |
documents[] |
Images of the PACER screens, base64-encoded. |
Bankruptcy fields
Section titled “Bankruptcy fields”| Field | Meaning |
|---|---|
bkCaseNo, regionalBKCaseNo |
Case number at the national locator and at the court. |
chapter, caseType |
Chapter and case type. |
court, courtCode, stateOfFiling |
Where the case was filed. |
filingDate, dateOfLastFiling |
Petition date, and the latest filing on the case. |
disposition, status, closedReason, dateClosed, terminatedDate |
How and when the case ended. |
dischargedDate, dismissedDate, convertedDate, reopenedDate, transferredDate |
Case events. |
jointDischargedDate, jointDismissedDate |
The same events for a joint debtor. |
confirmationHearingDate, planConfirmedDate |
Plan dates. |
caseUrl |
The case at its court. Send it to the case summary, docket, and document operations. |
contacts[] |
Attorney, trustee, and other parties, each with a type and contact methods (phone, email, fax). |
dockets[] |
When requested: sequence, filingDate, text, documentUrl. |
Case summary fields (events, attorney, trustee) are filled only when the case summary was retrieved.
Case summary, dockets, and documents
Section titled “Case summary, dockets, and documents”These operations act on one case found by an earlier search.
POST /api/bankruptcy/docketsX-ApiKey: {apiKey}Content-Type: application/json
{ "clientID": "LN-1001", "caseUrl": "https://…", "fileDateStart": "2026-01-01"}| Operation | Request | Returns |
|---|---|---|
regional |
clientID, caseUrl (required) |
bankruptcy with the case summary fields, documents, billing |
dockets |
clientID, caseUrl; optional fileDateStart, fileDateEnd, documentRangeStart, documentRangeEnd |
dockets[], documents (the docket page image), billing |
documents |
clientID, documentUrl (required); allowMultipleDocumentDownload, mergeDocuments (both default true) |
documents[] (base64 PDFs), billing |
Batch orders
Section titled “Batch orders”Submit many contacts, with options for search depth, thresholds, and image packages. Option meanings are in the Power user view.
POST /api/bankruptcy/searchX-ApiKey: {apiKey}Content-Type: application/json
{ "clientID": "FILE-2026-10-01", "options": { "regionalSearch": "OpenCasesOnly", "docketSearch": "OpenCasesOnly", "bankruptcyThreshold": 5, "contactSearch": false, "includeAP": false, "productDelivery": "Pickup", "imagePackages": [ { "name": "System of record", "settings": { "includeScreenShot": true, "imageGroup": "Contact", "screenshotMask": "Partial" } } ] }, "contacts": [ { "contactID": "C-1", "firstName": "Jane", "lastName": "Example", "usssn": "123456788" }, { "contactID": "C-2", "contactType": "Corporation", "company": "Example Holdings LLC", "ein": "000000000" } ]}| Option | Values |
|---|---|
nationalSearch |
Default true. |
regionalSearch, docketSearch, regionalRefresh |
Never, Always, OpenCasesOnly, NewestFile, OldestFiled |
docketSearchOpenedDateAge, docketSearchClosedDateAge |
1–10 |
bankruptcyThreshold, contactThreshold |
1–10, default 5 |
contactSearch |
Skip-trace contacts without an SSN (needs full name and address). |
includeAP |
Include adversary proceedings in follow-on searches. |
productDelivery |
Pickup (default), or Deliver to post results to your productEndpoint. Other delivery methods are set up with Quandis. |
partyRoleCodes, date range filters |
As for instant search. |
imagePackages[] |
name and settings; see PACER image packages. |
userDefined[] |
Name and value pairs for the order. |
The order is acknowledged with 201 Created:
{ "id": 900002, "clientID": "FILE-2026-10-01", "exceptions": [] }A 400 acknowledgement lists exceptions, each with a type, severity, and message.
Pick up results
Section titled “Pick up results”GET /api/bankruptcy/search/pop?count=10&payloadType=ContentX-ApiKey: {apiKey}| Parameter | Notes |
|---|---|
count |
How many completed orders to return. Default 1. |
payloadType |
Content (default) returns each order’s results; ResourceUrn returns a reference to retrieve them. |
Each item has a messageID, a resourceUrn, and content: the order’s results, with its id, clientID, status, contacts (each with bankruptcies, billingItem, and messages), documents, and skiptraceAliases (how many aliases a skip-trace generated). 204 means nothing is waiting. You can also fetch any order by ID with GET /api/bankruptcy/search/{id}.
Monitoring
Section titled “Monitoring”Monitoring is part of the same service, with its own operations:
- Add an account to the default list or a named list, keyed by your account reference, with the debtor’s name, company, address, and SSN. The response status is
Created, orAlreadyExists(HTTP208) if the account is already on that list. - Remove an account from the default list or a named list.
- Get an account’s data: every bankruptcy found for it, with dockets. Monitored cases add the 341 meeting date, time, and location, the proof of claim bar date, the discharge complaint bar date, and the reinstated date.
- Collect changes: separate feeds for new or changed bankruptcies and dockets, filtered by list, with the same
countandpayloadTypeparameters as batch pickup.
Paths for the monitoring operations are in the API reference Quandis provides with your key.
Status codes
Section titled “Status codes”| Code | When |
|---|---|
200 |
Search complete. Check bankruptcies for results. |
201 |
Batch order accepted. |
204 |
Nothing found for that ID, or nothing waiting to pick up. |
400 |
The request failed validation, for example a full SSN without a last name, or a future date. |
401 |
Missing, malformed, or invalid API key. |
408 |
The instant search timed out. |
429 |
Rate or usage limit reached for your key. Retry later. |
500 |
The search failed. |
The health check returns 200 when the service and the PACER sites it monitors are healthy, and 503 when not. Errors are returned in the JSON body under error.