# Inbox Endpoint

{% hint style="success" %}
Added in version 2.3.
{% endhint %}

{% hint style="warning" %}
**Developer Preview**\
The ESS Wallet Service endpoints are available as part of a Developer Preview program to allow early access to these features. Please be aware that these APIs may change.
{% endhint %}

The ESS Wallet Service provides the following endpoint for interacting with resources stored in the Wallet inbox:

```none
https://datawallet.{ESS Domain}/inbox
```

{% hint style="info" %}
**Note**\
To access the **`/inbox`** endpoint, users must be authenticated. The endpoint supports the use of HTTP-only, secure session cookies.
{% endhint %}

## List Inbox Items

The Wallet Service provides an endpoint to list all of the items currently stored in the inbox of the Wallet.

<table data-header-hidden><thead><tr><th width="160.8359375"></th><th></th></tr></thead><tbody><tr><td>Method</td><td><strong><code>GET</code></strong></td></tr><tr><td>Content-Type</td><td><strong><code>application/json</code></strong></td></tr><tr><td>Endpoint</td><td><strong><code>https://datawallet.{ESS Domain}/inbox</code></strong></td></tr><tr><td>Payload</td><td>none</td></tr></tbody></table>

### Output

Returns an array of inbox items.

**Example response**

```json
[
  {
    "uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "identifier": "https://example.com/",
    "webId": "https://id.{DOMAIN}/{username}",
    "resource": "https://storage.example/data/MyResource",
    "resourceName": "MyResource",
    "forPurpose": "https://example.com/",
    "expirationDate": "2024-07-19T09:18:52.233Z",
    "issuedDate": "2024-07-19T09:18:52.233Z",
    "modes": [
      "read"
    ],
    "logo": "https://images.example/logo.png",
    "ownerName": "Example Name",
    "isRDFResource": true
  }
]
```

The fields have the following values:

<table><thead><tr><th width="160.8671875">Field</th><th>Value</th></tr></thead><tbody><tr><td><strong><code>uuid</code></strong></td><td>A unique identifier of this inbox item.</td></tr><tr><td><strong><code>identifier</code></strong></td><td>The URI identifying the inbox item.</td></tr><tr><td><strong><code>webId</code></strong></td><td>The WebID of the party requesting access to a resource.</td></tr><tr><td><strong><code>resource</code></strong></td><td>The URI of the resource within the Wallet to which access has been requested.</td></tr><tr><td><strong><code>resourceName</code></strong></td><td>The short-name of the resource within the Wallet to which access has been requested, without the hostname and parent path.</td></tr><tr><td><strong><code>forPurpose</code></strong></td><td>The URI of the document describing the purpose of this Access Request.</td></tr><tr><td><strong><code>expirationDate</code></strong></td><td>The expiration date of the Access Request in ISO-8601 format.</td></tr><tr><td><strong><code>issuedDate</code></strong></td><td>The date of issuance of the Access Request in ISO-8601 format.</td></tr><tr><td><strong><code>modes</code></strong></td><td>The modes of access that will be granted if this access request is approved (e.g. <strong><code>read</code></strong>, <strong><code>write</code></strong>, <strong><code>append</code></strong>).</td></tr><tr><td><strong><code>logo</code></strong></td><td>A URI identifying a logo to associate with the party requesting access to a resource (for display within the Wallet user interface).</td></tr><tr><td><strong><code>ownerName</code></strong></td><td>The name of the party requesting access to a resource, if available.</td></tr><tr><td><strong><code>webId</code></strong></td><td>The WebID of the party requesting access to a resource.</td></tr><tr><td><strong><code>isRDFResource</code></strong></td><td>Boolean value indicating whether this resource contains RDF data.</td></tr></tbody></table>

## Read Inbox Item

The Wallet Service provides an endpoint to get the content of an inbox item.

