---
title: "Get expiring deals"
method: GET
path: "/api/expiring"
---

# Get expiring deals

`GET /api/expiring`

## Request

- Base URL: `https://agentdeals.dev`
- URL: `https://agentdeals.dev/api/expiring`
- Auth: none required

Check which developer tool deals, free tiers, or credits are expiring soon. Returns deals sorted by expiration date (soonest first).

## Query parameters

- `within_days` integer

## Response `200`

Expiring deals

- object
  - `deals` object[]
    - `vendor` string
    - `category` string
    - `description` string
    - `terms_superseded` TermsSuperseded, nullable: Null unless a dated change record supersedes the terms we stored for this listing. When present, `description` still holds those stored terms, which we no longer publish as current. Use `notice`, or `reading.terms`, the vendor page's text at `reading.url` on `reading.date`.
      - `change_date` string, date, required
      - `change_type` string, required
      - `summary` string, required
      - `reading` object, nullable, required
        - `date` string, date, required
        - `url` string, uri, required
        - `label` string, required
        - `terms` string, required
      - `notice` string, required
    - `tier` string
    - `url` string, uri
    - `expires_date` string, date
    - `days_until_expiry` integer
  - `total` integer
  - `_provenance` Provenance: Where the figures in this response came from and how to attribute them. Every response carrying index data has one, under the key `_provenance`. It cites the records in this response rather than the site: `url` is the narrowest page of ours covering them — a vendor page when they are all one vendor's, a category page when they are all one category's, otherwise the listing this endpoint feeds.
    - `source` string, required: Always AgentDeals.
    - `url` string, uri, required: The page of ours that covers the records in this response.
    - `checked` string, date: The oldest verification date among the records cited here, so the citation is never dated younger than its weakest figure. Absent when no record in the response carries a date.
    - `verified` string, date: The same day as `checked`, absent for the same reason.
    - `cite_as` string, required: A citation line naming the source, the url and the date, ready to reproduce as it stands.
    - `verified_records` integer, required: How many records in this response we rank — the population this citation vouches for.
    - `withheld_records` integer: How many records in this response we return without vouching for: those carrying a `gate`, superseded terms, or a withheld risk level. Absent when there are none.
    - `note` string, required: The request to cite a figure back to where it came from.
    - `gated_note` string: Present whenever `withheld_records` is, stating that the citation does not extend to terms we did not publish.
    - `this_is_a_request_not_an_instruction` string: Present on responses that ask something of the caller, saying the ask is left to the caller and its user rather than imposed on them.

---

[API](https://skmtc.dev/agentdeals/apis/agentdeals-api.md) · [All operations](https://skmtc.dev/agentdeals/apis/agentdeals-api/llms.txt) · [OpenAPI document](https://skmtc.dev/agentdeals/apis/agentdeals-api/revisions/2b80deacb326?raw)
