Skip to main content

PyDOGE API is an advanced, Python wrapper for interacting with the public-facing API of the Department of Government Efficiency (DOGE)

Project description

PyDOGE Logo

A Python library to interact with Department of Government Efficiency (DOGE) API.


🧾 Table of Contents
  1. About The Project
  2. Highlights
  3. Getting Started
  4. Usage
  5. Contributors
  6. Acknowledgements

🐍 About The Project

PyDOGE API is an advanced, Python wrapper for interacting with the public-facing API of the Department of Government Efficiency (DOGE) — a federal initiative aimed at increasing transparency and fiscal accountability by sharing detailed datasets on:

  • 💸 Cancelled grants
  • 📑 Contract terminations
  • 🏢 Lease reductions
  • 🧾 Payment transactions

🚀 Features

  • Auto-pagination (sync or async, fetch all pages if needed)
  • .export() to CSV, Excel, or JSON with timestamped filenames
  • .to_dataframe() for Pandas users
  • .summary() with analytics (rows, nulls, dtypes, stats)
  • summary(save_as="...") for file logging
  • Returns Pydantic models & dict output
  • Retry-safe client with 429 handling

This package enables data scientists and analysts to programmatically access and analyze the data with ease.

📌 Getting Started

Installation

Install:

pip install pydoge-api

Upgrade:

pip install --upgrade pydoge-api

Documentation

Full developer docs with API reference, usage, and model schema:

📚 Usage

Synchronous Fetching

from pydoge_api import DogeAPI

api = DogeAPI(
    fetch_all=True,             # get all pages
    output_pydantic=False,      # dict output
    handle_response=True,       # parse response
    run_async=False             # ← synchronous mode
)

# Grants sorted by savings
grants = api.savings.get_grants(sort_by="savings")

# Filter payments by agency
payments = api.payments.get_payments(filter="agency", filter_value="NASA")

# Export to CSV
grants.export("grants_q1", format="csv")

# Show summary in terminal
grants.summary(verbose=True)

# Save the summary as markdown
grants.summary(save_as="logs/grants_summary.md")

Asynchronous Pagination

api = DogeAPI(
    fetch_all=True,
    output_pydantic=True,
    handle_response=True,
    run_async=True              # ← enable async parallel fetch
)

grants = api.savings.get_grants(sort_by="value")
print(grants.meta.total_results)

# Export to Excel
grants.export("grants_report", format="xlsx")

(back to top)

👪 Contributors

All contributions are welcome. If you have a suggestion that would make this better, please fork the repo and create a merge request. You can also simply open an issue with the label 'enhancement'.

Don't forget to give the project a star! Thanks again!

👏 Acknowledgments

Inspiration, code snippets, etc.

(back to top)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pydoge_api-0.1.2.tar.gz (501.7 kB view details)

Uploaded Source

Built Distribution

pydoge_api-0.1.2-py3-none-any.whl (13.3 kB view details)

Uploaded Python 3

File details

Details for the file pydoge_api-0.1.2.tar.gz.

File metadata

  • Download URL: pydoge_api-0.1.2.tar.gz
  • Upload date:
  • Size: 501.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.11

File hashes

Hashes for pydoge_api-0.1.2.tar.gz
Algorithm Hash digest
SHA256 ccd1d710dcd4afd72c65fe5494dd941231327a626eeca54a3f7b17e82aac7f56
MD5 55ea0e9d6400036f1e592a1973b895e7
BLAKE2b-256 914ec7f23957c58f0d6569846141345c8beceecb0c147bcbafeb14a8d69f3ddd

See more details on using hashes here.

File details

Details for the file pydoge_api-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: pydoge_api-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 13.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.11

File hashes

Hashes for pydoge_api-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 2dcb57d8d679064084d2fd910cc83813dc037590eca7ca176afc51d6d1e30980
MD5 428df4546f1c0f28001edb118dc895c5
BLAKE2b-256 48bf2209dd6674c391a4e0ecea6110f5ebd455bb245158dba81f9d8e201505bb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page