> ## Documentation Index
> Fetch the complete documentation index at: https://docs.oneshotagent.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Lobbying

> Look up a company’s US federal lobbying filings, firms, reported spending and issues.

Search US federal lobbying registrations and quarterly reports by client name, newest posted first. Reports are posted continuously. The name match is partial: Nvidia can match both NVIDIA and NVIDIA CORPORATION, with different client records for different lobbying firms. Tell clients apart by client\_id, which is unique across lobbying firms. Each filing includes its firm, client, reported income and expenses in US dollars, issues, government entities and lobbyist counts. Lobbyist names are not returned. Missing amounts are null. No match is a completed result with total 0 and an empty filings list. Cite evidence.retrieved\_at as the retrieval date. Senate Office of Public Records cannot vouch for the data or analyses derived from these data after the data have been retrieved from LDA.gov.

## Authentication

Requires x402 payment in the `payment-signature` header.

## Request Body

<ParamField body="client_name" type="string" required>
  Part of the client name, for example Nvidia. 2 to 100 characters.
</ParamField>

<ParamField body="filing_year" type="integer">
  Filing year, no later than the current year; omit to search all years. At least 1999.
</ParamField>

<ParamField body="limit" type="integer">
  Most filings to return, newest posted first. From 1 to 25. Defaults to `10`.
</ParamField>

<Snippet file="audit-context-params.mdx" />

## Response (200 OK)

Top-level envelope: `success` (boolean) and `data` (object). All fields below are nested under `data`.

<ResponseField name="data.request_id" type="string">
  Durable job ID for audit and lookup
</ResponseField>

<ResponseField name="data.status" type="string">
  Job status: `completed`
</ResponseField>

<ResponseField name="data.tool" type="string">
  Always `company_lobbying`
</ResponseField>

<ResponseField name="data.result" type="object">
  The answer, described under Result below
</ResponseField>

<ResponseField name="data.evidence" type="object">
  Where the answer came from and when
</ResponseField>

<ResponseField name="data.evidence.source" type="string">
  The public body the data comes from. Always `US Senate Office of Public Records`.
</ResponseField>

<ResponseField name="data.evidence.source_kind" type="string">
  `public` when the data comes from a public body, `commercial` otherwise
</ResponseField>

<ResponseField name="data.evidence.retrieved_at" type="string">
  When the lookup was made, as an ISO 8601 UTC time
</ResponseField>

<ResponseField name="data.evidence.as_of" type="string">
  When the source says the fact was last updated, or `null` when the source gives no date
</ResponseField>

## Result

Nested under `data.result`.

<ResponseField name="data.result.total" type="number">
  Total filings matching the search, including those beyond limit.
</ResponseField>

<ResponseField name="data.result.filings" type="object[]">
  Filings.
</ResponseField>

<ResponseField name="data.result.filings[].filing_id" type="string">
  Filing id.
</ResponseField>

<ResponseField name="data.result.filings[].filing_type" type="string">
  Display text for the filing type. `null` when the source gives no value.
</ResponseField>

<ResponseField name="data.result.filings[].year" type="integer">
  Year.
</ResponseField>

<ResponseField name="data.result.filings[].period" type="string">
  Period. `null` when the source gives no value.
</ResponseField>

<ResponseField name="data.result.filings[].registrant" type="string">
  The lobbying firm. `null` when the source gives no value.
</ResponseField>

<ResponseField name="data.result.filings[].client" type="string">
  Client. `null` when the source gives no value.
</ResponseField>

<ResponseField name="data.result.filings[].client_id" type="integer">
  Source client identifier, unique across lobbying firms; use it to distinguish matched clients.
</ResponseField>

<ResponseField name="data.result.filings[].income_usd" type="number">
  Income usd. `null` when the source gives no value.
</ResponseField>

<ResponseField name="data.result.filings[].expenses_usd" type="number">
  Expenses usd. `null` when the source gives no value.
</ResponseField>

<ResponseField name="data.result.filings[].posted_at" type="string">
  Posted at. `null` when the source gives no value.
</ResponseField>

<ResponseField name="data.result.filings[].document_url" type="string">
  Document url. `null` when the source gives no value.
</ResponseField>

<ResponseField name="data.result.filings[].issues" type="object[]">
  Issues.
</ResponseField>

<ResponseField name="data.result.filings[].issues[].code" type="string">
  Code. `null` when the source gives no value.
</ResponseField>

<ResponseField name="data.result.filings[].issues[].area" type="string">
  Area. `null` when the source gives no value.
</ResponseField>

<ResponseField name="data.result.filings[].issues[].description" type="string">
  Description. `null` when the source gives no value.
</ResponseField>

<ResponseField name="data.result.filings[].issues[].government_entities" type="string[]">
  Entity names as filed; an unnamed entity is null.
</ResponseField>

<ResponseField name="data.result.filings[].issues[].lobbyist_count" type="integer">
  Lobbyist count.
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST https://win.oneshotagent.com/v1/tools/lookup/company-lobbying \
    -H "Content-Type: application/json" \
    -H "payment-signature: <base64 x402 payment>" \
    -d '{
      "client_name": "Nvidia",
      "filing_year": 2026,
      "limit": 1
    }'
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch("https://win.oneshotagent.com/v1/tools/lookup/company-lobbying", {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      "payment-signature": paymentProof,
    },
    body: JSON.stringify({
      "client_name": "Nvidia",
      "filing_year": 2026,
      "limit": 1
    }),
  });
  ```

  ```typescript SDK theme={null}
  const result = await agent.tool('lookup/company-lobbying', {
    client_name: 'Nvidia',
    filing_year: 2026,
    limit: 1
  });
  console.log(result.data.result);
  console.log(result.data.evidence);
  ```
</RequestExample>

<ResponseExample>
  ```json Response (200) theme={null}
  {
    "success": true,
    "data": {
      "request_id": "uuid",
      "receipt_id": "rcpt_...",
      "status": "completed",
      "tool": "company_lobbying",
      "result": {
        "total": 12,
        "filings": [
          {
            "filing_id": "aec4d962-2a56-4872-82ed-d36d6fd3302e",
            "filing_type": "2nd Quarter - Report",
            "year": 2026,
            "period": "2nd Quarter (Apr 1 - June 30)",
            "registrant": "THE VOGEL GROUP",
            "client": "NVIDIA",
            "client_id": 68434,
            "income_usd": 60000,
            "expenses_usd": null,
            "posted_at": "2026-07-20T22:07:55-04:00",
            "document_url": "https://lda.gov/filings/public/filing/aec4d962-2a56-4872-82ed-d36d6fd3302e/print/",
            "issues": [
              {
                "code": "DEF",
                "area": "Defense",
                "description": "Issues related to semiconductor design & fabrication, and artificial intelligence ...",
                "government_entities": [
                  "HOUSE OF REPRESENTATIVES",
                  "SENATE"
                ],
                "lobbyist_count": 5
              }
            ]
          }
        ]
      },
      "evidence": {
        "source": "US Senate Office of Public Records",
        "source_kind": "public",
        "retrieved_at": "2026-10-15T12:00:00.000Z",
        "calls": [
          {
            "retrieved_at": "2026-10-15T12:00:00.000Z"
          }
        ],
        "as_of": "2026-07-20T22:07:55-04:00"
      }
    }
  }
  ```
</ResponseExample>

<Info>See [Pricing](/pricing) for this tool's price. A wallet (x402) call receives it in the 402 quote before anything is charged; a call paid from prepaid credits is charged when the API accepts the request and answers `200`.</Info>

## Notes

* Results return inline. The finished job stays available at `/v1/requests/{request_id}`


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.