Discover/eClipping API
live

eClipping APIopa.eclipping.org ↗

Search Oklahoma Press Association public-notice archives for sheriff's sale notices by county and date. Returns parsed case numbers, property descriptions, and auction dates.

Endpoint health
verified 5h ago
search_sheriff_sales
1/1 passing latest checkself-healing
Endpoints
1
Updated
5h ago

What is the eClipping API?

The OPA eClipping Sheriff's Sales API provides access to newspaper public-notice archives maintained by the Oklahoma Press Association, returning up to 9 structured fields per notice through a single search_sheriff_sales endpoint. Notices are extracted from OCR'd newspaper pages scanned from Oklahoma county publications, with each notice yielding fields such as case_number, auction_date, auction_time, property_description, and property_address. Coverage spans all Oklahoma counties and any publication date range within the archive.

This call costs10 credits / call— charged only on success
Try it
1-based page of matching newspaper pages.
Oklahoma county name as shown in the site's county filter (case-insensitive). Only newspapers assigned to this county are searched.
Latest publication date to search, ISO date YYYY-MM-DD; must not be before date_from. Omitted = today.
Earliest publication date to search, ISO date YYYY-MM-DD. Omitted = 30 days before today.
Newspaper pages per call, clamped to a maximum of 20.
→ api.parse.bot/scraper/95ab16dd-9fed-4d3a-8f51-0063fbb0166e/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/95ab16dd-9fed-4d3a-8f51-0063fbb0166e/search_sheriff_sales?county=oklahoma&date_from=2026-09-13' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace opa-eclipping-org-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: Oklahoma sheriff-sale public notices — bounded, re-runnable."""
from parse_apis.opa_eclipping_org_api import OpaEclipping, County, InputFormatInvalid

client = OpaEclipping()

# Search recent sheriff-sale notices in Oklahoma County, capped at 10 items.
for notice in client.notices.search(county=County.OKLAHOMA, limit=10):
    addr = notice.property_address or "no address listed"
    value = f"${notice.appraised_value:,}" if notice.appraised_value else "n/a"
    print(f"{notice.case_number}  {addr}  appraised: {value}")

# Drill into one notice for full text.
hit = client.notices.search(county=County.TULSA, limit=1).first()
if hit is not None:
    print(f"\n--- {hit.case_number} ---")
    if hit.auction_date:
        print(f"Auction: {hit.auction_date} {hit.auction_time or ''}")
    print(hit.notice_text[:200])

# Fetch the full report wrapper to inspect newspaper-page metadata.
try:
    report = client.sale_reports.search(county=County.OKLAHOMA, page_size=5)
except InputFormatInvalid as e:
    print(f"Bad input: {e.message}")
else:
    print(f"\nCounty: {report.county}  window: {report.date_from} → {report.date_to}")
    print(f"Matched {report.total_pages_matched} newspaper pages, showing {len(report.newspaper_pages)}:")
    for np in report.newspaper_pages:
        print(f"  {np.publication} {np.published_date} p.{np.page} — {np.notice_count} notices")

print("\nexercised: notices.search / sale_reports.search")
All endpoints · 1 totalmissing one? ·

Searches the Oklahoma Press Association public-notice archive for newspaper pages that contain the phrase "sheriff's sale", restricted to newspapers of one Oklahoma county and a publication date window, then reads each matching page's OCR text and extracts the individual sheriff's sale notices on it. Result grain: `notices` is one row per sheriff's sale notice found (a notice republished on several dates appears once per publication date); `newspaper_pages` lists every newspaper page in the current page of results with the number of notices parsed from it. Pagination is over newspaper pages (`page`/`page_size`, `total_pages_matched`, `has_more`), not over notices, and each newspaper page costs one extra request, so a page_size of 10 is roughly 13 requests. Fields parsed from OCR text are best-effort: `auction_date` (ISO), `auction_time`, `property_description` (legal description), `property_address`, `appraised_value` (whole dollars) and `case_number` may be null when the notice text is garbled or uses an unusual layout; `notice_text` carries the raw notice text (truncated at 6000 characters) for callers who need to parse further. Omitting the dates searches the last 30 days ending today. The archive only covers roughly the last twelve months. A county/date window with no matching pages returns an empty result with total_pages_matched 0.

