Skip to content

Payments

PaymentsAPI

PaymentsAPI(client: DogeAPIClient, api: DogeAPI)

Access payments-related endpoints (/payments/*).

client : DogeAPIClient HTTP client instance. api : DogeAPI Shared config provider for fetch_all, output_pydantic, etc.

Methods:

  • get_payments –

    Retrieve payment records made by government agencies.

Source code in src/pydoge_api/endpoints/payments.py
14
15
16
17
18
19
20
21
22
23
24
def __init__(self, client: DogeAPIClient, api: 'DogeAPI'):
    """
    Parameters
    ----------
    client : DogeAPIClient
        HTTP client instance.
    api : DogeAPI
        Shared config provider for fetch_all, output_pydantic, etc.
    """
    self.client = client
    self.api = api

get_payments

get_payments(
    *,
    agency: Optional[str] = None,
    year: Optional[int] = None,
    page: int = 1,
    per_page: int = 100
)

Retrieve payment records made by government agencies.

Parameters:

  • agency

    (str, default: None ) –

    Filter by agency name.

  • year

    (int, default: None ) –

    Filter by transaction year.

  • page

    (int, default: 1 ) –

    Starting page number.

  • per_page

    (int, default: 100 ) –

    Number of results per page.

Returns:

  • PaymentResponse or dict or Response –

    Pydantic model if output_pydantic=True, exportable dict if output_pydantic=False, or raw response if handle_response=False.

Source code in src/pydoge_api/endpoints/payments.py
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
def get_payments(
    self,
    *,
    agency: Optional[str] = None,
    year: Optional[int] = None,
    page: int = 1,
    per_page: int = 100,
):
    """
    Retrieve payment records made by government agencies.

    Parameters
    ----------
    agency : str, optional
        Filter by agency name.
    year : int, optional
        Filter by transaction year.
    page : int, default=1
        Starting page number.
    per_page : int, default=100
        Number of results per page.

    Returns
    -------
    PaymentResponse or dict or httpx.Response
        Pydantic model if `output_pydantic=True`,
        exportable dict if `output_pydantic=False`,
        or raw response if `handle_response=False`.
    """
    params = PaymentParams(agency=agency, year=year, page=page, per_page=per_page)
    query = params.model_dump(exclude_none=True)

    result = self.client.get("/payments", params=query, decode=self.api.handle_response)
    if not self.api.handle_response:
        return result

    model = PaymentResponse(**result)

    return _fetch_paginated(
        api=self.api,
        client=self.client,
        endpoint="/payments",
        params=params,
        initial_response=model,
        key="payments",
        model_cls=PaymentResponse,
    )