{"openapi":"3.1.0","info":{"title":"Fiken (BYOK) API","version":"0.1.0","description":"Fiken (BYOK) lets an AI assistant read your own Fiken data through the Fiken API with a key you supply (Fiken personal API token). Read-only: 11 tools (list_companies, list_accounts, list_account_balances, list_invoices, list_credit_notes, list_sales, list_purchases, list_products, list_projects, list_offers, list_journal_entries). The BYOK key travels with each request, is used for that one call...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-fiken.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-fiken/docs"},"termsOfService":"https://connectorbay.com/byok-fiken/terms"},"servers":[{"url":"https://byok-fiken.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-fiken/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 the Fiken companies the token can access, with slug, organization number, VAT type, creation date and API access fl","description":"List the Fiken companies the token can access, with slug, organization number, VAT type, creation date and API access flag. The slug is needed by the other tools. Use for \"Which Fiken companies can I access\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Page number, starting at 0.","title":"Page"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many entries per page (1 to 100, provider default 25).","title":"Page Size"},"sort_by":{"anyOf":[{"enum":["createdDate asc","createdDate desc","name asc","name desc","organizationNumber asc","organizationNumber desc"],"type":"string"},{"type":"null"}],"default":"name asc","description":"Order: name, createdDate or organizationNumber, followed by asc or desc.","title":"Sort By"}},"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/list_accounts":{"post":{"operationId":"list_accounts","summary":"List the bookkeeping accounts (chart of accounts) of a company for the current year: account code and name. Use for \"Sho","description":"List the bookkeeping accounts (chart of accounts) of a company for the current year: account code and name. Use for \"Show the chart of accounts of my Fiken company\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"company_slug":{"description":"Slug of the Fiken company, from list_companies (the 'slug' field).","maxLength":200,"title":"Company Slug","type":"string"},"from_account":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Lowest account code to include, for example 3000.","title":"From Account"},"to_account":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Highest account code to include, for example 3999.","title":"To Account"},"page":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Page number, starting at 0.","title":"Page"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many entries per page (1 to 100, provider default 25).","title":"Page Size"}},"required":["company_slug"],"title":"list_accountsArguments","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_account_balances":{"post":{"operationId":"list_account_balances","summary":"List account codes with their closing balance on a date. Amounts are in the smallest currency unit (ore for NOK). Use fo","description":"List account codes with their closing balance on a date. Amounts are in the smallest currency unit (ore for NOK). Use for \"What were my Fiken account balances at the end of last year\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"company_slug":{"description":"Slug of the Fiken company, from list_companies (the 'slug' field).","maxLength":200,"title":"Company Slug","type":"string"},"date":{"description":"Balance date, YYYY-MM-DD.","maxLength":10,"title":"Date","type":"string"},"from_account":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Lowest account code to include.","title":"From Account"},"to_account":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Highest account code to include.","title":"To Account"},"page":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Page number, starting at 0.","title":"Page"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many entries per page (1 to 100, provider default 25).","title":"Page Size"}},"required":["company_slug","date"],"title":"list_account_balancesArguments","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 issued invoices of a company with number, issue and due date, net, VAT and gross amounts (smallest currency unit) a","description":"List issued invoices of a company with number, issue and due date, net, VAT and gross amounts (smallest currency unit) and currency. Filter by date, customer or settled state. Use for \"Which Fiken invoices are not yet settled\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"company_slug":{"description":"Slug of the Fiken company, from list_companies (the 'slug' field).","maxLength":200,"title":"Company Slug","type":"string"},"settled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for settled invoices only; false returns all.","title":"Settled"},"issue_date_ge":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Only invoices issued on or after this date. Format YYYY-MM-DD.","title":"Issue Date Ge"},"issue_date_le":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Only invoices issued on or before this date. Format YYYY-MM-DD.","title":"Issue Date Le"},"customer_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Only invoices to this customer (contactId).","title":"Customer Id"},"page":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Page number, starting at 0.","title":"Page"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many entries per page (1 to 100, provider default 25).","title":"Page Size"}},"required":["company_slug"],"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/list_credit_notes":{"post":{"operationId":"list_credit_notes","summary":"List credit notes of a company with number, issue date, net, VAT and gross amounts and the invoice they relate to. Use f","description":"List credit notes of a company with number, issue date, net, VAT and gross amounts and the invoice they relate to. Use for \"What credit notes did I issue in Fiken this year\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"company_slug":{"description":"Slug of the Fiken company, from list_companies (the 'slug' field).","maxLength":200,"title":"Company Slug","type":"string"},"settled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for settled credit notes only.","title":"Settled"},"issue_date_ge":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Only credit notes issued on or after this date. Format YYYY-MM-DD.","title":"Issue Date Ge"},"issue_date_le":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Only credit notes issued on or before this date. Format YYYY-MM-DD.","title":"Issue Date Le"},"page":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Page number, starting at 0.","title":"Page"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many entries per page (1 to 100, provider default 25).","title":"Page Size"}},"required":["company_slug"],"title":"list_credit_notesArguments","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_sales":{"post":{"operationId":"list_sales","summary":"List sales (cash and other sales) of a company with date, kind, amounts, paid total, outstanding balance and settled fla","description":"List sales (cash and other sales) of a company with date, kind, amounts, paid total, outstanding balance and settled flag. Use for \"What are my open Fiken sales with an outstanding balance\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"company_slug":{"description":"Slug of the Fiken company, from list_companies (the 'slug' field).","maxLength":200,"title":"Company Slug","type":"string"},"settled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for settled sales only; false returns all.","title":"Settled"},"date_ge":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Only sales dated on or after this date. Format YYYY-MM-DD.","title":"Date Ge"},"date_le":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Only sales dated on or before this date. Format YYYY-MM-DD.","title":"Date Le"},"page":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Page number, starting at 0.","title":"Page"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many entries per page (1 to 100, provider default 25).","title":"Page Size"}},"required":["company_slug"],"title":"list_salesArguments","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_purchases":{"post":{"operationId":"list_purchases","summary":"List purchases (supplier bills and expenses) of a company with date, due date, kind, currency and paid flag. Use for \"Wh","description":"List purchases (supplier bills and expenses) of a company with date, due date, kind, currency and paid flag. Use for \"Which Fiken purchases are unpaid\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"company_slug":{"description":"Slug of the Fiken company, from list_companies (the 'slug' field).","maxLength":200,"title":"Company Slug","type":"string"},"paid":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for paid purchases only; false returns all.","title":"Paid"},"date_ge":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Only purchases dated on or after this date. Format YYYY-MM-DD.","title":"Date Ge"},"date_le":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Only purchases dated on or before this date. Format YYYY-MM-DD.","title":"Date Le"},"sort_by":{"anyOf":[{"enum":["date asc","date desc"],"type":"string"},{"type":"null"}],"default":"date asc","description":"Order by date: 'date asc' or 'date desc'.","title":"Sort By"},"page":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Page number, starting at 0.","title":"Page"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many entries per page (1 to 100, provider default 25).","title":"Page Size"}},"required":["company_slug"],"title":"list_purchasesArguments","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 the products of a company with product number, name, unit price, income account, VAT type, stock and active flag. U","description":"List the products of a company with product number, name, unit price, income account, VAT type, stock and active flag. Use for \"What products are in my Fiken company\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"company_slug":{"description":"Slug of the Fiken company, from list_companies (the 'slug' field).","maxLength":200,"title":"Company Slug","type":"string"},"active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for active products, false for inactive ones.","title":"Active"},"name":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Exact product name to match.","title":"Name"},"page":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Page number, starting at 0.","title":"Page"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many entries per page (1 to 100, provider default 25).","title":"Page Size"}},"required":["company_slug"],"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 the projects of a company with number, name, dates and completed flag. Use for \"Which projects are still open in Fi","description":"List the projects of a company with number, name, dates and completed flag. Use for \"Which projects are still open in Fiken\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"company_slug":{"description":"Slug of the Fiken company, from list_companies (the 'slug' field).","maxLength":200,"title":"Company Slug","type":"string"},"completed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for completed projects, false for open ones.","title":"Completed"},"page":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Page number, starting at 0.","title":"Page"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many entries per page (1 to 100, provider default 25).","title":"Page Size"}},"required":["company_slug"],"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_offers":{"post":{"operationId":"list_offers","summary":"List quotes (offers) of a company with number, date, net, VAT and gross amounts, currency and archived flag. Use for \"Wh","description":"List quotes (offers) of a company with number, date, net, VAT and gross amounts, currency and archived flag. Use for \"What offers have I sent from Fiken\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"company_slug":{"description":"Slug of the Fiken company, from list_companies (the 'slug' field).","maxLength":200,"title":"Company Slug","type":"string"},"page":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Page number, starting at 0.","title":"Page"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many entries per page (1 to 100, provider default 25).","title":"Page Size"}},"required":["company_slug"],"title":"list_offersArguments","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_journal_entries":{"post":{"operationId":"list_journal_entries","summary":"List general journal entries (postings) of a company with number, date and description. Use for \"Show recent Fiken journ","description":"List general journal entries (postings) of a company with number, date and description. Use for \"Show recent Fiken journal entries\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"company_slug":{"description":"Slug of the Fiken company, from list_companies (the 'slug' field).","maxLength":200,"title":"Company Slug","type":"string"},"date_ge":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Only entries dated on or after this date. Format YYYY-MM-DD.","title":"Date Ge"},"date_le":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Only entries dated on or before this date. Format YYYY-MM-DD.","title":"Date Le"},"page":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Page number, starting at 0.","title":"Page"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many entries per page (1 to 100, provider default 25).","title":"Page Size"}},"required":["company_slug"],"title":"list_journal_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}}}}