> This page is for TWS API.

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://ibkrcampus.com/docs/llms.txt.

# WSH Meta Data

## Introduction

The function `EClient.reqWshMetaData` is used to request available event types, or supported filter values, that may be used in the call for `EClient.reqWshEventData` filter field.

Regardless of whether or not you are aware of the Meta Data filters, this request must **always** be called once per session prior to the `EClient.reqWshEventData` function.

---

## Request Meta Data

`EClient.reqWshMetaData(requestId)`

Requests metadata from the WSH calendar.

**`requestId`** `int`

Request identifier used to track data.

---

\


#### Python

```python
self.reqWshMetaData(1100)
```

#### Java

```java
client.reqWshMetaData(1100);
```

#### C++

```cpp
m_pClient->reqWshMetaData(30001);
```

#### C\#

```csharp
client.reqWshMetaData(1100);
```

#### VB.NET

```vbnet
client.reqWshMetaData(1100)
```

---

## Receive Meta Data

`EWrapper.wshMetaData(requestId, dataJson)`

Returns meta data from the WSH calendar.

Once the json content has been received, the specific event types used to filter `EClient.reqWshEventData` are listed under "meta_data" -> "event_types".

The "name" field will express what the filter will return, such as "Board of Directors Meeting".

The "tag" field will return the filter used in your JSON query. The related example would be "wshe_bod".

**`requestId`** `int`

Request identifier used to track data.

---

**`dataJson`** `string`

Metadata in json format.

---

\


#### Python

```python
def wshMetaData(self, reqId: int, dataJson: str):
	print("WshMetaData.", "ReqId:", reqId, "Data JSON:", dataJson)
```

#### Java

```java
@Override
public void wshMetaData(int reqId, String dataJson) {
	System.out.println(EWrapperMsgGenerator.wshMetaData(reqId, dataJson));
}
```

#### C++

```cpp
void TestCppClient::wshMetaData(int reqId, const std::string& dataJson) {
    printf("WSH Meta Data. ReqId: %d, dataJson: %s\n", reqId, dataJson.c_str());
}
```

#### C\#

```csharp
public void wshMetaData(int reqId, string dataJson)
{
	Console.WriteLine($"WSH Meta Data. Request Id: {reqId}, Data JSON: {dataJson}\n");
}
```

#### VB.NET

```vbnet
Public Sub wshMetaData(reqId As Integer, dataJson As String) Implements EWrapper.wshMetaData
	Console.WriteLine($"WSH Meta Data. Request Id: {reqId}, Data JSON: {dataJson}")
End Sub
```

---

## Cancel Meta Data

`EClient.cancelWshMetaData(requestId)`

Cancels pending request for WSH metadata.

**`requestId`** `int`

Request identifier used to track data.

---

\


#### Python

```python
self.cancelWshMetaData(1100)
```

#### Java

```java
client.cancelWshMetaData(1100);
```

#### C++

```cpp
m_pClient->cancelWshMetaData(30001);
```

#### C\#

```csharp
client.cancelWshMetaData(1100);
```

#### VB.NET

```vbnet
client.cancelWshMetaData(1100)
```