Input
ParamTypeDescription
pageinteger1-based page of matching newspaper pages.
countyrequiredstringOklahoma county name as shown in the site's county filter (case-insensitive). Only newspapers assigned to this county are searched.
date_tostringLatest publication date to search, ISO date YYYY-MM-DD; must not be before date_from. Omitted = today.
date_fromstringEarliest publication date to search, ISO date YYYY-MM-DD. Omitted = 30 days before today.
page_sizeintegerNewspaper pages per call, clamped to a maximum of 20.
Response
{
  "type": "object",
  "fields": {
    "page": "current page number of newspaper pages",
    "county": "echo of the county searched, title-cased",
    "date_to": "ISO end of the searched publication window",
    "notices": "array of parsed sheriff's sale notices: case_number, auction_date (ISO), auction_time, property_description, property_address, appraised_value (whole USD, nullable), notice_text, page_id, publication, published_date, page",
    "has_more": "true when a later page of newspaper pages exists",
    "date_from": "ISO start of the searched publication window",
    "page_size": "newspaper pages per call after clamping",
    "failed_pages": "array of {page_id, status_code} for newspaper pages whose text could not be fetched",
    "newspaper_pages": "array of newspaper pages in this result page: page_id, publication, published_date (ISO), page (printed page label), notice_count",
    "total_pages_matched": "total newspaper pages matching the search across all pages (from the site)"
  },
  "sample": {
    "data": {
      "page": 1,
      "county": "Beckham",
      "date_to": "2026-10-12",
      "notices": [
        {
          "page": "A006",
          "page_id": "171401797",
          "case_number": "CJ-2025-130",
          "notice_text": "NOTICE OF SALE OF LAND UNDER EXECUTION THIS IS AN ATTEMPT TO COLLECT A DEBT AND ANY INFORMATION OBTAINED WILL BE USED FOR THAT PURPOSE Notice is hereby given that on the 3rd day of November 2026 at 10 00 A M location at Courthouse or Room Lobby of the Beckham County Courthouse in Sayre Oklahoma the undersigned Sheriff will offer for sale ...",
          "publication": "Beckham County Record (Sayre)",
          "auction_date": "2026-11-03",
          "auction_time": "10:00 AM",
          "published_date": "2026-10-10",
          "appraised_value": 70000,
          "property_address": "120 South Broadway Street Sayre OK 73662",
          "property_description": "Lots 17 and 18 in Block 66 of THE ORIGINAL TOWN OF SAYRE Beckham County Oklahoma commonly known as 120 South Broadway Street Sayre OK 73662"
        }
      ],
      "has_more": true,
      "date_from": "2026-09-20",
      "page_size": 5,
      "failed_pages": [],
      "newspaper_pages": [
        {
          "page": "A006",
          "page_id": "171401797",
          "publication": "Beckham County Record (Sayre)",
          "notice_count": 4,
          "published_date": "2026-10-10"
        },
        {
          "page": "A007",
          "page_id": "171401798",
          "publication": "Beckham County Record (Sayre)",
          "notice_count": 1,
          "published_date": "2026-10-10"
        }
      ],
      "total_pages_matched": 6
    },
    "status": "success"
  }
}

About the eClipping API

What the API Returns

The search_sheriff_sales endpoint searches the Oklahoma Press Association's public-notice archive for newspaper pages that contain sheriff's sale notices, filtered by county and publication date. Each call returns a notices array where every element includes case_number, auction_date (ISO format), auction_time, property_description, and property_address. The response also surfaces the underlying newspaper_pages array, which records the page_id, publication name, published_date, printed page label, and notice_count for each matched newspaper page.

Filtering and Pagination

The county parameter is required and accepts any Oklahoma county name as it appears in the site's county filter — matching is case-insensitive. Date range is controlled by date_from and date_to (both ISO YYYY-MM-DD), defaulting to the last 30 days when omitted. Results are paginated across newspaper pages using the page and page_size parameters; page_size is clamped to a maximum of 20 newspaper pages per call. The has_more boolean and total_pages_matched field let callers determine whether additional pages exist.

