US Citizenship and Immigration Services Case Status API

Immigration case status retrieval by receipt number

OpenAPI Specification

us-citizenship-and-immigration-services-case-status-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: USCIS Case Status API
  description: 'The USCIS Case Status API provides case status information to USCIS customers and their authorized representatives who require regular programmatic access to immigration case status information. Accepts a 13-character USCIS receipt number and returns the current status, form type, submission date, and historical case timeline in both English and Spanish. Accessed via the USCIS Torch API Program at developer.uscis.gov. Rate limits apply: 5 transactions per second, 1,000 requests per day.'
  version: '1.0'
  contact:
    name: USCIS Developer Support
    url: https://developer.uscis.gov/
  termsOfService: https://developer.uscis.gov/
servers:
- url: https://api-int.uscis.gov/case-status
  description: USCIS Sandbox/Integration Environment
tags:
- name: Case Status
  description: Immigration case status retrieval by receipt number
paths:
  /{receiptNumber}:
    get:
      operationId: getCaseStatus
      summary: Get Case Status By Receipt Number
      description: 'Retrieves the current immigration case status and historical timeline for a specific USCIS receipt number. Returns status in both English and Spanish, along with form type, submission date, and modification date. Receipt numbers must be 13 characters: 3-letter prefix (EAC, LIN, SRC) followed by 10 digits.'
      tags:
      - Case Status
      security:
      - OAuth2:
        - read:case-status
      parameters:
      - name: receiptNumber
        in: path
        required: true
        description: 'The 13-character USCIS receipt number. Format: 3-letter prefix (EAC=Vermont Service Center, LIN=Nebraska Service Center, SRC=Texas Service Center) followed by 10 digits.'
        schema:
          type: string
          pattern: ^(EAC|LIN|SRC|IOE|MSC|NBC|WAC|YSC)\d{10}$
          minLength: 13
          maxLength: 13
        examples:
          vermont-service-center:
            summary: Vermont Service Center receipt
            value: EAC9999103402
          nebraska-service-center:
            summary: Nebraska Service Center receipt
            value: LIN9912345678
      responses:
        '200':
          description: Case status successfully retrieved
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CaseStatusResponse'
              example:
                receiptNumber: EAC9999103402
                formType: I-485
                submittedDate: '2023-03-15'
                modifiedDate: '2024-01-20'
                status: Case Was Approved
                description: On January 20, 2024, we approved your Form I-485, Application to Register Permanent Residence or Adjust Status.
                statusEsDesc: El 20 de enero de 2024, aprobamos su Formulario I-485, Solicitud para Registrar Residencia Permanente o Ajustar Estatus.
                historicalCaseStatuses:
                - status: Case Was Received
                  date: '2023-03-20'
                  description: On March 20, 2023, we received your case.
                  descriptionEsDesc: El 20 de marzo de 2023, recibimos su caso.
                - status: Case Is Being Actively Reviewed by USCIS
                  date: '2023-09-15'
                  description: On September 15, 2023, we are actively reviewing your case.
                  descriptionEsDesc: El 15 de septiembre de 2023, estamos revisando activamente su caso.
        '401':
          description: Unauthorized - invalid or expired OAuth 2.0 access token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error: UNAUTHORIZED
                message: Invalid or expired access token
        '404':
          description: Receipt number not found in USCIS system
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error: NOT_FOUND
                message: Receipt number not found
        '422':
          description: Unprocessable entity - receipt number format is invalid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error: INVALID_FORMAT
                message: Receipt number must be 13 characters
        '429':
          description: Rate limit exceeded (5 TPS or 1,000 daily requests)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error: RATE_LIMIT_EXCEEDED
                message: Daily request limit of 1000 exceeded
components:
  schemas:
    CaseStatusResponse:
      type: object
      description: Immigration case status response
      required:
      - receiptNumber
      - status
      - description
      properties:
        receiptNumber:
          type: string
          description: The USCIS receipt number for this case
          example: EAC9999103402
        formType:
          type: string
          description: The form type associated with this case
          examples:
          - I-485
          - I-130
          - I-765
          - I-90
          - N-400
        submittedDate:
          type: string
          format: date
          description: Date the application was submitted to USCIS
          example: '2023-03-15'
        modifiedDate:
          type: string
          format: date
          description: Date the case status was last modified
          example: '2024-01-20'
        status:
          type: string
          description: Current case status (English)
          examples:
          - Case Was Received
          - Case Is Being Actively Reviewed by USCIS
          - Case Was Approved
          - Case Was Denied
          - Request for Evidence Was Sent
        description:
          type: string
          description: Detailed description of the current status in English
        statusEsDesc:
          type: string
          description: Detailed description of the current status in Spanish
        historicalCaseStatuses:
          type: array
          description: Historical timeline of case status changes
          items:
            $ref: '#/components/schemas/HistoricalStatus'
    ErrorResponse:
      type: object
      description: Error response from the USCIS Case Status API
      properties:
        error:
          type: string
          description: Error code
          examples:
          - UNAUTHORIZED
          - NOT_FOUND
          - INVALID_FORMAT
          - RATE_LIMIT_EXCEEDED
          - INTERNAL_SERVER_ERROR
        message:
          type: string
          description: Human-readable error message
    HistoricalStatus:
      type: object
      description: A historical case status entry in the case timeline
      properties:
        status:
          type: string
          description: Status label for this historical entry
        date:
          type: string
          format: date
          description: Date of this status event
        description:
          type: string
          description: Description of this historical status in English
        descriptionEsDesc:
          type: string
          description: Description of this historical status in Spanish
  securitySchemes:
    OAuth2:
      type: oauth2
      description: OAuth 2.0 Client Credentials flow. Obtain an access token from the USCIS token endpoint using your client_id and client_secret registered at developer.uscis.gov. Tokens expire after 1,800 seconds (30 minutes).
      flows:
        clientCredentials:
          tokenUrl: https://api-int.uscis.gov/oauth/accesstoken
          scopes:
            read:case-status: Read immigration case status information
externalDocs:
  description: USCIS Case Status API Documentation
  url: https://developer.uscis.gov/api/case-status