---
title: "FeedSummary"
url: "https://console.9fin.com/apis/abf-service/versions/a79a8be2-dd41-4541-904d-592dc9ccf46e/schemas/FeedSummary"
---

> Full API specification: https://console.9fin.com/apis/abf-service/versions/a79a8be2-dd41-4541-904d-592dc9ccf46e.md

# FeedSummary

Freshness of the ABF feed, for deciding whether to pull. Poll this before requesting a full listing: if `latest_updated_at` has not moved since your last pull, nothing changed and you can skip it. It is also how you tell a quiet market from a stalled feed — a `latest_updated_at` that stops advancing for longer than 9fin's usual publishing rhythm means the data is stale, not that nothing priced.

## OpenAPI definition

```yaml
openapi: 3.1.0
info:
  title: 9fin ABF API
  version: 0.1.6
servers:
  - description: Production environment
    url: https://api.9fin.com
components:
  schemas:
    ChangedSince:
      description: How much changed since the watermark you supplied.
      properties:
        deals:
          description: Deals whose `updated_at` falls in the requested window.
          title: Deals
          type: integer
      required:
        - deals
      title: ChangedSince
      type: object
    ResourceSummary:
      description: When a resource last changed.
      properties:
        latest_updated_at:
          anyOf:
            - format: date-time
              type: string
            - type: "null"
          description: >-
            Most recent `updated_at` across every row of this resource (UTC).
            Held behind real time by a small buffer, so store it and send it
            back as `since` on your next call.


            Null when there is nothing to report yet. Keep the watermark you
            already hold and retry — do not pass `null` as `since`.
          title: Latest Updated At
      required:
        - latest_updated_at
      title: ResourceSummary
      type: object
    FeedSummary:
      description: >-
        Freshness of the ABF feed, for deciding whether to pull.


        Poll this before requesting a full listing: if `latest_updated_at` has
        not

        moved since your last pull, nothing changed and you can skip it. It is
        also

        how you tell a quiet market from a stalled feed — a `latest_updated_at`
        that

        stops advancing for longer than 9fin's usual publishing rhythm means the

        data is stale, not that nothing priced.
      examples:
        - changed_since:
            deals: 3
          deals:
            latest_updated_at: 2026-08-21T09:14:02.117Z
      properties:
        changed_since:
          anyOf:
            - $ref: "#/components/schemas/ChangedSince"
            - type: "null"
          description: Counts of rows changed in the window you asked for — at or after
            `since`, and at or before `until` when given. Null when `since` is
            omitted.
        deals:
          $ref: "#/components/schemas/ResourceSummary"
          description: Freshness of `/v0/abf/deals`.
      required:
        - deals
        - changed_since
      title: FeedSummary
      type: object
```