<table data-header-hidden><thead><tr><th width="157.8046875"></th><th></th></tr></thead><tbody><tr><td>Method</td><td><strong><code>GET</code></strong></td></tr><tr><td>Content-Type</td><td><strong><code>*/*</code></strong></td></tr><tr><td>Endpoint</td><td><strong><code>https://datawallet.{ESS Domain}/inbox/{uuid}</code></strong></td></tr><tr><td>Payload</td><td>none</td></tr></tbody></table>

### Input

<table><thead><tr><th width="162.046875">Path Parameter</th><th>Value</th></tr></thead><tbody><tr><td><strong><code>uuid</code></strong></td><td>The UUID of the inbox item to read.</td></tr></tbody></table>

### Output

The content of the inbox item.

## Delete Inbox Item

The Wallet Service provides an endpoint to delete an inbox item.

<table data-header-hidden><thead><tr><th width="160.39453125"></th><th></th></tr></thead><tbody><tr><td>Method</td><td><strong><code>DELETE</code></strong></td></tr><tr><td>Content-Type</td><td><strong><code>application/json</code></strong></td></tr><tr><td>Endpoint</td><td><strong><code>https://datawallet.{ESS Domain}/inbox/{identifier}</code></strong></td></tr><tr><td>Payload</td><td>none</td></tr></tbody></table>

### Input

<table><thead><tr><th width="160.8984375">Path Parameter</th><th>Value</th></tr></thead><tbody><tr><td><strong><code>uuid</code></strong></td><td>The UUID of the inbox item to be deleted.</td></tr></tbody></table>

### Output

Upon completion, a status message is returned.

**Example response**

```json
{
    "message": "success"
}
```

The fields have the following values:

<table><thead><tr><th width="159.5390625">Field</th><th>Value</th></tr></thead><tbody><tr><td><strong><code>message</code></strong></td><td>A successful operation includes the string “success”.</td></tr><tr><td><strong><code>error</code></strong></td><td>An unsuccessful operation describes the failure category, such as “UNAUTHORIZED”.</td></tr></tbody></table>

## Verify Access Request

The Wallet Service provides an endpoint to verify that an Access Request within the inbox is valid and passes the [verification checks described by the Access Grant Service](/ess/2.4/services/service-access-grant/service-access-grant-verifier.md) .

<table data-header-hidden><thead><tr><th width="159.64453125"></th><th></th></tr></thead><tbody><tr><td>Method</td><td><strong><code>GET</code></strong></td></tr><tr><td>Content-Type</td><td><strong><code>application/json</code></strong></td></tr><tr><td>Endpoint</td><td><strong><code>https://datawallet.{ESS Domain}/inbox/{uuid}/verify</code></strong></td></tr><tr><td>Payload</td><td>none</td></tr></tbody></table>

### Input

<table><thead><tr><th width="160.80859375">Path Parameter</th><th>Value</th></tr></thead><tbody><tr><td><strong><code>uuid</code></strong></td><td>The UUID of the inbox item to be verified.</td></tr></tbody></table>

### Output

Upon completion, the verification results are returned.

**Example Response**

```json
{
  "identifier": "https://credential.example/{uuid}",
  "detail": {
    "checks": [
      "string"
    ],
    "warnings": [
      "string"
    ],
    "errors": [
      "string"
    ]
  },
  "status": "Invalid"
}
```

<table><thead><tr><th width="159.7421875">Field</th><th>Value</th></tr></thead><tbody><tr><td><strong><code>checks</code></strong></td><td>Lists the checks performed during verification.</td></tr><tr><td><strong><code>warnings</code></strong></td><td>Lists any warnings that occurred during verification.</td></tr><tr><td><strong><code>errors</code></strong></td><td>Lists any errors that occurred during verification.</td></tr><tr><td><strong><code>status</code></strong></td><td>The status of the verification, either <strong><code>Valid</code></strong> or <strong><code>Invalid</code></strong>.</td></tr></tbody></table>

## Grant Access Request

The Wallet Service provides an endpoint to generate an Access Grant based on an inbox Access Request.

<table data-header-hidden><thead><tr><th width="160.015625"></th><th></th></tr></thead><tbody><tr><td>Method</td><td><strong><code>PUT</code></strong></td></tr><tr><td>Content-Type</td><td><strong><code>application/json</code></strong></td></tr><tr><td>Endpoint</td><td><strong><code>https://datawallet.{ESS Domain}/inbox/{uuid}/grantAccess</code></strong></td></tr><tr><td>Payload</td><td>none</td></tr></tbody></table>

### Input

<table><thead><tr><th width="159.8828125">Path Parameter</th><th>Value</th></tr></thead><tbody><tr><td><strong><code>uuid</code></strong></td><td>The UUID of the inbox item to be used to generate an Access Grant.</td></tr></tbody></table>

### Output

Upon completion a description of the new Access Grant is returned that can be used to display the Grant within the Wallet user interface.

**Example Response**

```json
{
  "uuid": "fc2f50db-bdb3-43d7-b194-9868512d2459",
  "identifier": "https://accessgrant.example/b7e42e71-8a67-44e8-b3da-fe2a778a9e28",
  "webId": "https://id.example/agent",
  "resource": "https://storage.example/data/MyResource",
  "resourceName": "MyResource",
  "forPurpose": "https://example.com/",
  "expirationDate": "2024-07-19T10:45:24.138Z",
  "issuedDate": "2024-07-19T10:45:24.138Z",
  "modes": [
    "read"
  ],
  "logo": "https://images.example/logo.png",
  "ownerName": "Example Name",
  "isRDFResource": true
}
```

The fields have the following values:

<table><thead><tr><th width="161.7265625">Field</th><th>Value</th></tr></thead><tbody><tr><td><strong><code>uuid</code></strong></td><td>The unique identifier of this inbox resource.</td></tr><tr><td><strong><code>identifier</code></strong></td><td>An identifier of the Access Grant.</td></tr><tr><td><strong><code>webId</code></strong></td><td>The WebID of the party granted access to a resource.</td></tr><tr><td><strong><code>resource</code></strong></td><td>The URI of the resource to which access has been granted.</td></tr><tr><td><strong><code>resourceName</code></strong></td><td>A short name of the resource to which access has been granted.</td></tr><tr><td><strong><code>forPurpose</code></strong></td><td>The URI of the document describing the purpose of this Access Grant.</td></tr><tr><td><strong><code>expirationDate</code></strong></td><td>The expiration of the Access Grant in ISO-8601 format.</td></tr><tr><td><strong><code>issuedDate</code></strong></td><td>The date of issuance of the Access Grant in ISO-8601 format.</td></tr><tr><td><strong><code>modes</code></strong></td><td>The modes of access granted (e.g. <strong><code>read</code></strong>, <strong><code>write</code></strong>, <strong><code>append</code></strong>).</td></tr><tr><td><strong><code>logo</code></strong></td><td>A URI identifying a logo to associate with the party granted access to a resource (for display within the Wallet user interface).</td></tr><tr><td><strong><code>ownerName</code></strong></td><td>The name of the party granted access to a resource, if available.</td></tr><tr><td><strong><code>isRDFResource</code></strong></td><td>Boolean value indicating whether the resource contains RDF data.</td></tr></tbody></table>

## Deny Access Request

The Wallet Service provides an endpoint to deny an Access Request that has been added to the inbox.

<table data-header-hidden><thead><tr><th width="160.38671875"></th><th></th></tr></thead><tbody><tr><td>Method</td><td><strong><code>PUT</code></strong></td></tr><tr><td>Content-Type</td><td><strong><code>application/json</code></strong></td></tr><tr><td>Endpoint</td><td><strong><code>https://datawallet.{ESS Domain}/inbox/{uuid}/denyAccess</code></strong></td></tr><tr><td>Payload</td><td>none</td></tr></tbody></table>

### Input

<table><thead><tr><th width="159.671875">Path Parameter</th><th>Value</th></tr></thead><tbody><tr><td><strong><code>uuid</code></strong></td><td>The UUID of the inbox item to be used to generate an Access Denial.</td></tr></tbody></table>

### Output

Upon completion, a status message is returned.

**Example response**

```json
{
    "message": "success"
}
```

The fields have the following values:

<table><thead><tr><th width="159.62109375">Field</th><th>Value</th></tr></thead><tbody><tr><td><strong><code>message</code></strong></td><td>A successful operation includes the string “success”.</td></tr><tr><td><strong><code>error</code></strong></td><td>An unsuccessful operation describes the failure category, such as “UNAUTHORIZED”.</td></tr></tbody></table>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.inrupt.com/ess/2.4/services/service-wallet/inbox.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
