AT&T SIM Swap API

CAMARA-standard API that checks when SIM cards associated with mobile numbers have changed. Enables applications to strengthen authentication flows and detect SIM swap fraud by querying AT&T's network for recent SIM card changes on a subscriber's number.

OpenAPI Specification

at-t-developer-hub-sim-swap-api.yaml Raw ↑
openapi: 3.0.3
info:
  title: AT&T SIM Swap API
  description: >-
    CAMARA-standard API that checks when SIM cards associated with mobile numbers
    have changed. Enables applications to strengthen authentication flows and detect
    SIM swap fraud by querying AT&T's network for recent SIM card changes on a
    subscriber's number. Part of the AT&T Network API Accelerator Program.
  version: '1.0'
  contact:
    url: https://devex-web.att.com/developer-hub/docs/network-api-accelerator-program
  termsOfService: https://www.att.com/gen/general?pid=11561
  x-generated-from: documentation
  x-last-validated: '2026-04-19'
servers:
  - url: https://api.att.com/camara/sim-swap/v1
    description: AT&T CAMARA SIM Swap API endpoint
paths:
  /check:
    post:
      operationId: checkSimSwap
      summary: AT&T Check SIM Swap
      description: >-
        Check whether the SIM card associated with a mobile phone number has been
        swapped within a specified time period. Returns true/false indicating whether
        a SIM swap has been detected, optionally with the swap timestamp.
      tags:
        - SIM Swap
      security:
        - oauth2: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SimSwapCheckRequest'
            examples:
              CheckSimSwapRequestExample:
                summary: Default checkSimSwap request
                x-microcks-default: true
                value:
                  phoneNumber: '+12125551234'
                  maxAge: 240
      responses:
        '200':
          description: SIM swap check result
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SimSwapCheckResponse'
              examples:
                CheckSimSwap200Example:
                  summary: Default checkSimSwap 200 response
                  x-microcks-default: true
                  value:
                    swapped: false
        '400':
          description: Bad request - invalid phone number format or parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
        '401':
          description: Unauthorized - invalid or missing access token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
        '403':
          description: Forbidden - insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
        '404':
          description: Phone number not found or not AT&T subscriber
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
        '429':
          description: Too many requests - rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /retrieve-date:
    post:
      operationId: retrieveSimSwapDate
      summary: AT&T Retrieve SIM Swap Date
      description: >-
        Retrieve the date and time of the most recent SIM swap for a mobile phone
        number. Returns the timestamp of the last SIM card change or null if no
        recent swap has been detected.
      tags:
        - SIM Swap
      security:
        - oauth2: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SimSwapDateRequest'
            examples:
              RetrieveSimSwapDateRequestExample:
                summary: Default retrieveSimSwapDate request
                x-microcks-default: true
                value:
                  phoneNumber: '+12125551234'
      responses:
        '200':
          description: SIM swap date retrieved
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SimSwapDateResponse'
              examples:
                RetrieveSimSwapDate200Example:
                  summary: Default retrieveSimSwapDate 200 response
                  x-microcks-default: true
                  value:
                    latestSimChange: null
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
        '404':
          description: Phone number not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInfo'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  securitySchemes:
    oauth2:
      type: oauth2
      description: AT&T OAuth 2.0 for CAMARA network APIs
      flows:
        clientCredentials:
          tokenUrl: https://api.att.com/oauth/v4/token
          scopes: {}
  schemas:
    SimSwapCheckRequest:
      type: object
      required:
        - phoneNumber
      properties:
        phoneNumber:
          type: string
          description: >-
            Mobile phone number in E.164 format associated with the SIM to check.
          example: '+12125551234'
        maxAge:
          type: integer
          description: >-
            Maximum age in hours to check for a SIM swap. If not provided,
            the default lookback period is used.
          minimum: 1
          maximum: 2400
          example: 240
    SimSwapCheckResponse:
      type: object
      properties:
        swapped:
          type: boolean
          description: >-
            True if a SIM swap was detected within the maxAge period,
            false otherwise.
          example: false
    SimSwapDateRequest:
      type: object
      required:
        - phoneNumber
      properties:
        phoneNumber:
          type: string
          description: Mobile phone number in E.164 format
          example: '+12125551234'
    SimSwapDateResponse:
      type: object
      properties:
        latestSimChange:
          type: string
          format: date-time
          nullable: true
          description: >-
            Date and time of the most recent SIM swap, or null if no swap
            has been detected recently.
          example: null
    ErrorInfo:
      type: object
      properties:
        status:
          type: integer
          description: HTTP status code
          example: 400
        code:
          type: string
          description: CAMARA error code
          example: INVALID_ARGUMENT
        message:
          type: string
          description: Human-readable error message
          example: Invalid phone number format. Must be E.164.