USCIS API Decoder: What Extra Case Details Can You See?
When I was waiting on my I-485, the USCIS public status page gave me one line: "Case Is Being Actively Reviewed By USCIS." That was it. For months. I knew there had to be more going on behind that message โ internal notes, timestamps, something. That's what led me to dig into what USCIS actually exposes through its public API endpoint, and eventually build the Case Parser on this site.
The short answer: more than the website shows, less than people hope for.
Public Case Status Page vs. What the API Returns
When you check your case on the USCIS website, you see a simplified status message written for a general audience. The same data request to USCIS's public-facing API endpoint returns a structured JSON response with more fields than the website displays.
- One-line status message
- A form description
- Last update date
- Status code + description
- Timestamp of last change
- Form type and sub-type
- Event history (where available)
- Internal stage indicator
๐ The Case Parser on this site queries the same public USCIS endpoint and displays the structured fields alongside event code interpretations โ no login required.
What an API-Style Decoder Can Show You
1. The Structured Status Code
Instead of just the text message, the API returns a machine-readable status code โ a short string like Case Was Approved, Interview Was Scheduled, or Request for Evidence Was Sent. This matters because the display text on the website is sometimes slightly different from the underlying code. A decoder that shows you the raw code lets you search for it directly across forums and Reddit rather than trying to match a paraphrased message.
2. The Exact Timestamp
The public website shows the date of the last update but not the time. The API response includes a timestamp in some implementations โ which tells you not just that your case updated but approximately when during the day. This doesn't change anything about your case, but it helps you understand whether an update happened during a batch processing window (common overnight) or during business hours (often a more significant manual action).
3. Event Codes (When Available)
This is the detail that matters most. For cases routed through certain service centers, the API response includes an event history โ a list of internal codes with timestamps that show what happened to your case over time. These are the same codes that immigration attorneys look up when reviewing a client's file.
Common event codes and what they indicate:
| Code | What It Indicates |
|---|---|
| DA | Document acceptance โ your application package was received and processed |
| FNB / FNA | Biometrics scheduled or completed |
| FT0 | Case assigned to an officer for review |
| LEA | Background check initiated |
| BC / BA / BB | Case transfer between service centers |
| CR | Interview waiver โ no interview required |
| APPV | Approval recorded internally (may appear before the public status updates) |
If you see an FT0 code with a recent timestamp, your case has been assigned to an officer โ which typically means a decision is closer than if you're still in the background check phase. If you see APPV but the public status still says "actively reviewed," that's what people commonly call a ghost update โ the internal record updated before the visible message did.
โ ๏ธ Event codes are not available for all cases or all service centers. IOE (online-filed) cases often show fewer internal events than paper-filed NBC or WAC cases. If your case parser shows only one or two events, that's normal โ it doesn't mean nothing has happened.
4. Form Subtype and Classification
The API response often includes the form subtype โ for example, distinguishing between an I-485 filed as an adjustment of status versus an I-485 filed for a refugee. It may also include the preference category or the basis for your petition. This is mostly useful for confirming that USCIS classified your application correctly when it was entered into their system.
What an API Decoder Cannot Show You
It's worth being direct about the limits, because some third-party tools overstate what they can do:
- It cannot show your A-File contents. Your immigration record โ the full history of your case, documents USCIS received, officer notes โ is not exposed through any public endpoint. Accessing that requires a formal FOIA request.
- It cannot predict your decision date. Event codes show what has happened, not when a decision will come. Anyone claiming to predict your approval date from event codes is guessing.
- It cannot show RFE details. If USCIS sent you a Request for Evidence, the API confirms that it was sent but does not include the content of the RFE โ that only comes in the physical mail.
- It does not reflect real-time officer actions. The data updates in batches, not instantaneously. A status change you see at midnight may reflect something an officer did earlier that day.
- It is not a substitute for USCIS.gov. The public status page remains the official source. The API data is the same underlying data, but interpret it with that in mind.
Privacy and What Happens to Your Receipt Number
When you enter your receipt number into a USCIS API decoder or case parser, the tool queries the same public USCIS endpoint that the USCIS website uses โ your receipt number is sent to USCIS's own servers in the process. A reputable decoder does not store your receipt number or associate it with your identity.
Your receipt number by itself reveals your form type and service center but does not contain personally identifiable information like your name, date of birth, or address. However, avoid entering receipt numbers into tools on unknown or sketchy websites โ there's no reason a tracker needs to know more than the number itself.
๐ The Case Parser on this site does not store your receipt number or log queries to a database. It fetches data from the public USCIS endpoint and returns the result to your browser only.
How to Use the Case Parser on This Site
- Find your 13-character receipt number (see where to find your receipt number if you're not sure).
- Go to the Case Parser on the homepage.
- Paste your receipt number in the input field and click "Parse."
- Review the structured status, event codes (if available), and the timeline of events.
- Click any event code to see an explanation of what it typically means โ these are cross-referenced with the USCIS Event Codes guide on this site.
The most useful thing to look for: whether your event timeline is still moving forward, and whether you have any codes that suggest a hold (like a pending background check) versus active officer review. A case with FT0 in the log and no hold codes is usually closer to a decision than one that's been sitting at FNB for months.
What to Do With What You Find
Most of the time, the event log will confirm that your case is moving normally โ just slowly. The value isn't in finding some secret signal that predicts approval; it's in ruling out that something is stuck.
If you see no event codes at all and your case has been pending for more than a year, it may be worth submitting a case inquiry through myUSCIS. If your event log shows a hold code with no recent movement, and your case is outside the published processing time for your form and service center, that's a reasonable threshold for contacting USCIS or consulting an attorney.
What the API decoder is not good for: checking daily to see if anything changed. The data updates in batches, and obsessive checking doesn't speed anything up. Set a monthly reminder, check then, and do something else in between.