---
title: Lookup
sidebar_position: 1
---

Generate a properly formatted OCC option symbol based on the user's human-readable description of an option. This endpoint converts text such as "AAPL 7/28/23 $200 Call" to OCC option symbol format: AAPL230728C00200000. The user input must be URL-encoded.

import Tabs from "@theme/Tabs";
import TabItem from "@theme/TabItem";

## Endpoint
```
https://api.marketdata.app/v1/options/lookup/{userInput}
```
#### Method
```
GET
```
## Request Example

<Tabs>
<TabItem value="HTTP" label="HTTP" default>

**GET** [https://api.marketdata.app/v1/options/lookup/AAPL%207/28/2023%20200%20Call](https://api.marketdata.app/v1/options/lookup/AAPL%207/28/2023%20200%20Call)

</TabItem>
<TabItem value="NodeJS" label="NodeJS">

```js title="app.js"
fetch(
  "https://api.marketdata.app/v1/options/lookup/AAPL%207/28/2023%20200%20Call"
)
  .then((res) => {
    console.log(res);
  })
  .catch((err) => {
    console.log(err);
  });
```

</TabItem>
<TabItem value="Python" label="Python">

```python title="app.py"
from marketdata.client import MarketDataClient

client = MarketDataClient()
lookup = client.options.lookup("AAPL 7/28/2023 200 Call")
print(lookup)
```

</TabItem>
<TabItem value="Go" label="Go">

```go title="optionLookup.go"

import (
  "fmt"

  api "github.com/MarketDataApp/sdk-go"
)

func ExampleOptionLookupRequest() {
	optionSymbol, err := OptionLookup().UserInput("AAPL 7/28/2023 200 Call").Get()
	if err != nil {
		fmt.Print(err)
		return
	}

	fmt.Println(optionSymbol)
}
```
</TabItem>
</Tabs>

## Response Example

```json
{
  "s": "ok",
  "optionSymbol": "AAPL230728C00200000"
}
```

## Request Parameters

<Tabs>
<TabItem value="required" label="Required" default>

- **userInput** `string`

  The human-readable string input that contains (1) stock symbol (2) strike (3) expiration date (4) option side (i.e. put or call). This endpoint will translate the user's input into a valid OCC option symbol.

</TabItem>
</Tabs>

## Response Attributes

<Tabs>
<TabItem value="Success" label="Success" default>

- **s** `string`

  Status will always be `ok` when the OCC option symbol is successfully generated.

- **optionSymbol** `string`

  The generated OCC option symbol based on the user's input.

</TabItem>
<TabItem value="Error" label="Error">

- **s** `string`

  Status will be `error` if the request produces an error response.

- **errmsg** `string`
  An error message.

</TabItem>
</Tabs>

## Notes

- This endpoint will return an error if the option symbol that would be formed by the user's input does not exist.

## Usage Information

### Data Availability

This endpoint provides option symbol lookup functionality. This endpoint does not require any exchange entitlements and is available to all users.

| User Type | Exchange Entitlement | Data Type |
|-----------|---------------------|------------|
| All Users | Not Required | Utility Data |

### Pricing

The cost of using the lookup API endpoint is 1 credit per API call.

| Data Type     | Cost Basis                | Credits Required per Unit |
|--------------------|---------------------------|---------------------------|
| Lookup Data    | Per API call         | 1 credit                  |