{"openapi":"3.1.0","info":{"title":"Invopop (BYOK) API","version":"0.1.0","description":"Invopop (BYOK) lets an AI assistant read your own Invopop data through the Invopop API with a key you supply (Invopop workspace API key). Read-only: 8 tools (get_workspace, list_entries, search_entries, get_entry, list_entry_states, list_series, get_series, list_series_entries). The BYOK key travels with each request, is used for that one call only and is never stored, logged or cached; it is...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-invopop.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-invopop/docs"},"termsOfService":"https://connectorbay.com/byok-invopop/terms"},"servers":[{"url":"https://byok-invopop.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-invopop/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/get_workspace":{"post":{"operationId":"get_workspace","summary":"Show the Invopop workspace the key belongs to: name, slug, country and whether it is a sandbox. Use for \"Which Invopop w","description":"Show the Invopop workspace the key belongs to: name, slug, country and whether it is a sandbox. Use for \"Which Invopop workspace is my API key connected to\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_workspaceArguments","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_entries":{"post":{"operationId":"list_entries","summary":"List document entries (invoices and other GOBL documents) of the workspace, newest first, with folder, key, processing s","description":"List document entries (invoices and other GOBL documents) of the workspace, newest first, with folder, key, processing state and flags. The document content itself is not returned. Use for \"What are my latest Invopop invoice entries\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"folder":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Only entries in this folder, for example 'invoices'.","title":"Folder"},"limit":{"anyOf":[{"maximum":100,"minimum":10,"type":"integer"},{"type":"null"}],"default":null,"description":"How many entries per page (10 to 100).","title":"Limit"},"created_at":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Page start time as an ISO 8601 timestamp: the upper bound when descending (default), the lower bound when ascending.","title":"Created At"},"ascending":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to return the oldest entries first.","title":"Ascending"},"cursor":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from the previous answer's next_cursor, to get the next page.","title":"Cursor"}},"title":"list_entriesArguments","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/search_entries":{"post":{"operationId":"search_entries","summary":"Free-text search over the workspace's document entries, returning folder, key, state and flags for each match. Use for \"","description":"Free-text search over the workspace's document entries, returning folder, key, state and flags for each match. Use for \"Find Invopop entries mentioning 'Acme'\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"q":{"description":"Search text.","maxLength":200,"title":"Q","type":"string"},"folder":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Only entries in this folder, for example 'invoices'.","title":"Folder"},"limit":{"anyOf":[{"maximum":100,"minimum":10,"type":"integer"},{"type":"null"}],"default":null,"description":"How many entries per page (10 to 100).","title":"Limit"},"offset":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Number of matches to skip, for paging.","title":"Offset"}},"required":["q"],"title":"search_entriesArguments","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_entry":{"post":{"operationId":"get_entry","summary":"Get one document entry by UUID: folder, key, state, schema, signed and draft flags, tags and timestamps. The document co","description":"Get one document entry by UUID: folder, key, state, schema, signed and draft flags, tags and timestamps. The document content is not returned. Use for \"Show Invopop entry 0190a1b2\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"UUID of the entry, from list_entries.","maxLength":200,"title":"Id","type":"string"}},"required":["id"],"title":"get_entryArguments","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_entry_states":{"post":{"operationId":"list_entry_states","summary":"List the processing states of one entry (current and previous) with the fault codes and messages raised by tax-authority","description":"List the processing states of one entry (current and previous) with the fault codes and messages raised by tax-authority or network integrations. Use for \"Why did Invopop entry 0190a1b2 fail to send\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"entry_id":{"description":"UUID of the entry.","maxLength":200,"title":"Entry Id","type":"string"}},"required":["entry_id"],"title":"list_entry_statesArguments","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_series":{"post":{"operationId":"list_series","summary":"List the invoice numbering series of the workspace with code, name, prefix, suffix and padding. Use for \"Which invoice n","description":"List the invoice numbering series of the workspace with code, name, prefix, suffix and padding. Use for \"Which invoice numbering series do I have in Invopop\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_seriesArguments","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_series":{"post":{"operationId":"get_series","summary":"Get one numbering series by UUID. Use for \"Show Invopop numbering series ser1\".","description":"Get one numbering series by UUID. Use for \"Show Invopop numbering series ser1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"UUID of the series, from list_series.","maxLength":200,"title":"Id","type":"string"}},"required":["id"],"title":"get_seriesArguments","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_series_entries":{"post":{"operationId":"list_series_entries","summary":"List the sequence numbers issued in one series with the assigned code and timestamps. Use for \"Which numbers were issued","description":"List the sequence numbers issued in one series with the assigned code and timestamps. Use for \"Which numbers were issued in Invopop series INV\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"series_id":{"description":"UUID of the series.","maxLength":200,"title":"Series Id","type":"string"}},"required":["series_id"],"title":"list_series_entriesArguments","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}}}}