OCC Symbols And Parsing

What Is the OCC Option Symbol Format?

A developer-oriented answer for parsing OCC and OSI-style option symbols.

Quick answerLast verified April 28, 2026

The practical OCC option symbol format is root symbol, expiration date in YYMMDD format, C or P for call or put, then an eight-digit strike stored in thousandths. Example: SPY 260515C00500000 means SPY, May 15 2026, call, 500.00 strike.

Root

1-6 chars

Can be padded with spaces in fixed-width displays.

Expiration

YYMMDD

Six digits after the root.

Strike

8 digits

Stored in thousandths, so 00500000 means 500.000.

Parser order

A parser should split the symbol into root, expiration, option type, and strike. The root can be compact or padded, so do not assume every visible character belongs to the date.

After parsing, normalize the expiration into ISO date format and divide the strike integer by 1,000. That gives a stable internal representation for API calls and UI labels.

OCC symbol fields

FieldExampleMeaning
RootSPYUnderlying or adjusted option root.
Expiration260515May 15, 2026.
TypeCCall option. P means put.
Strike00500000500.00 strike after dividing by 1,000.

API example

Verify the answer with listed data

contract lookup

curl "https://api.cutemarkets.com/v1/options/contracts/O:SPY260515C00500000/" \
  -H "Authorization: Bearer YOUR_API_KEY"

How to implement

Implementation checklist

01

Read the root

Capture the root before the six-digit expiration block, allowing optional space padding.

02

Parse the expiration

Convert YYMMDD into an ISO date.

03

Parse type and strike

Read C or P, then divide the eight-digit strike by 1,000.

Last verified

This Q&A page was last reviewed on April 28, 2026. Date-sensitive market calendars, provider docs, and listed contracts can change, so production workflows should verify the live source before trading or publishing an automated answer.

Related questions

What does C mean in an OCC symbol?

C means call. P means put.

Why is the strike eight digits?

The strike is encoded in thousandths so fixed-width symbols can represent decimals.

Should I preserve spaces in the root?

Handle optional root padding while normalizing to the compact root used by your API or database.

Related pages