Error Handling and Transparency

When the text of a matched newspaper page cannot be retrieved, that page's page_id and status_code appear in the failed_pages array rather than silently disappearing from results. This lets downstream code distinguish between a page with zero notices and a page that failed to load. The county, date_from, date_to, and page_size fields in the response echo back the normalized values actually used for the query, making it straightforward to verify what was searched.

Reliability & maintenanceVerified

The eClipping API is a managed, monitored endpoint for opa.eclipping.org — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when opa.eclipping.org changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official opa.eclipping.org API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
5h ago
Latest check
1/1 endpoint passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Track upcoming sheriff's sale auctions in a specific Oklahoma county by polling auction_date fields weekly.
  • Build a statewide property-distress monitor by iterating across all 77 Oklahoma counties and aggregating property_address data.
  • Alert real-estate investors when a new case_number appears for a target ZIP code or neighborhood within property_description.
  • Archive parsed notice data over time by storing page_id and published_date from the newspaper_pages array for audit trails.
  • Cross-reference case_number values against county court records to enrich notice data with plaintiff and defendant details.
  • Validate publication compliance by confirming that a required legal notice appeared in a county newspaper within a specific date_from/date_to window.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 req/min

Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does the Oklahoma Press Association provide an official developer API for this data?+
No. The Oklahoma Press Association's eClipping portal at opa.eclipping.org is a subscriber-facing archive without a documented public API. This Parse API provides structured programmatic access to the same public-notice content.
What exactly is returned in the `notices` array for each sheriff's sale?+
Each notice object includes case_number, auction_date (ISO date), auction_time, property_description, property_address, and additional appraised-value or legal-description fields where present in the OCR text. Notices are extracted from the matched newspaper pages; if a page's text could not be fetched, that page appears in failed_pages instead.
Can I search notices across multiple counties in a single call?+
The county parameter accepts one county per call. To aggregate across multiple counties you would issue one request per county. You can fork this API on Parse and revise it to accept a list of counties and merge results in a single response.
Does the API cover other types of public notices beyond sheriff's sales, such as probate notices or foreclosure filings?+
Not currently. The API is scoped to sheriff's sale notices only. The OPA eClipping archive contains other legal-notice categories. You can fork this API on Parse and revise it to target different notice types from the same archive.
How far back does the archive go, and how current is the data?+
The available date range depends on what the OPA eClipping archive holds for a given county newspaper. The date_from parameter defaults to 30 days before today, and date_to defaults to today, but you can specify any ISO date range. Freshness is tied to when participating newspapers upload pages to the archive, so very recent editions may not appear immediately.
Page content last updated . Spec covers 1 endpoint from opa.eclipping.org.
Related APIs in Government PublicSee all →
oscn.net API
Search Oklahoma State Court Network records across 80+ counties to find cases, review detailed docket information, and track daily court filings. Quickly look up case details by county and district court type to stay informed on legal proceedings and filing activity.
sarasotaclerk.com API
Search and retrieve official land and court records from Sarasota County including foreclosures and Lis Pendens documents by name, date, or document type. Access detailed record information with full pagination support to find the specific legal documents you need.
encheres-publiques.com API
Search and browse real estate, vehicle, art, and equipment auctions across France, viewing detailed lot information and upcoming auction events from various organizers. Filter auction listings by category and type to find specific items and compare auction details to make informed bidding decisions.
auction.com API
auction.com API
eauctionsindia.com API
Search and browse property auction listings on eAuctions India, including live ongoing auctions and detailed specifications for each property. Get comprehensive auction information like bidding details, property descriptions, and metadata to help you find and monitor properties of interest.
property-appraiser.org API
Search for properties in Osceola County, Florida by street address to instantly access detailed parcel information such as property valuations, construction year, and living area. Get comprehensive property data to research real estate values, verify property details, or make informed decisions about properties in the area.
sfplanninggis.org API
Access data from sfplanninggis.org.
bidplus.gem.gov.in API
Access data from bidplus.gem.gov.in.