{"openapi":"3.1.0","info":{"title":"Axonaut (BYOK) API","version":"0.1.0","description":"Axonaut (BYOK) lets an AI assistant read your own Axonaut data through the Axonaut API with a key you supply (Axonaut user API key). Read-only: 11 tools (list_companies, get_company, list_invoices, get_invoice, list_quotations, list_payments, list_expenses, list_products, list_projects, list_opportunities, list_tax_rates). The BYOK key travels with each request, is used for that one call only and...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-axonaut.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-axonaut/docs"},"termsOfService":"https://connectorbay.com/byok-axonaut/terms"},"servers":[{"url":"https://byok-axonaut.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-axonaut/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_companies":{"post":{"operationId":"list_companies","summary":"List companies (customers, prospects and suppliers) with address, currency, language, business manager and contact peopl","description":"List companies (customers, prospects and suppliers) with address, currency, language, business manager and contact people. Bank details are not returned. Axonaut returns one page of results per call; use the filters to narrow. Use for \"Which customers do I have in Axonaut in Lyon\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"search":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only companies whose name contains this text.","title":"Search"},"type":{"anyOf":[{"enum":["customer","prospect","supplier","all"],"type":"string"},{"type":"null"}],"default":"all","description":"customer, prospect, supplier or all (default).","title":"Type"},"address_city":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only companies in this city.","title":"Address City"},"is_disabled":{"anyOf":[{"enum":["true","false"],"type":"string"},{"type":"null"}],"default":null,"description":"true to list archived companies instead of active ones.","title":"Is Disabled"},"sort":{"anyOf":[{"enum":["id","name","address_city"],"type":"string"},{"type":"null"}],"default":"id","description":"Order: id (default), name or address_city.","title":"Sort"}},"title":"list_companiesArguments","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_company":{"post":{"operationId":"get_company","summary":"Get one company by id with address, flags, currency, business manager and contact people. Bank details are not returned.","description":"Get one company by id with address, flags, currency, business manager and contact people. Bank details are not returned. Use for \"Show Axonaut company 7\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"company_id":{"description":"Company id from list_companies.","title":"Company Id","type":"integer"}},"required":["company_id"],"title":"get_companyArguments","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_invoices":{"post":{"operationId":"list_invoices","summary":"List sales invoices with number, dates, total, tax, outstanding amount, company and payment terms. Axonaut returns one p","description":"List sales invoices with number, dates, total, tax, outstanding amount, company and payment terms. Axonaut returns one page of results per call; use the filters to narrow. Use for \"Which Axonaut invoices are unpaid\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"is_paid":{"anyOf":[{"enum":["true","false"],"type":"string"},{"type":"null"}],"default":null,"description":"true for paid invoices only, false for unpaid ones.","title":"Is Paid"},"number":{"anyOf":[{"maxLength":50,"type":"string"},{"type":"null"}],"default":null,"description":"Invoice number to search for.","title":"Number"},"date_after":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Only invoices dated after this day (format DD/MM/YYYY).","title":"Date After"},"date_before":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Only invoices dated before this day (format DD/MM/YYYY).","title":"Date Before"},"updated_after":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Only invoices updated after this day (format DD/MM/YYYY).","title":"Updated After"}},"title":"list_invoicesArguments","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_invoice":{"post":{"operationId":"get_invoice","summary":"Get one sales invoice by id including its lines (product, price, quantity, taxes) and billing address. Use for \"Show Axo","description":"Get one sales invoice by id including its lines (product, price, quantity, taxes) and billing address. Use for \"Show Axonaut invoice 1001\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"invoice_id":{"description":"Invoice id from list_invoices.","title":"Invoice Id","type":"integer"}},"required":["invoice_id"],"title":"get_invoiceArguments","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_quotations":{"post":{"operationId":"list_quotations","summary":"List quotations with number, title, status (pending, accepted, refused), dates, company and amounts. Axonaut returns one","description":"List quotations with number, title, status (pending, accepted, refused), dates, company and amounts. Axonaut returns one page of results per call; use the filters to narrow. Use for \"Which Axonaut quotations are still pending\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"status":{"anyOf":[{"enum":["accepted","refused","pending","all"],"type":"string"},{"type":"null"}],"default":"all","description":"pending, accepted, refused or all (default).","title":"Status"},"company_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only quotations of this company id.","title":"Company Id"},"date_after":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Only quotations dated after this day (format YYYY-MM-DD).","title":"Date After"},"date_before":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Only quotations dated before this day (format YYYY-MM-DD).","title":"Date Before"},"sort":{"anyOf":[{"enum":["id","updatetime"],"type":"string"},{"type":"null"}],"default":"id","description":"Order: id (default) or updatetime.","title":"Sort"}},"title":"list_quotationsArguments","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_payments":{"post":{"operationId":"list_payments","summary":"List payments received on invoices with amount, date, reference and payment nature. Axonaut returns one page of results ","description":"List payments received on invoices with amount, date, reference and payment nature. Axonaut returns one page of results per call; use the filters to narrow. Use for \"What invoice payments came in recently in Axonaut\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"company_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only payments of this company id.","title":"Company Id"},"invoice_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only payments of this invoice id.","title":"Invoice Id"},"date_after":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Only payments after this day (format DD/MM/YYYY).","title":"Date After"},"date_before":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Only payments before this day (format DD/MM/YYYY).","title":"Date Before"}},"title":"list_paymentsArguments","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_expenses":{"post":{"operationId":"list_expenses","summary":"List supplier expenses with title, supplier, dates, amounts, amount left to pay and accounting code. Axonaut returns one","description":"List supplier expenses with title, supplier, dates, amounts, amount left to pay and accounting code. Axonaut returns one page of results per call; use the filters to narrow. Use for \"Which Axonaut expenses are not paid yet\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"is_paid":{"anyOf":[{"enum":["true","false"],"type":"string"},{"type":"null"}],"default":null,"description":"true for paid expenses only, false for unpaid ones.","title":"Is Paid"},"date_after":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Only expenses dated after this day (format DD/MM/YYYY).","title":"Date After"},"date_before":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Only expenses dated before this day (format DD/MM/YYYY).","title":"Date Before"},"orderby":{"anyOf":[{"enum":["id","last_update_date"],"type":"string"},{"type":"null"}],"default":"id","description":"Order: id (default) or last_update_date.","title":"Orderby"}},"title":"list_expensesArguments","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_products":{"post":{"operationId":"list_products","summary":"List products and services with code, price with and without tax, tax rate, unit, stock and stock threshold. Axonaut ret","description":"List products and services with code, price with and without tax, tax rate, unit, stock and stock threshold. Axonaut returns one page of results per call; use the filters to narrow. Use for \"What is the stock of my Axonaut products\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only products whose name contains this text.","title":"Name"},"product_code":{"anyOf":[{"maxLength":50,"type":"string"},{"type":"null"}],"default":null,"description":"Only products whose code contains this text.","title":"Product Code"},"with_disabled":{"anyOf":[{"enum":["true","false"],"type":"string"},{"type":"null"}],"default":null,"description":"true to include disabled products.","title":"With Disabled"}},"title":"list_productsArguments","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_projects":{"post":{"operationId":"list_projects","summary":"List projects with number, company, estimated and actual hours, costs and revenue and planned and actual dates. Axonaut ","description":"List projects with number, company, estimated and actual hours, costs and revenue and planned and actual dates. Axonaut returns one page of results per call; use the filters to narrow. Use for \"Which Axonaut projects are over their estimated cost\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only projects whose name contains this text.","title":"Name"},"number":{"anyOf":[{"maxLength":50,"type":"string"},{"type":"null"}],"default":null,"description":"Only the project with this number.","title":"Number"},"estimated_end_before":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Only projects estimated to end before this day (YYYY-MM-DD).","title":"Estimated End Before"}},"title":"list_projectsArguments","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_opportunities":{"post":{"operationId":"list_opportunities","summary":"List sales opportunities with amount, probability, pipeline step, owner, dates and company. Axonaut returns one page of ","description":"List sales opportunities with amount, probability, pipeline step, owner, dates and company. Axonaut returns one page of results per call; use the filters to narrow. Use for \"What ongoing sales opportunities are open in Axonaut\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"status":{"anyOf":[{"enum":["ongoing","archived","all"],"type":"string"},{"type":"null"}],"default":"all","description":"ongoing, archived or all (default).","title":"Status"}},"title":"list_opportunitiesArguments","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_tax_rates":{"post":{"operationId":"list_tax_rates","summary":"List the tax rates defined in the account with name, rate and whether they apply to sales or purchases. Use for \"Which t","description":"List the tax rates defined in the account with name, rate and whether they apply to sales or purchases. Use for \"Which tax rates are configured in Axonaut\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_tax_ratesArguments","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}}}}