How to Check USCIS Case Status Using the Internal API

A step-by-step walkthrough for accessing detailed case data through the same endpoints used by the myUSCIS website. Plus how to access direct links and get a USCIS API analysis.

Have a case with USCIS? Check my case free

TL;DR: Log into myUSCIS → enter your IOE case number on CaseStatusAPI → open the links it makes to view the raw API data → copy it all and paste it back. Takes about 2 minutes and reveals hidden fields like active location, silent updates, and document history that are hidden from the public tracker.

What is the USCIS internal API?

The USCIS internal API is a set of secure HTTP endpoints hosted at my.uscis.gov that the myUSCIS web application uses to fetch your case information. When you log into your myUSCIS dashboard and view your case status, the website is making requests to these very same API endpoints behind the scenes.

These endpoints return data in JSON format — a structured, machine-readable format. This raw JSON contains more detailed information than what the official dashboard displays, including internal status codes (like NIEM event codes), processing timestamps, and document links.

This is not the same as USCIS's official Case Status API for registered developers, which returns only the public status. The two USCIS APIs, compared.

Official case tracker vs. internal API

FeatureOfficial Public TrackerUSCIS Internal API
URLegov.uscis.gov/casestatusmy.uscis.gov (API endpoints)
Login requiredNoYes (myUSCIS account)
Data formatStyled HTML pageRaw JSON
Event historyMost recent onlyFull timeline history
Internal status codesNoYes (e.g. FTA0, DA)
Active service centerNoYes (Location code)
Document recordsNoYes (including early notices)

Before you start

  • A myUSCIS account at my.uscis.gov
  • A receipt number that starts with "IOE" (older prefixes like MSC or WAC are not supported on these API endpoints)
  • A desktop or mobile browser (Chrome, Firefox, Safari, Edge)

Step-by-step walkthrough

Step 1: Log in to myUSCIS

Open my.uscis.gov/account and log in. Keep this tab open. This creates the secure authentication session cookie inside your browser. Without it, requesting the API links directly will fail with a 401 Unauthorized error.

Step 2: Enter your case number

On the CaseStatusAPI home page, enter your receipt number under “Get your case data” (it must start with IOE). The links to your case's data appear as soon as the number is complete, on a phone or a computer.

Step 3: Open the data links

Open the Status link (the one you need); Location, Notice and Documents are optional. Each opens in a new tab. For a manual check, these are the four addresses, named and ordered as on the home page:

Status (needed): https://my.uscis.gov/account/case-service/api/cases/YOUR_IOE_NUMBER
Location: https://my.uscis.gov/secure-messaging/api/case-service/receipt_info/YOUR_IOE_NUMBER
Notice: https://my.uscis.gov/account/case-service/api/case_status/YOUR_IOE_NUMBER
Documents: https://my.uscis.gov/account/case-service/api/cases/YOUR_IOE_NUMBER/documents

Step 4: Copy the JSON response

In the browser tab showing the raw JSON database text, press Ctrl+A (or Cmd+A) to select all and Ctrl+C to copy it; on a phone, tap and hold the text, tap Select All, then Copy. Paste it into the box at the end of “Get your case data” on CaseStatusAPI (or tap Paste my data).

Step 5: Get your USCIS API analysis

Tap Get case insights. CaseStatusAPI, our USCIS API case status tracker, reads the data and explains your case's steps, its internal codes (like FTA0 and IAF) and its office in plain English, starting with a free preview.

Troubleshooting & FAQ

ProblemSolution
Link returns "unauthorized"Log into my.uscis.gov/account again on this browser to refresh your session cookie.
Blank or error pageVerify your receipt number is correct and starts with IOE.
Analysis shows "Invalid JSON"Make sure you copied the entire text (Ctrl+A). If using a mobile browser, it can sometimes truncate whitespace.

Risks and limitations

  • Unofficial endpoints: These APIs are not publicly documented by USCIS and may change or be removed without notice.
  • IOE cases only: Currently, these endpoints only work with receipt numbers beginning with "IOE" (the electronic system).
  • Rate limiting: Making too many requests in a short period may result in temporary blocks.

Frequently asked questions

What is the USCIS internal API?

It is the data the myUSCIS website (my.uscis.gov) loads for your case after you sign in: the data behind your dashboard, with more detail than the page shows, returned as raw text. It is different from USCIS's official Case Status API for developers.

The two USCIS APIs, compared

Why do I need to be logged in for the USCIS API to work?

The USCIS internal API uses session-based authentication tied to your myUSCIS login. When you log in at my.uscis.gov, a session cookie is created in your browser. This cookie is required for the API to return data. Without it, the API returns a 401 Unauthorized error.

Is it safe to use the USCIS internal API? Is it a hack?

It is not a leak or a hack: it is the data your own browser loads when you sign in to myUSCIS, the same data you can see in your browser's developer tools, and it only returns your own case. You need to be signed in to see it, and we never see your USCIS password.

Can someone else see my data?

Not from USCIS: the links to your case data open only with your own myUSCIS sign-in. We never see your USCIS password, and we never store the name, A-Number, address or documents from your case. Community benchmarks use a de-identified copy of shared cases (you can opt out), a report you buy is saved for 90 days so you can reopen it, and My Case keeps a history of each case you check with a paid report until you delete your account.

What triggers a USCIS API update?

Something touched your case record in USCIS's systems; the data doesn't say who did it or why. When the update time moves to a later day with no new step shown, that is what people call a silent update.

See your own case, explained.

See every step USCIS has recorded for your case, in plain English: your timeline, silent updates, and what usually comes next for cases like yours.

Check my case free
CS
Written by the CaseStatusAPI Team

We are immigration applicants and technologists who built CaseStatusAPI to help others navigate the USCIS process with transparency. Our guides are informed by firsthand experience, community feedback, and deep analysis of USCIS internal API data.

Learn more about us

Related guides

USCIS Silent Update: Meaning, Causes, and How to Track ItUSCIS JSON Reader: How to Find, Read & Analyze Case JSONIOE Case Status: How to Check & Track Your USCIS Case OnlineUSCIS Service Centers ExplainedEvery USCIS Case Status Meaning Explained

Explore more community tools

Community TimelinesCommunity Forum
Disclaimer: This content is for educational and informational purposes only. CaseStatusAPI is an independent tool and is not affiliated with, endorsed by, or connected to U.S. Citizenship and Immigration Services (USCIS) or any government agency. For official case information, visit uscis.gov.