Python utilities for scraping OSCN cases.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

OSCN utilities

A python library for scraping case information from the Oklahoma State Courts Network.


oscn > Python package source to provide an api for retrieving and parsing case records.

examples > Source HTML files for testing

scripts > Python scripts showing use of the oscn package

  • demostrates use of the request Case and Caselist
  • saves a list of all counts for a list of counties and years
  • saves a list of counts passing a test for a list of counties and years
  • a stub for testing parsing attempts using BeautifulSoup
  • a stub for developing using saved examples

OSCN package


  • counties: Returns a list of counties.


  • Case: Returns a single case.
  • CaseList: Returns an iterator for retrieving cases for a county and year.

CaseLists can be filtered using .find(). See scripts/ for details


Parsers accept the html of an OSCN case page and return python objects.

  • filed: returns a string of the filing date (e.g. 12/25/2017)
  • closed: returns a string of the date the case was closed. Return None if not closed.
  • counts: returns of list of counts found in a case
  • judge: returns a string of the judge's name
  • parties: returns a list of objects that look like this: {'name': 'Some Name', 'type': 'Description'}
  • docket: returns a list of rows in a docket
  • events: returns a list of rows in the event table
  • attorneys: returns a list of strings found in the attorney table

Development Install

  1. Create and activate a Python 3.6 virtual env
  2. git clone
  3. cd oscn
  4. pip install -e .


Install with pip install oscn

Script example:

import oscn

Request a single case:

oscn.request.Case(county='tulsa', year='2018', number=84)

or request a list of cases to iterate:

oscn.request.CaseList(county='adair', year='2016')

Run test scripts

  • python scripts/{}

Deployment steps

  1. python3 sdist bdist_wheel
  2. twine upload dist/*