# How to Track eSignature Document Status

If you need to monitor documents based on their status, BoldSign provides a `List` API that allows you to retrieve a list of documents based on their status. BoldSign offers various statuses to classify the progress of a document. These statuses include:

1. `Waiting for me` - The document sent to you is pending, and you still need to sign it.
2. `Waiting for others` - The document has been sent to multiple recipients for review and signature, and one or more still needs to sign the document.
3. `Needs attention` - Documents that failed to deliver because of an invalid email address and require further attention or action.
4. `Completed` - All the recipients have completed the signing process.
5. `Declined` - One or more document recipients have chosen not to sign it.
6. `Revoked` - The document’s sender has chosen to recall or cancel it.
7. `Expired` - The signer didn’t sign the document before the deadline.

Here are code examples in various programming languages demonstrating how to use the API:

## Code snippet

{% codetab %}

cURL

```shell 
curl -X 'GET' \ 'https://api.boldsign.com/v1/document/list?PageSize=10&Page=1&Status={Status of the document}' \
     -H 'accept: application/json' \
     -H 'X-API-KEY: {your-api-key}'
```

C#

```csharp
var apiClient = new ApiClient("https://api.boldsign.com", "{your API key}");
var documentClient = new DocumentClient(apiClient);
var documents = documentClient.ListDocuments(1, 10, status: new List<Status> { Status.Revoked });
```

Python

```python
import boldsign

configuration = boldsign.Configuration(host = "https://api.boldsign.com", api_key = "YOUR_API_KEY")

with boldsign.ApiClient(configuration) as api_client:

    document_api = boldsign.DocumentApi(api_client)

    document_list = document_api.list_documents(
        page_size = 10,
        page = 1,
        status = ["Completed"]
    )
```

PHP

```php
<?php require_once "vendor/autoload.php";

use BoldSign\Configuration;
use BoldSign\Api\DocumentApi;

$config = new Configuration();
$config->setHost("https://api.boldsign.com");
$config->setApiKey('YOUR_API_KEY');

$document_api = new DocumentApi($config);

$document_list = $document_api->listDocuments($page = 1, $page_size = 10, ['Completed']);
```

Java

```java
ApiClient client = Configuration.getDefaultApiClient();
client.setBasePath("https://api.boldsign.com");
client.setApiKey("YOUR_API_KEY");

DocumentApi documentApi = new DocumentApi(client);

int page = 1;
int pageSize = 10;
List<String> status = Arrays.asList("Completed");

DocumentRecords documentList = documentApi.listDocuments(page, null, null, null, pageSize, null, status, null, null, null, null, null);
```

NodeJS

```js
import { DocumentApi } from "boldsign";

const documentApi = new DocumentApi("https://api.boldsign.com");
documentApi.setApiKey("YOUR_API_KEY");

const documentList = documentApi.listDocuments(1, undefined, undefined, undefined, undefined, 10, undefined, ["Completed"]);
```

{% /codetab %}

In the provided examples, replace `Status` with the specific status you want to track documents for. After executing the relevant code snippet, you'll retrieve information about documents based on the specified status. 
