lastscanned Account API

The Account API from lastscanned — 5 operation(s) for account.

Operations 5

GET /v1/account Get the account #
GET /v1/usage Daily usage #
GET /v1/lookups Lookup history #
POST /v1/keys Create a key #
DELETE /v1/keys/{prefix} Revoke a key #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/lastscanned-com:lastscanned-com-account-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

lastscanned-com-account-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: lastscanned Account API
  version: '1'
  description: 'Package tracking across 542 carriers: UPS, USPS, DHL, FedEx, Amazon Logistics, OnTrac, UniUni, GOFO, Veho, Spee-Dee, CDL Last Mile, Better Trucks, AxleHire (Jitsu), CIRRO, Yanwen, 4PX, Cainiao, YunExpress, SpeedX, Intelcom, Canada Post, Purolator, TForce Final Mile, GLS US, OSM Worldwide, Pitney Bowes, CNE Express, SunYou, UBI Smart Parcel, Sendle, Asendia, Japan Post, SingPost, Korea Post, NZ Post, DPD UK, APC Postal Logistics, Landmark Global, Canpar, Loomis Express, GLS Canada, Nationex, bpost, PostNord, Austrian Post, Poczta Polska, GLS, InPost, Packeta, Hermes Germany, YDH, Equick China, TopYou, La Poste, PostNL, Correos, Poste Italiane, CJ Logistics, Yamato Transport, Delhivery, Blue Dart, Evri, An Post, Swiss Post, BRT, Aramex Australia, CouriersPlease, Team Global Express, Ninja Van, Flash Express, ICS Courier, Chit Chats, Passport, ePost Global, JYExpress, Sagawa Express, Aramex, T-cat, Hanjin, Lotte Global Logistics, Logen, Shadowfax, SFC, Anjun, Winit, NZ Couriers, Post Haste, Castle Parcels, Gaopost, YF Express, GDWSE, Chronopost, Bring, Posti, Česká pošta, CTT, SEUR, Nova Poshta, Sameday, FAN Courier, Econt, Meest, Yurtiçi Kargo, Paquetexpress, Andreani, The Courier Guy, PostNet, 99minutos, Mainfreight, YTO Express, SPL Saudi Post, KEX Express, Pos Malaysia, GDEX, City-Link Express, LBC Express, DHL eCommerce, DHL Parcel NL, DHL Parcel Iberia, DHL Parcel PL, DHL eCommerce UK, DHL Freight, DHLink, XQ Express, Ali Business Logistics, Omniva, Ukrposhta, Speedy, DPD Romania, DPD Poland, DPD, DPD Portugal, Thailand Post, Chunghwa Post, EMS, ELTA, Estafeta, Total Express, Sagawa Global, MRW, Nacex, HuaHan, Chukou1, ZTO International, STO Express, OCA, OCASA, Coordinadora, HCT Logistics, Starken, Hunter Express, Aras Kargo, SMSA Express, Naqel Express, AUS Express, BDTPost, Boyi Hongda, BYT Logistics, CD International, CHH Logistics, Chuangyu Logistics, DHFEX, EDL Express, ED POST, ETSCP, Fuhai Wulian, FJEX, JSH Galaxy Express, ASGYL, Tianhai Supply Chain, YouMeiYuTong, HLSZ56, HOYANG Express, Heping Logistics, HSD Express, JTEX, PD Express, Jiuhao International, JDT Logistics, LeiYi Logistics, Lingdong International, Mayi Yinfu, Miuson Express, Pingda International, PY Express, QFL Express, QYEXP, Qyun Express, Shang Fang International, SHSGEXP, StarGlobal, TDE Logistics, Tianhui Hengyuan, Usky Express, WM Cloud, XS Express, YJI Logistics, Yilong Logistics, Yincag Logistics, ESHUN, ACS Courier, Airpak Express, Allegro One, Anteraja, AyMakan, Cargus, CDEK, Correos Express, CTT Express, DAI Post, ECMS Express, Ecoscooting, Geis, Jeebly, DHL eCommerce Türkiye, Northline, Nova Global, OMGO, Pakistan Post, Paperfly, Pathao Courier, PHLPost, Planzer, Pos Indonesia, Posta Shqiptare, Pošta Slovenije, PostEx, Pósturinn, Pro Carrier, PTS Worldwide Express, Quantium Solutions, Qwintry, Redur, RedX, South African Post Office, Seino Transportation, Sendex, Sending, Serpost, Servientrega, Shipa, ShipEntegra, Shree Maruti Courier, SkyNet Worldwide Express, SkyPostal, Speedaf, SpeedPAK, PostNL (Spring GDS), Slovak Parcel Service, SPX Express Indonesia, SPX Express Malaysia, SPX Express Philippines, SPX Express Thailand, SPX Express Vietnam, Stallion Express, Starex, ST Courier, Straightship, Swiss Post Cargo, TIPSA, TMM Express, TNT, TOPTRANS, TracX Logis, TWS Express Courier, Urvaam, Valmo, Vasp Expresso, Venipak, Vinted Go, Vozovoz, Zeleris, ZR Express, 4-72, Kuehne+Nagel, MailPlus, Amerijet, Matkahuolto, NOEST Express, 17FEIA, 2GO Express, 4Sides, 5Post, A1 POST, ABF Freight, A.'
servers:
- url: https://api.lastscanned.com
security:
- bearerAuth: []
- apiKeyHeader: []
tags:
- name: Account
paths:
  /v1/account:
    get:
      operationId: getAccount
      tags:
      - Account
      summary: Get the account
      responses:
        '200':
          description: The account.
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                  email:
                    type: string
                  name:
                    type:
                    - string
                    - 'null'
                  dailyLimit:
                    type:
                    - integer
                    - 'null'
                    description: Tracking numbers per UTC day; `null` for no daily limit.
                  createdAt:
                    type: string
                  usedToday:
                    type: integer
                    description: Tracking numbers counted today (UTC).
                  keys:
                    type: array
                    description: Active keys. Only prefixes are kept; a full key is shown once, when it is made.
                    items:
                      $ref: '#/components/schemas/KeySummary'
              example:
                id: acct_9c4e1b7a2d6f3e80
                email: you@example.com
                name: null
                dailyLimit: 5
                createdAt: '2026-10-01T09:12:44Z'
                usedToday: 2
                keys:
                - prefix: lREDACTED_STRIPE_KEY
                  name: default
                  createdAt: '2026-10-01T09:12:44Z'
                  lastUsedAt: '2026-10-26T18:06:20Z'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /v1/usage:
    get:
      operationId: getUsage
      tags:
      - Account
      summary: Daily usage
      parameters:
      - name: days
        in: query
        schema:
          type: integer
          minimum: 1
          maximum: 366
          default: 30
      responses:
        '200':
          description: One row per UTC day with activity, newest first.
          content:
            application/json:
              schema:
                type: object
                required:
                - usage
                properties:
                  usage:
                    type: array
                    items:
                      type: object
                      properties:
                        day:
                          type: string
                          format: date
                        lookups:
                          type: integer
                          description: Tracking numbers asked for.
                        live:
                          type: integer
                          description: Lookups that went to the carrier rather than cache.
              example:
                usage:
                - day: '2026-10-26'
                  lookups: 4
                  live: 3
        '401':
          $ref: '#/components/responses/Unauthorized'
  /v1/lookups:
    get:
      operationId: getLookups
      tags:
      - Account
      summary: Lookup history
      description: One entry per tracking number per request, newest first, from the last 30 days.
      parameters:
      - name: limit
        in: query
        schema:
          type: integer
          minimum: 1
          maximum: 200
          default: 50
      - name: cursor
        in: query
        description: The previous page's nextCursor.
        schema:
          type: string
      - name: number
        in: query
        description: Only this tracking number, or numbers starting with it.
        schema:
          type: string
      responses:
        '200':
          description: A page of lookups.
          content:
            application/json:
              schema:
                type: object
                required:
                - lookups
                - nextCursor
                properties:
                  lookups:
                    type: array
                    items:
                      type: object
                      properties:
                        number:
                          type: string
                        carrier:
                          type: string
                          nullable: true
                        status:
                          type: string
                          nullable: true
                          description: Null when the lookup failed; see error.
                        error:
                          type: string
                          nullable: true
                          description: The error code when there was no result.
                        source:
                          type: string
                          enum:
                          - api
                          - mcp
                          - playground
                        cached:
                          type: boolean
                        createdAt:
                          type: string
                          format: date-time
                  nextCursor:
                    type: string
                    nullable: true
                    description: Null on the last page.
              example:
                lookups:
                - number: 1Z999AA10123456784
                  carrier: ups
                  status: delivered
                  error: null
                  source: api
                  cached: false
                  createdAt: '2026-10-26T18:06:20Z'
                nextCursor: null
        '400':
          description: '`bad_request`: the cursor isn''t one this route returned.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: bad_request
                  message: Invalid cursor
        '401':
          $ref: '#/components/responses/Unauthorized'
  /v1/keys:
    post:
      operationId: createKey
      tags:
      - Account
      summary: Create a key
      description: The full key is in this response only.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  maxLength: 60
            example:
              name: production
      responses:
        '200':
          description: The new key.
          content:
            application/json:
              schema:
                type: object
                required:
                - key
                - prefix
                - name
                properties:
                  key:
                    type: string
                    description: '`lsk_live_` + 32 hex characters.'
                  prefix:
                    type: string
                  name:
                    type:
                    - string
                    - 'null'
              example:
                key: lsk_live_…
                prefix: lREDACTED_STRIPE_KEY
                name: production
        '401':
          $ref: '#/components/responses/Unauthorized'
  /v1/keys/{prefix}:
    delete:
      operationId: revokeKey
      tags:
      - Account
      summary: Revoke a key
      parameters:
      - name: prefix
        in: path
        required: true
        description: '`lsk_live_` + the key''s first 8 hex characters.'
        schema:
          type: string
          pattern: ^lsk_live_[0-9a-f]{8}$
        example: lREDACTED_STRIPE_KEY
      responses:
        '200':
          description: Revoked.
          content:
            application/json:
              schema:
                type: object
                properties:
                  revoked:
                    type: string
              example:
                revoked: lREDACTED_STRIPE_KEY
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  schemas:
    ErrorBody:
      type: object
      required:
      - code
      - message
      properties:
        code:
          type: string
          enum:
          - bad_request
          - unknown_carrier
          - unauthorized
          - free_lookup_used
          - payment_required
          - credits_used
          - not_found
          - rate_limited
          - internal_error
          - not_configured
          - carrier_error
        message:
          type: string
    KeySummary:
      type: object
      properties:
        prefix:
          type: string
          example: lREDACTED_STRIPE_KEY
        name:
          type:
          - string
          - 'null'
        createdAt:
          type: string
        lastUsedAt:
          type:
          - string
          - 'null'
    Error:
      type: object
      required:
      - error
      properties:
        error:
          $ref: '#/components/schemas/ErrorBody'
  responses:
    NotFound:
      description: '`not_found`: the carrier has no record of the number, or no such key.'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: not_found
              message: UPS returned no track details for that number
    Unauthorized:
      description: '`unauthorized`: missing, wrong or revoked key, or a disabled account.'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: unauthorized
              message: Invalid API key
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: '`Authorization: Bearer lsk_live_…`'
    apiKeyHeader:
      type: apiKey
      in: header
      name: x-api-key
      description: '`x-api-key: lsk_live_…`'