FLC Greenbook API

Public API behind the FLC Green Book mobile app. One published operation performs retrieval-augmented search over the sections of the Green Book (Federal Technology Transfer Legislation and Policy): semantic retrieval, LLM rerank, then a generated answer with the source sections that produced it. Gated by an app-key header issued for the mobile app.

Operations 1

POST /v1/sections/search RAG search (mobile) #

Documentation

Specifications

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/flc-greenbook-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

federal-laboratory-consortium-for-technology-transfer-greenbook-openapi.yml Raw ↑
openapi: 3.0.0
paths:
  /v1/sections/search:
    post:
      description: 'Retrieval-augmented answering: semantic retrieval, LLM rerank, then generated answer
        from top sections. Requires app-key header. Optional header: X-Session-Id (identifies mobile;
        used for metrics and queries-per-session). Returns answer plus source sections.'
      operationId: SectionsController_searchSections
      parameters:
      - name: x-session-id
        required: true
        in: header
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SectionSearchQueryDto'
      responses:
        '200':
          description: Generated answer and source sections ordered by relevance
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SectionSearchResponseDto'
      security:
      - app-key: []
      summary: RAG search (mobile)
      tags:
      - Sections
info:
  title: Greenbook API (Public)
  description: Public API for mobile app (sync, sections stream, RAG search).
  version: '1.0'
  contact: {}
  x-api-evangelist:
    generated: '2026-09-09'
    method: searched
    source: https://api.federallabs.org/docs-json
    note: Harvested verbatim from the NestJS Swagger document at https://api.federallabs.org/docs-json
      on 2026-09-09. Only servers[] (empty upstream) and this provenance block were added; no paths, schemas
      or security schemes were altered. Verbatim copy retained at openapi/_original/.
    ownership: Served from api.federallabs.org, a host on the FLC registrable domain; info.title "Greenbook
      API (Public)" matches the FLC Green Book app that FLC promotes on its own homepage (https://federallabs.org/learning-center/t2-toolkit/the-flc-greenbook,
      apps.apple.com/us/app/flc-green-book/id6695758676).
tags: []
servers:
- url: https://api.federallabs.org
  description: 'Production API host. Recorded by API Evangelist: the spec is served from https://api.federallabs.org/docs-json
    and POST https://api.federallabs.org/v1/sections/search answers 401 (missing app-key), not 404. The
    published spec ships servers: [] .'
components:
  securitySchemes:
    bearer:
      scheme: bearer
      bearerFormat: JWT
      type: http
    app-key:
      type: apiKey
      in: header
      name: app-key
      description: Mobile app key (for sync-sections, mobile-app-sections, search)
  schemas:
    SectionSearchQueryDto:
      type: object
      properties:
        query:
          type: string
          description: Search query message (e.g. user question or topic)
          example: What are the penalties for tax evasion?
          maxLength: 2000
        limit:
          type: number
          description: 'Maximum number of sections to return (default: 10, max: 50)'
          default: 10
          minimum: 1
          maximum: 50
      required:
      - query
    SectionSearchResultItemDto:
      type: object
      properties:
        section:
          type: object
          description: Section id and title only
        score:
          type: number
          description: Similarity score (0–1, higher = more similar)
          example: 0.87
      required:
      - section
      - score
    SectionSearchResponseDto:
      type: object
      properties:
        answer:
          type: string
          description: RAG-generated answer based on retrieved sections
          example: According to the retrieved sections, penalties for tax evasion include...
        sections:
          description: Source sections used for the answer (reranked by LLM), ordered by relevance
          type: array
          items:
            $ref: '#/components/schemas/SectionSearchResultItemDto'
        cacheId:
          type: number
          description: Cache entry id; use this to submit feedback (accepted/rejected) via POST /v1/sections/query-cache/:id/feedback
          example: 42
      required:
      - answer
      - sections