openapi: 3.1.0 info: title: FiscalNote PolicyNote API description: >- The FiscalNote PolicyNote API delivers programmatic access to legislative, regulatory, and stakeholder intelligence datasets spanning Congress, all 50 U.S. states, and more than 100 countries through a secure, governed architecture designed for machine consumption. The API includes an MCP server enabling MCP-compatible AI agents from platforms such as Anthropic, OpenAI, Google Gemini, and Microsoft to query structured policy data, verified analysis, and real-time monitoring signals. It also provides a comprehensive real-time presidential transcript feed delivering primary-source transcripts of presidential communications including executive orders, proclamations, press statements, and public remarks, purpose-built for programmatic consumption to eliminate AI hallucinations in compliance workflows. version: '1.0' contact: name: FiscalNote Support url: https://fiscalnote.com/contact termsOfService: https://fiscalnote.com/terms externalDocs: description: PolicyNote API Documentation url: https://fiscalnote.com/products/policynote-api servers: - url: https://api.fiscalnote.com description: Production Server tags: - name: Legislation description: >- Access legislative data spanning Congress, all 50 U.S. states, and international jurisdictions. - name: Policy Intelligence description: >- Access AI-powered policy analysis, impact summaries, and monitoring signals for policy changes. - name: Presidential Transcripts description: >- Access the real-time presidential transcript feed delivering primary-source transcripts of presidential communications. - name: Regulations description: >- Access regulatory data including proposed and final rules across federal and state agencies. - name: Stakeholders description: >- Access stakeholder intelligence including government officials and organizational relationships. security: - apiKey: [] paths: /policynote/v1/legislation: get: operationId: listLegislation summary: FiscalNote List legislation description: >- Returns a paginated list of legislation records matching the specified filter criteria. Results include bills, resolutions, and other legislative measures from federal, state, and international jurisdictions. tags: - Legislation parameters: - $ref: '#/components/parameters/jurisdictionParam' - $ref: '#/components/parameters/sessionParam' - $ref: '#/components/parameters/statusParam' - $ref: '#/components/parameters/queryParam' - $ref: '#/components/parameters/limitParam' - $ref: '#/components/parameters/offsetParam' - $ref: '#/components/parameters/sortParam' - $ref: '#/components/parameters/updatedSinceParam' responses: '200': description: A paginated list of legislation records. content: application/json: schema: $ref: '#/components/schemas/LegislationListResponse' '401': description: Authentication credentials are missing or invalid. content: application/json: schema: $ref: '#/components/schemas/Error' '429': description: Rate limit exceeded. content: application/json: schema: $ref: '#/components/schemas/Error' /policynote/v1/legislation/{legislationId}: get: operationId: getLegislation summary: FiscalNote Get legislation by ID description: >- Returns detailed information about a specific piece of legislation including its full text, sponsors, co-sponsors, committee assignments, vote history, and current status. tags: - Legislation parameters: - $ref: '#/components/parameters/legislationIdParam' responses: '200': description: Detailed legislation record. content: application/json: schema: $ref: '#/components/schemas/Legislation' '401': description: Authentication credentials are missing or invalid. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Legislation not found. content: application/json: schema: $ref: '#/components/schemas/Error' /policynote/v1/regulations: get: operationId: listRegulations summary: FiscalNote List regulations description: >- Returns a paginated list of regulatory records including proposed rules, final rules, and notices from federal and state regulatory agencies. tags: - Regulations parameters: - $ref: '#/components/parameters/jurisdictionParam' - $ref: '#/components/parameters/agencyParam' - $ref: '#/components/parameters/regulationStatusParam' - $ref: '#/components/parameters/queryParam' - $ref: '#/components/parameters/limitParam' - $ref: '#/components/parameters/offsetParam' - $ref: '#/components/parameters/updatedSinceParam' responses: '200': description: A paginated list of regulation records. content: application/json: schema: $ref: '#/components/schemas/RegulationListResponse' '401': description: Authentication credentials are missing or invalid. content: application/json: schema: $ref: '#/components/schemas/Error' '429': description: Rate limit exceeded. content: application/json: schema: $ref: '#/components/schemas/Error' /policynote/v1/regulations/{regulationId}: get: operationId: getRegulation summary: FiscalNote Get regulation by ID description: >- Returns detailed information about a specific regulation including its full text, issuing agency, comment period, and current status. tags: - Regulations parameters: - name: regulationId in: path required: true description: >- The unique identifier of the regulation. schema: type: string responses: '200': description: Detailed regulation record. content: application/json: schema: $ref: '#/components/schemas/Regulation' '401': description: Authentication credentials are missing or invalid. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Regulation not found. content: application/json: schema: $ref: '#/components/schemas/Error' /policynote/v1/stakeholders: get: operationId: listStakeholders summary: FiscalNote List stakeholders description: >- Returns a paginated list of stakeholder records including government officials, legislators, and other key policy actors. tags: - Stakeholders parameters: - $ref: '#/components/parameters/jurisdictionParam' - $ref: '#/components/parameters/queryParam' - $ref: '#/components/parameters/limitParam' - $ref: '#/components/parameters/offsetParam' responses: '200': description: A paginated list of stakeholder records. content: application/json: schema: $ref: '#/components/schemas/StakeholderListResponse' '401': description: Authentication credentials are missing or invalid. content: application/json: schema: $ref: '#/components/schemas/Error' '429': description: Rate limit exceeded. content: application/json: schema: $ref: '#/components/schemas/Error' /policynote/v1/transcripts: get: operationId: listPresidentialTranscripts summary: FiscalNote List presidential transcripts description: >- Returns a paginated list of presidential transcripts including executive orders, proclamations, press statements, and public remarks. This feed delivers primary-source, verified transcripts purpose-built for programmatic consumption to eliminate AI hallucinations. tags: - Presidential Transcripts parameters: - name: type in: query required: false description: >- Filter by transcript type such as executive_order, proclamation, press_statement, or public_remarks. schema: type: string enum: - executive_order - proclamation - press_statement - public_remarks - interview - formal_event - $ref: '#/components/parameters/queryParam' - $ref: '#/components/parameters/limitParam' - $ref: '#/components/parameters/offsetParam' - $ref: '#/components/parameters/updatedSinceParam' - name: dateFrom in: query required: false description: >- Filter transcripts from this date onward in ISO 8601 format. schema: type: string format: date - name: dateTo in: query required: false description: >- Filter transcripts up to this date in ISO 8601 format. schema: type: string format: date responses: '200': description: A paginated list of presidential transcript records. content: application/json: schema: $ref: '#/components/schemas/TranscriptListResponse' '401': description: Authentication credentials are missing or invalid. content: application/json: schema: $ref: '#/components/schemas/Error' '429': description: Rate limit exceeded. content: application/json: schema: $ref: '#/components/schemas/Error' /policynote/v1/transcripts/{transcriptId}: get: operationId: getPresidentialTranscript summary: FiscalNote Get presidential transcript by ID description: >- Returns the full text and metadata of a specific presidential transcript, including the verified primary-source record of the communication. tags: - Presidential Transcripts parameters: - name: transcriptId in: path required: true description: >- The unique identifier of the transcript. schema: type: string responses: '200': description: Detailed presidential transcript record. content: application/json: schema: $ref: '#/components/schemas/Transcript' '401': description: Authentication credentials are missing or invalid. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Transcript not found. content: application/json: schema: $ref: '#/components/schemas/Error' /policynote/v1/intelligence/impact: get: operationId: listPolicyImpactSummaries summary: FiscalNote List policy impact summaries description: >- Returns AI-powered, personalized impact summaries that analyze how policy changes may affect specific industries, organizations, or compliance requirements. tags: - Policy Intelligence parameters: - $ref: '#/components/parameters/jurisdictionParam' - $ref: '#/components/parameters/queryParam' - $ref: '#/components/parameters/limitParam' - $ref: '#/components/parameters/offsetParam' responses: '200': description: A paginated list of policy impact summaries. content: application/json: schema: $ref: '#/components/schemas/ImpactSummaryListResponse' '401': description: Authentication credentials are missing or invalid. content: application/json: schema: $ref: '#/components/schemas/Error' '429': description: Rate limit exceeded. content: application/json: schema: $ref: '#/components/schemas/Error' components: securitySchemes: apiKey: type: apiKey in: header name: Authorization description: >- API key provided by FiscalNote. Include in the Authorization header of each request. parameters: jurisdictionParam: name: jurisdiction in: query required: false description: >- Filter by jurisdiction code such as US, US-CA, GB, or EU. schema: type: string sessionParam: name: session in: query required: false description: >- Filter by legislative session identifier. schema: type: string statusParam: name: status in: query required: false description: >- Filter by legislation status such as introduced, passed, enacted, or vetoed. schema: type: string enum: - introduced - in_committee - passed_one_chamber - passed_both_chambers - enacted - vetoed regulationStatusParam: name: status in: query required: false description: >- Filter by regulation status such as proposed, final, or withdrawn. schema: type: string enum: - proposed - comment_period - final - withdrawn agencyParam: name: agency in: query required: false description: >- Filter by issuing agency name or identifier. schema: type: string queryParam: name: q in: query required: false description: >- Full-text search query to filter results. schema: type: string limitParam: name: limit in: query required: false description: >- Maximum number of results to return per page. schema: type: integer minimum: 1 maximum: 100 default: 25 offsetParam: name: offset in: query required: false description: >- Number of results to skip for pagination. schema: type: integer minimum: 0 default: 0 sortParam: name: sort in: query required: false description: >- Sort order for results. Use field name with optional - prefix for descending order. schema: type: string updatedSinceParam: name: updatedSince in: query required: false description: >- Return only records updated after this ISO 8601 datetime. schema: type: string format: date-time legislationIdParam: name: legislationId in: path required: true description: >- The unique identifier of the legislation. schema: type: string schemas: Legislation: type: object description: >- A legislative measure such as a bill, resolution, or amendment from a federal, state, or international jurisdiction. properties: id: type: string description: >- Unique identifier for the legislation record. title: type: string description: >- Official title of the legislation. shortTitle: type: string description: >- Short or popular title of the legislation. number: type: string description: >- Bill or resolution number. type: type: string description: >- Type of legislation such as bill, resolution, or amendment. enum: - bill - resolution - joint_resolution - concurrent_resolution - amendment jurisdiction: type: string description: >- Jurisdiction code where the legislation was introduced. session: type: string description: >- Legislative session identifier. status: type: string description: >- Current status of the legislation. introducedDate: type: string format: date description: >- Date the legislation was introduced. lastActionDate: type: string format: date description: >- Date of the most recent action on the legislation. lastAction: type: string description: >- Description of the most recent action taken on the legislation. sponsors: type: array description: >- List of sponsors of the legislation. items: $ref: '#/components/schemas/Sponsor' committees: type: array description: >- Committees to which the legislation has been referred. items: $ref: '#/components/schemas/CommitteeRef' subjects: type: array description: >- Subject tags associated with the legislation. items: type: string summary: type: string description: >- Summary text of the legislation. fullTextUrl: type: string format: uri description: >- URL to the full text of the legislation. url: type: string format: uri description: >- URL to the legislation record on the FiscalNote platform. createdAt: type: string format: date-time description: >- Timestamp when the record was created in the system. updatedAt: type: string format: date-time description: >- Timestamp when the record was last updated. Sponsor: type: object description: >- A sponsor or co-sponsor of a piece of legislation. properties: id: type: string description: >- Unique identifier of the sponsor. name: type: string description: >- Full name of the sponsor. role: type: string description: >- Role of the sponsor such as primary or cosponsor. enum: - primary - cosponsor party: type: string description: >- Political party affiliation. jurisdiction: type: string description: >- Jurisdiction the sponsor represents. CommitteeRef: type: object description: >- A reference to a legislative committee. properties: id: type: string description: >- Unique identifier of the committee. name: type: string description: >- Name of the committee. chamber: type: string description: >- Chamber the committee belongs to. Regulation: type: object description: >- A regulatory record including proposed rules, final rules, and notices from federal and state agencies. properties: id: type: string description: >- Unique identifier for the regulation record. title: type: string description: >- Title of the regulation. agency: type: string description: >- Name of the issuing agency. type: type: string description: >- Type of regulation such as proposed_rule, final_rule, or notice. enum: - proposed_rule - final_rule - notice - executive_order status: type: string description: >- Current status of the regulation. jurisdiction: type: string description: >- Jurisdiction code for the regulation. publishedDate: type: string format: date description: >- Date the regulation was published. effectiveDate: type: string format: date description: >- Date the regulation takes effect. commentPeriodEnd: type: string format: date description: >- End date of the public comment period. summary: type: string description: >- Summary text of the regulation. fullTextUrl: type: string format: uri description: >- URL to the full text of the regulation. url: type: string format: uri description: >- URL to the regulation record on the FiscalNote platform. createdAt: type: string format: date-time description: >- Timestamp when the record was created. updatedAt: type: string format: date-time description: >- Timestamp when the record was last updated. Stakeholder: type: object description: >- A government official, legislator, or other key policy stakeholder. properties: id: type: string description: >- Unique identifier for the stakeholder record. name: type: string description: >- Full name of the stakeholder. title: type: string description: >- Official title or position. party: type: string description: >- Political party affiliation. jurisdiction: type: string description: >- Jurisdiction the stakeholder represents or operates in. chamber: type: string description: >- Legislative chamber if applicable. district: type: string description: >- District the stakeholder represents. committees: type: array description: >- Committees the stakeholder serves on. items: $ref: '#/components/schemas/CommitteeRef' contactInfo: type: object description: >- Contact information for the stakeholder. properties: email: type: string format: email description: >- Email address. phone: type: string description: >- Phone number. website: type: string format: uri description: >- Official website. url: type: string format: uri description: >- URL to the stakeholder profile on the FiscalNote platform. Transcript: type: object description: >- A presidential transcript record including the full text of executive orders, proclamations, press statements, and public remarks. properties: id: type: string description: >- Unique identifier for the transcript record. title: type: string description: >- Title of the transcript. type: type: string description: >- Type of presidential communication. enum: - executive_order - proclamation - press_statement - public_remarks - interview - formal_event date: type: string format: date description: >- Date of the communication. location: type: string description: >- Location where the communication took place. duration: type: string description: >- Duration of the communication in ISO 8601 duration format. wordCount: type: integer description: >- Total word count of the transcript. fullText: type: string description: >- Full text of the transcript. summary: type: string description: >- Summary of the transcript content. videoUrl: type: string format: uri description: >- URL to the video recording if available. sourceUrl: type: string format: uri description: >- URL to the primary source document. verified: type: boolean description: >- Indicates whether this transcript has been verified against the primary source. createdAt: type: string format: date-time description: >- Timestamp when the record was created. updatedAt: type: string format: date-time description: >- Timestamp when the record was last updated. ImpactSummary: type: object description: >- An AI-powered impact summary analyzing how a policy change may affect specific industries, organizations, or compliance requirements. properties: id: type: string description: >- Unique identifier for the impact summary. policyId: type: string description: >- Identifier of the related legislation or regulation. policyTitle: type: string description: >- Title of the related legislation or regulation. jurisdiction: type: string description: >- Jurisdiction of the related policy. summary: type: string description: >- AI-generated summary of the policy impact. impactAreas: type: array description: >- Industries or areas affected by the policy. items: type: string severity: type: string description: >- Assessed severity of the policy impact. enum: - low - medium - high - critical createdAt: type: string format: date-time description: >- Timestamp when the summary was generated. LegislationListResponse: type: object description: >- Paginated response containing a list of legislation records. properties: data: type: array items: $ref: '#/components/schemas/Legislation' pagination: $ref: '#/components/schemas/Pagination' RegulationListResponse: type: object description: >- Paginated response containing a list of regulation records. properties: data: type: array items: $ref: '#/components/schemas/Regulation' pagination: $ref: '#/components/schemas/Pagination' StakeholderListResponse: type: object description: >- Paginated response containing a list of stakeholder records. properties: data: type: array items: $ref: '#/components/schemas/Stakeholder' pagination: $ref: '#/components/schemas/Pagination' TranscriptListResponse: type: object description: >- Paginated response containing a list of presidential transcript records. properties: data: type: array items: $ref: '#/components/schemas/Transcript' pagination: $ref: '#/components/schemas/Pagination' ImpactSummaryListResponse: type: object description: >- Paginated response containing a list of policy impact summaries. properties: data: type: array items: $ref: '#/components/schemas/ImpactSummary' pagination: $ref: '#/components/schemas/Pagination' Pagination: type: object description: >- Pagination metadata for list responses. properties: total: type: integer description: >- Total number of records matching the query. limit: type: integer description: >- Maximum number of records returned per page. offset: type: integer description: >- Number of records skipped. hasMore: type: boolean description: >- Indicates whether more records are available. Error: type: object description: >- Error response returned when a request fails. properties: code: type: integer description: >- HTTP status code. message: type: string description: >- Human-readable error message. details: type: string description: >- Additional details about the error.