Orchid eState™ API Documentation
Orchid eState™ has two API endpoints, each with their own submission and response formats. One endpoint permits submission of only a single UPC per API call. The other endpoint permits submission of multiple UPCs per API call. Each endpoint, example requests, and expected responses are identified below.
Below the example requests and responses, you will find the current API response codes for queries of firearms, magazines, silencers, parts/accessories, and ammunition.
Endpoint #1 – Legacy: Single UPC Submission
Endpoint
POST https://estateapi.orchid-apps.com/api/submit_upc
Description
This API endpoint allows you to submit a Universal Product Code (UPC) along with a ZIP code to retrieve information about the product's availability in the specified location.
Request
The request should be made using the POST method. The request body should be sent as raw JSON.
Request Body Parameters
| Parameter | Type | Description |
|---|---|---|
api_key | string | API key provided by Orchid during implementation |
zip_code | string | ZIP code representing the desired location |
upc | string | Universal Product Code (UPC) of the product |
POST https://estateapi.orchid-apps.com/api/submit_upc
Content-Type: application/json
{
"api_key": "aaaacccc-bbbb-9999-dddd-19d9bf4b94cb",
"zip_code": "21205",
"upc": "090161045156"
}
{
"status": 1,
"data": {
"response": 1
},
"msg": "The API Key is Valid"
}POST https://estateapi.orchid-apps.com/api/submit_upc
Content-Type: application/json
{
"api_key": "aaaacccc-bbbb-9999-dddd-19d9bf4b94cb",
"zip_code": "37138",
"upc": "8605003812982"
}
{
"status": 1,
"data": {
"response": [
{
"restriction": "B",
"shipping_restriction": "AA",
"age_restriction": "AAA"
}
]
},
"msg": "The API Key is Valid"
}Endpoint #2 – v1: Multiple UPC Submission
Endpoint
POST https://estateapi.orchid-apps.com/api/v1/submit_upc
Description
This API endpoint allows you to submit one or more Universal Product Code(s) (UPC) along with a ZIP code to retrieve information about the product's availability in the specified location.
Request
The request should be made using the POST method. The request body should be sent as raw JSON.
Request Body Parameters
| Parameter | Type | Description |
|---|---|---|
api_key | string | API key provided by Orchid during implementation |
zip_code | string | ZIP code representing the desired location |
upc | string | Universal Product Code (UPC) of the product |
POST https://estateapi.orchid-apps.com/api/v1/submit_upc
Content-Type: application/json
{
"api_key": "aaaacccc-bbbb-9999-dddd-19d9bf4b94cb",
"zip_code": "90001",
"upc": "011356330406, 747115463398, 798681682683"
}
{
"status": 1,
"data": {
"response": {
"011356330406": {
"restriction": 1
},
"747115463398": {
"restriction": 1
},
"798681682683": {
"restriction": 2
}
}
},
"msg": "The API Key is Valid"
}POST https://estateapi.orchid-apps.com/api/v1/submit_upc
Content-Type: application/json
{
"api_key": "64d8ebe7-a6f0-406c-97a2-08993aed5ba8",
"zip_code": "90001",
"upc": "8605003812982, 8605003812746, 719006453610"
}
{
"status": 1,
"data": {
"response": {
"8605003812982": {
"restriction": "B",
"shipping_restriction": "CC",
"age_restriction": "AAA"
},
"8605003812746": {
"restriction": "B",
"shipping_restriction": "CC",
"age_restriction": "AAA"
},
"719006453610": {
"restriction": "A",
"shipping_restriction": "FF",
"age_restriction": "FFF"
}
}
},
"msg": "The API Key is Valid"
}Firearms, Silencers, Magazines & Parts/Accessories Queries
Response
The API response will provide information about product restrictions based on the submitted UPC and ZIP Code.
Response Codes
As of January 1, 2026
| Response | Description |
|---|---|
1 | Unrestricted |
2 | Restricted |
3 | Roster State |
5 | UPC not found |
Testing
You can use the following test ZIP code and test UPCs to simulate different responses:
Test ZIP Code: 21205
Test UPCs:
- API Response codes above are accurate as of January 1, 2026. Changing laws may have impacted the accuracy of the above. If you receive a different response code please contact Orchid.
- An API Response of "Roster State" indicates the user must check the applicable State Roster to determine legality. Rosters may change daily and without notice to the public.
- The availability of products may vary based on real time data (e.g., a UPC may no longer be available and was removed from the system).
Ammunition Queries
Response
The API response will provide information about product restrictions, shipping restrictions, and age restrictions based on the submitted UPC and ZIP Code.
Response Codes
As of January 1, 2026
Product Restrictions
| Response | Description |
|---|---|
A | Restricted |
B | Not Restricted |
5 | UPC Not Found |
Shipping Restrictions
| Response | Description |
|---|---|
AA | Ship to Consumer Permitted |
BB | Ship to Consumer Pending License and/or Permit Verification |
CC | Ship to FFL or Dealer |
FF | Restricted |
SHI | Ship to Consumer Pending Required Age Verification |
SNJ | Shotgun Ammo Ship to Consumer Permitted. Handgun & Rifle Ammo Ship to Consumer Pending License and/or Permit Verification. |
Age Restrictions
| Response | Description |
|---|---|
AAA | 18+ Long Gun / 21+ Other Firearms |
BBB | 21+ All Ammo |
FFF | Restricted |
ADE | 21+ OR 18+ if purchaser: (a) holds license to carry concealed; (b) is US Armed Forces; (c) is National Guard; (d) is a law enforcement officer |
AMD | 18+ OR 21+ if the ammo is "solely designed for" either: handguns OR the list of firearms identified at MD Public Safety Article 5-101(r)(2). |
ANJ | 18+ for shotgun ammo & rifle ammo for which no handgun exists; 21+ for handgun ammo & rifle ammo that may be used in a handgun. |
Testing
You can use the following test ZIP codes and test UPCs to simulate different responses:
UPC: 818778023509
90232 → Responses: A, FF, FFF37219 → Responses: B, AA, AAA60020 → Responses: B, BB, AAA02804 → Responses: B, BB, BBB96712 → Responses: B, SHI, BBB07029 → Responses: B, SNJ, ANJ14094 → Responses: B, CC, AAA19712 → Responses: B, AA, ADE20790 → Responses: B, AA, AMDUPC: 850057976113
51008 → Responses: A, FF, FFFUPC: 123412341234
37138 → Response: 5- API Response codes above are accurate as of January 1, 2026. Changing laws may have impacted the accuracy of the above. If you receive a different response code please contact Orchid.
- The availability of products may vary based on real time data (e.g., a UPC may no longer be available and was removed from the system).