{"openapi":"3.1.0","info":{"title":"Bundestag DIP (BYOK) API","version":"0.1.0","description":"Bundestag DIP (BYOK) lets an AI assistant read your own Bundestag DIP data through the Bundestag DIP API with a key you supply (DIP API key). Read-only: 9 tools (list_proceedings, get_proceeding, list_printed_papers, get_printed_paper, list_plenary_protocols, get_plenary_protocol, list_activities, list_persons, get_person). The BYOK key travels with each request, is used for that one call only...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-bundestagdip.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-bundestagdip/docs"},"termsOfService":"https://connectorbay.com/byok-bundestagdip/terms"},"servers":[{"url":"https://byok-bundestagdip.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-bundestagdip/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/list_proceedings":{"post":{"operationId":"list_proceedings","summary":"List legislative proceedings (Vorgaenge: bills, motions, inquiries) with type, status, subject areas and dates. Filter b","description":"List legislative proceedings (Vorgaenge: bills, motions, inquiries) with type, status, subject areas and dates. Filter by term, date range or linked document. Use for \"Which Bundestag legislative proceedings were updated in the 21st term since September 2026\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"wahlperiode":{"anyOf":[{"maximum":99,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Electoral term number of the Bundestag, for example 21 (the current term at the time of writing).","title":"Wahlperiode"},"date_from":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Earliest document date, YYYY-MM-DD.","title":"Date From"},"date_to":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Latest document date, YYYY-MM-DD.","title":"Date To"},"document_type":{"anyOf":[{"maxLength":80,"type":"string"},{"type":"null"}],"default":null,"description":"Printed-paper type, for example 'Gesetzentwurf' or 'Antrag'.","title":"Document Type"},"gesta":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"GESTA order number of the proceeding, for example 'A001'.","title":"Gesta"},"cursor":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor value from the previous answer to fetch the next page; the same filters must be repeated. When the cursor stops changing, everything has been read.","title":"Cursor"}},"title":"list_proceedingsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_proceeding":{"post":{"operationId":"get_proceeding","summary":"Get one legislative proceeding by id, including abstract, descriptors, promulgation and entry-into-force records. Use fo","description":"Get one legislative proceeding by id, including abstract, descriptors, promulgation and entry-into-force records. Use for \"Show Bundestag proceeding 300001\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"Numeric DIP id of the proceeding, for example 300001 (find ids with the matching list tool).","maxLength":12,"title":"Id","type":"string"}},"required":["id"],"title":"get_proceedingArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_printed_papers":{"post":{"operationId":"list_printed_papers","summary":"List Bundestag and Bundesrat printed papers (Drucksachen) with document number, type, title, date, issuer and PDF link. ","description":"List Bundestag and Bundesrat printed papers (Drucksachen) with document number, type, title, date, issuer and PDF link. Use for \"List the newest Bundestag printed papers of the 21st term\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"wahlperiode":{"anyOf":[{"maximum":99,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Electoral term number of the Bundestag, for example 21 (the current term at the time of writing).","title":"Wahlperiode"},"date_from":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Earliest document date, YYYY-MM-DD.","title":"Date From"},"date_to":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Latest document date, YYYY-MM-DD.","title":"Date To"},"zuordnung":{"anyOf":[{"enum":["BT","BR","BV","EK"],"type":"string"},{"type":"null"}],"default":null,"description":"Restrict to one body: BT (Bundestag), BR (Bundesrat), BV (Federal Convention) or EK (Europakammer).","title":"Zuordnung"},"document_number":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"Document number such as 21/1234 for a printed paper or 21/50 for a plenary protocol.","title":"Document Number"},"document_type":{"anyOf":[{"maxLength":80,"type":"string"},{"type":"null"}],"default":null,"description":"Printed-paper type, for example 'Antrag', 'Gesetzentwurf' or 'Kleine Anfrage'.","title":"Document Type"},"cursor":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor value from the previous answer to fetch the next page; the same filters must be repeated. When the cursor stops changing, everything has been read.","title":"Cursor"}},"title":"list_printed_papersArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_printed_paper":{"post":{"operationId":"get_printed_paper","summary":"Get metadata for one printed paper (Drucksache) by id: type, authors, issuers, linked proceedings, responsible ministrie","description":"Get metadata for one printed paper (Drucksache) by id: type, authors, issuers, linked proceedings, responsible ministries and PDF link. Use for \"Show Bundestag printed paper 280001\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"Numeric DIP id of the printed paper, for example 280001 (find ids with the matching list tool).","maxLength":12,"title":"Id","type":"string"}},"required":["id"],"title":"get_printed_paperArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_plenary_protocols":{"post":{"operationId":"list_plenary_protocols","summary":"List plenary session protocols (Plenarprotokolle) with document number, date, title and PDF link. Use for \"List Bundesta","description":"List plenary session protocols (Plenarprotokolle) with document number, date, title and PDF link. Use for \"List Bundestag plenary protocols from October 2026\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"wahlperiode":{"anyOf":[{"maximum":99,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Electoral term number of the Bundestag, for example 21 (the current term at the time of writing).","title":"Wahlperiode"},"date_from":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Earliest document date, YYYY-MM-DD.","title":"Date From"},"date_to":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Latest document date, YYYY-MM-DD.","title":"Date To"},"zuordnung":{"anyOf":[{"enum":["BT","BR","BV","EK"],"type":"string"},{"type":"null"}],"default":null,"description":"Restrict to one body: BT (Bundestag), BR (Bundesrat), BV (Federal Convention) or EK (Europakammer).","title":"Zuordnung"},"document_number":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"Document number such as 21/1234 for a printed paper or 21/50 for a plenary protocol.","title":"Document Number"},"cursor":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor value from the previous answer to fetch the next page; the same filters must be repeated. When the cursor stops changing, everything has been read.","title":"Cursor"}},"title":"list_plenary_protocolsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_plenary_protocol":{"post":{"operationId":"get_plenary_protocol","summary":"Get metadata for one plenary protocol by id, including linked proceedings and the PDF link. Use for \"Show Bundestag plen","description":"Get metadata for one plenary protocol by id, including linked proceedings and the PDF link. Use for \"Show Bundestag plenary protocol 5001\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"Numeric DIP id of the plenary protocol, for example 5001 (find ids with the matching list tool).","maxLength":12,"title":"Id","type":"string"}},"required":["id"],"title":"get_plenary_protocolArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_activities":{"post":{"operationId":"list_activities","summary":"List parliamentary activities (Aktivitaeten: speeches, questions, motions) with type, title, date and source location. U","description":"List parliamentary activities (Aktivitaeten: speeches, questions, motions) with type, title, date and source location. Use for \"List recent Bundestag parliamentary activities of the 21st term\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"wahlperiode":{"anyOf":[{"maximum":99,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Electoral term number of the Bundestag, for example 21 (the current term at the time of writing).","title":"Wahlperiode"},"date_from":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Earliest document date, YYYY-MM-DD.","title":"Date From"},"date_to":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Latest document date, YYYY-MM-DD.","title":"Date To"},"zuordnung":{"anyOf":[{"enum":["BT","BR","BV","EK"],"type":"string"},{"type":"null"}],"default":null,"description":"Restrict to one body: BT (Bundestag), BR (Bundesrat), BV (Federal Convention) or EK (Europakammer).","title":"Zuordnung"},"document_type":{"anyOf":[{"maxLength":80,"type":"string"},{"type":"null"}],"default":null,"description":"Type of the linked printed paper, for example 'Kleine Anfrage'.","title":"Document Type"},"cursor":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor value from the previous answer to fetch the next page; the same filters must be repeated. When the cursor stops changing, everything has been read.","title":"Cursor"}},"title":"list_activitiesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_persons":{"post":{"operationId":"list_persons","summary":"List master data of persons in the parliamentary record (members, ministers) with name, term numbers and roles including","description":"List master data of persons in the parliamentary record (members, ministers) with name, term numbers and roles including parliamentary group. Use for \"List Bundestag persons active in the 21st term\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"wahlperiode":{"anyOf":[{"maximum":99,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Electoral term number of the Bundestag, for example 21 (the current term at the time of writing).","title":"Wahlperiode"},"date_from":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Earliest document date, YYYY-MM-DD.","title":"Date From"},"date_to":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Latest document date, YYYY-MM-DD.","title":"Date To"},"cursor":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor value from the previous answer to fetch the next page; the same filters must be repeated. When the cursor stops changing, everything has been read.","title":"Cursor"}},"title":"list_personsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_person":{"post":{"operationId":"get_person","summary":"Get master data for one person by id: name, roles, parliamentary group, ministry and federal state. Use for \"Show Bundes","description":"Get master data for one person by id: name, roles, parliamentary group, ministry and federal state. Use for \"Show Bundestag person 11001\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"Numeric DIP id of the person, for example 11001 (find ids with the matching list tool).","maxLength":12,"title":"Id","type":"string"}},"required":["id"],"title":"get_personArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}