What is an API?
What
Application Programming Interface (API). APIs programmatically provide the reading or writing of information to one or more services.
FileWave has a rich set of APIs to allow customers to build connections. Some vendors also produce integrations, utilising FileWave API, without needing to work with the API directly.
When/Why
APIs extend the capability and integration of FileWave with other Systems.
How
The articles linked to this article are a good starting point. Professional Services can also help with learning and using APIs.
- Command Line API (v1)
- Anywhere API (v2)
- How do I export the results of an Inventory query?
- Using the RESTful API to limit, sort, and offset values returned
Programmatically Store Client Device Details (macOS) to JSON with FileWave REST API
An important note on URLs
FileWave has 2 APIs
History
For inventory purposes, FileWave has a Command Line API, designed to interact with Inventory Queries. This API has existed for years and can work on either port 20443 or port 20445.
Since the introduction of the FileWave web admin, 'FileWave Anywhere', a new API was created. FileWave Anywhere interacts with the FileWave Server using this new API. Unless configured otherwise, FileWave Anywhere works over port 443.
The Web API has its own paths, when compared with the Command Line version (note the extra /api at the beginning of the path. Below is an example, which creates a new Inventory Query, using both APIs.
TCP port 443 (default port if not specified in URL). Notice that it begins with /api/inv/api/
curl -s -H "Authorization: e2M2sssYjIwLTxxx1hMzdiLTFmyyyGIwYTdjOH0=" https://myserver.filewave.net/api/inv/api/v1/query/ \
--header "Content-Type: application/json" -X POST -d @ios16_incompatible.json
TCP port 20445 (could also use port 20443). Notice that it begins /inv/api/
curl -s -H "Authorization: e2M2sssYjIwLTxxx1hMzdiLTFmyyyGIwYTdjOH0=" https://myserver.filewave.net:20445/inv/api/v1/query/ \
--header "Content-Type: application/json" -X POST -d @ios16_incompatible.json
Since the Web API is used for all server interaction, strictly speaking anything that can be achieved in FileWave Anywhere may also be programmed. As such, the scope of the Web API is broader in the main than that of the Command Line version.
The Web API has both public and private URLs. Private URLs can be changed, between FileWave versions, at any time without warning or notification and as such should be avoided in scripts and other systems interacting with FileWave. They are easily recognisable by the word 'internal' in their URL paths, as per below:
https://${server_dns}/filewave/api/devices/internal/devices/${filewave_id}/details/custom_fields/fields