Use the endpoint /portal/iserver/secdef/ search with a STK contract to obtain a list of contract months for options on that stock.
Example:
POST https://localhost:5000/v1/portal/iserver/secdef/search
{
    "symbol": "FB",
    "name": false,
    "secType": "STK"
}
The response will have a list of contract months for options on that underlying stock, e.g:
{
    "secType":"OPT",
    "months":"MAR19;APR19;MAY19;JUN19;SEP19;DEC19;JAN20;JUN20;JAN21",
    "exchange":"SMART;AMEX;BATS;BOX;CBOE;CBOE2;EDGX;GEMINI;ISE;MERCURY;MIAX;NASDAQBX;NASDAQOM;PEARL;PHLX;PSE"
}
Use the endpoint /portal/iserver/secdef/strikes with arguments {conid, sectype, month, exchange} to receive strike prices of options on the underlying stock for the indicated contract month:
Example:
(to query strike prices of March'19 FB options)
GET https://localhost:5000/portal/iserver/secdef/strikes?conid=107113386&sectype=OPT&month=MAR19&exchange=SMART
The response will look like:
{
    "call":["50","55","60","65",...,"310","315","320"],
    "put":["50","55","60","65","70","75",...,"310","315","320"]
}
Next query the conId of an option with a strike price from step (2) with the endpoint /portal/iserver/secdef/info with arguments {conid, secType, month, exchange, strike, right}.
Example:
GET https://localhost:5000/portal/iserver/secdef/info?conid=107113386&sectype=OPT&month=MAR19&exchange=SMART&strike=152.5&right=C
The response will have the conid of each option at that strike with the given contract month: