FFXIV Collect API
This is a RESTful JSON API designed to provide you with all of the application's available data in an API format. Use the navigation on the right to get more details on the individual endpoints.
The API data is available in English, French, German, and Japanese. To request the data in a specific language, just provide the language parameter with the desired locale. Please be aware that not all collectable "source" data is localized.
Each of the provided endpoints is searchable via Ransack-like query parameters. In order to search on a particular field, you must add a query parameter to a search endpoint that matches the following format
ATTRIBUTE_LOCALE_PREDICATE=CRITERIA. We'll take a look at predicates in a bit, but let's have a simple example first.
I want to query the Minions endpoint and find all of the minions whose names starts with "wind-up". I add the query parameter
name_en_start=wind-up which will tell the API to look for all minions with a name (English) starting with "wind-up". This will make my API call look like the following:
The table below lists the predicates supported by the API.
|lt, lteq||Less than (or equal to)|
|gt, gteq||Greater than (or equal to)|
|start, end||Starts/Ends with|
|in||In list/range of values|
Now that you've seen all of the predicates, let's take a look at them in action.
If I want to query the first 5 minions by their ID, I can use any of the following:
https://ffxivcollect.com/api/minions?id_in=[1, 2, 3, 4, 5] https://ffxivcollect.com/api/minions?id_in=1..5 https://ffxivcollect.com/api/minions?id_in=1...6
You can provide any number of query parameters and they will be AND'd together (no OR, sorry!) The following will let me find all Orchestrion rolls from Eureka added after patch 4.1.
By default, the full data set is returned for each endpoint that returns multiple results. Aside from refining the data set with a search query, you can also set a hard limit on the amount of results to return.
If any of your query conditions are invalid, the API will ignore it. If you find yourself pulling back the full list of results, something is probably wrong!
Some of the more complex attributes (like those in nested objects) are not 1:1 with what you will see in the API results, and they will also be ignored. Please consult the schema information annotated within the relevant model to validate that you are using the correct columns.
If you have any issues, feel free to give me a shout on my Discord server. A link is available on the homepage of the website.