Fishbowl Inventory API Documentation: Auth, Endpoints and Examples
fishbowl inventory api documentation
Also searched as
- fishbowl rest api
- fishbowl api endpoints
- fishbowl api example login parts
Short answer
Fishbowl exposes a JSON REST API from its own server. You log in with an app name, app ID and a Fishbowl user to receive a token, send that token as a Bearer header, and call resource endpoints for parts, inventory, sales orders, purchase orders and imports. Fishbowl publishes reference documentation online and the server can show interactive docs for your own version.
Applies to: Fishbowl Inventory versions with the REST API (recent releases). The older TCP/JSON API still exists in some installs. Endpoint names below are the commonly used ones; verify against the reference for your version.
Getting started with the Fishbowl API
- 1Find the reference: Fishbowl's help site publishes the REST API reference, and your server can serve interactive API documentation for the exact version you run.
- 2Pick an app identity: choose an integer app ID and a name for your integration. They identify your program to Fishbowl.
- 3POST to the login endpoint with your appName, appId, username and password. The response contains a token.
- 4In the Fishbowl client, approve the new integration under the integrated apps setting. Until an administrator approves it, calls are refused.
- 5Send the token as an Authorization Bearer header on every later request.
- 6Call a read endpoint first, such as parts, and page through results before attempting any write.
- 7Log out when finished so you do not exhaust the licensed user connections.
Authentication in detail
The API uses a Fishbowl user, so the integration runs with that user's rights. Create a dedicated user and group for each integration with only the module access it needs. Fishbowl licenses concurrent connections, and an API session can count against them, so always log out and reuse a token rather than logging in for every call.
A 401 after a correct password usually means the app has not been approved in the Fishbowl client, or the token expired. We cover that case on a dedicated page linked below.
POST https://FISHBOWL_HOST:PORT/api/login
Content-Type: application/json
{
"appName": "MyIntegration",
"appId": 1234,
"username": "api_user",
"password": "********"
}GET https://FISHBOWL_HOST:PORT/api/parts?pageNumber=1&pageSize=50 Authorization: Bearer <token>
Endpoints most integrations use
Resource endpoints cover parts, part inventory, sales orders, purchase orders, customers, vendors, locations and more, and most list endpoints support paging parameters. Writes generally take a JSON body that mirrors the object the Fishbowl client shows. For bulk loading, the import endpoints accept the same CSV formats as the client's import tool, which is often faster and safer than creating records one by one.
For reporting there is a data query style endpoint that accepts a SQL SELECT and returns rows. It is powerful but ties you to the Fishbowl table design, so keep queries read-only and document them.
POST https://FISHBOWL_HOST:PORT/api/data-query Content-Type: text/plain Authorization: Bearer <token> SELECT num, description FROM part WHERE activeflag = 1 LIMIT 10
Designing a dependable integration
Treat Fishbowl as the system of record for inventory quantities. Push orders in, pull availability out, and avoid writing quantities from outside except through proper inventory transactions, since direct changes bypass costing and tracking.
Build for failure: retry with back-off on timeouts, make order creation idempotent by checking for an existing order number first, and keep a log of every request ID and Fishbowl response. If you only need analytics, read a replica or a scheduled extract rather than hitting the live server during picking hours.
Try it here, free
Fishbowl Inventory Import Worksheet
An editable opening-inventory worksheet with part, location, quantity and cost columns and a valuation total to reconcile before importing into Fishbowl.
Common pitfalls
- !Using a personal admin login for the integration, so a password change or departure breaks it.
- !Forgetting to approve the integrated app in the Fishbowl client, then chasing a phantom 401.
- !Logging in on every request and consuming licensed connections.
- !Writing quantities directly instead of using inventory adjustment or move transactions.
- !Relying on ad hoc SQL through the data query route without version-testing after Fishbowl upgrades.
How an ERP-grounded AI assistant handles this
The API reference tells you what exists; it does not tell you what your data means. A private assistant like DataRay can read your Fishbowl database read-only, answer plain-language questions on stock, orders and receipts, show the SQL it ran and keep everything on your own hardware. Teams often prototype an integration question that way before writing code against the API.
Frequently asked questions
Where is the Fishbowl API documentation?
Fishbowl's help site hosts the REST API reference, and the Fishbowl server can serve interactive documentation for the version you run. Prefer the interactive one for your install since endpoints and fields change between releases.
Does the Fishbowl API use OAuth?
Login returns a token based on a Fishbowl user plus an app identity that an administrator approves. It is token based and sent as a Bearer header, but it is Fishbowl's own login rather than a general OAuth provider flow.
Can I create sales orders through the API?
Yes. Sales order endpoints accept a JSON order with items, and the import endpoints can load many orders from CSV. Validate customers, parts and locations first, because Fishbowl rejects references it cannot resolve.
Is there a rate limit?
Treat the server as the limit. It runs on your own hardware with a licensed connection count, so batch requests, page results and avoid heavy queries during peak shop hours.
Related
Fix Fishbowl REST API Login 401 and Integrated App Errors
A failed Fishbowl REST API login is usually one of three things: the integration was never approved inside Fishbowl, the appName and appId in the request do not match the approved entry, or the Fishbowl user lacks permission. Approve the app in the Fishbowl client, fix the login payload, use a dedicated API user and send the returned token on later calls.
How-toFishbowl Inventory UPS Integration: Setup and Common Rate and Label Errors
Fishbowl connects to UPS through its shipping integration: you register your UPS account, map Fishbowl carrier services to UPS services, and then rate and print labels from the Shipping module. Nearly all rate and label errors trace back to four inputs: the UPS account and shipper number, the ship-from address, package weight and dimensions, and a destination address UPS will not validate.
How-toFishbowl SQL Query for Inventory by Location
Fishbowl stores physical inventory as rows in the tag table, one per part per location per tracking combination. Join tag to part and location, group by part and location, and sum quantity to get on hand by location. Run it read-only through Fishbowl's reporting module or a read-only MySQL user, and verify column names against your version.
Error fixFix Fishbowl Error: MySQL Server Has Gone Away
This error means the Fishbowl Server lost its connection to the underlying MySQL database, usually because a session sat idle past MySQL's wait_timeout, MySQL itself restarted, or a large import or report exceeded max_allowed_packet. Raise the relevant MySQL timeout and packet settings, confirm the MySQL service is actually running, and restart both MySQL and the Fishbowl Server service.
How-toHow to Create a Generic Inquiry in Acumatica
Generic Inquiries (GI) are Acumatica's no-code query builder for joining tables, adding filters, and exposing the result as an inquiry screen, dashboard data source, or API endpoint. Open System > Customization > Generic Inquiry, add your base table, define joins and conditions, then run and save. No SQL or customization project is required.
Error fixFix Odoo AccessError: You Are Not Allowed to Access Records
Odoo raises AccessError when a user's security groups do not grant a CRUD right on a model through ir.model.access.csv, or when an ir.rule record rule filters the specific record out for that user or company. Fix it by adding the user to the group named in the error, editing the model's access rights, or reviewing the record rule's domain under Settings > Technical > Security.
AI for ERPAI for Fishbowl Manufacturing and Warehouse
Fishbowl on-premise API for custom integrations: socket API, REST API and read-only replica options, plus private AI that leaves the QuickBooks sync alone.
AI for ERPA Private LLM Grounded on Your ERP Data
How a private LLM answers questions on your ERP data: RAG plus text-to-SQL, role-based permissions inherited from the ERP, and where each fits.
Stuck on Fishbowl Inventory?
Talk to engineers who work inside Fishbowl Inventory every week, and who build private AI that answers these questions from your own ERP data.
Keep exploring
Free tools
- Fishbowl Inventory Import WorksheetAn editable opening-inventory worksheet with part, location, quantity and cost columns and a valuation total to reconcile before importing into Fishbowl.
- OpenAPI Spec Skeleton Generator for ERP EndpointsCreate an OpenAPI 3.0 YAML starting point for an ERP resource with list and get operations, paging and a record schema.
- Acumatica REST API Python Script GeneratorProduce a ready-to-run Python script for the Acumatica contract-based REST API: login, PUT a record, then logout.
ERP fixes and how-tos
- Fix Fishbowl REST API Login 401 and Integrated App ErrorsFishbowl REST API login fails with 401 or an access error? Check the integrated app approval, appId and appName, credentials and user permissions, then retry.
- MRPeasy API documentation: authentication, endpoints and examplesHow the MRPeasy REST API works: generate a key, authenticate, call endpoints for orders, items and stock, page results with ranges, and handle rate limits.
- How to Adjust Inventory in FishbowlAdjust Fishbowl inventory correctly: cycle count versus scrap and add, how inventory status affects quantities, and which reports to check afterwards.
Guides
- SyteLine REST API Development: Working with IDO EndpointsPractical SyteLine REST API development guide: calling IDO endpoints over REST, token authentication, JSON payloads, filter syntax, and error handling.
- How to Set Up SyteLine REST API EndpointsComplete guide to configuring REST API endpoints in SyteLine CloudSuite Industrial. Learn IDO-based API exposure, authentication, rate limiting, and endpoint security.
- SyteLine REST API Development GuideBuild REST API integrations with Infor SyteLine. Access IDOs via REST endpoints, configure OAuth 2.0 authentication, and implement CRUD operations efficiently.
Integrations
- How to add AI agents to FishbowlHow to add AI agents to Fishbowl: a tool layer over the Fishbowl REST API and MySQL read replica, with human approval before any purchase order or work order write.
- How to add an AI chatbot to FishbowlHow to add an AI chatbot on top of Fishbowl for staff and customers: grounded in live inventory and order data, role-aware, and able to run fully on-prem.