xivapi-jsdeprecated

A Node.JS wrapper for xivapi.com

Usage no npm install needed!

<script type="module">
  import xivapiJs from 'https://cdn.skypack.dev/xivapi-js';
</script>

README

xivapi-js

npm version license

This is a pure JS wrapper for interacting with XIVAPI and handling all requests in a simple, promise-driven manner.

Installation

Simply add the module to your node project with npm:

npm i xivapi-js

Usage

Require and initialize the module in your code:

const XIVAPI = require('xivapi-js')
const xiv = new XIVAPI()

...and then check out the wiki for usage help!

If you get really stuck and need some help, or run into any problems/concerns, either open up an issue on github or join the XIVAPI discord server and ping/DM @SacredPixel.

Examples:

Find an item ID, and then get the lowest market board price in a specific server:

const getItemPrice = async () => {
  //find item
  let res = await xiv.search('Stuffed Khloe')

  //use item ID for market query
  res = await xiv.market.get(res.Results[0].ID, {servers: 'Excalibur'})

  //return lowest price
  return res.Prices[0].PricePerUnit
}

Get the most recent lodestone news post:

const getLatestNews = async () => {
  //get the lodestone state
  let ls = await xiv.lodestone()

  //get most recent entry
  let entry = ls.News[0]

  //get the time since the entry's creation
  let timeNow = new Date()
  let diff = new Date(timeNow - entry.Time) //xivapi-js converts the timestamp into a Date object,
                                            //so you can just do this!

  //return your parsed entry
  console.log(`${entry.Title} (published ${diff.getUTCMinutes()} minutes ago)`)
}

Check for character ownership using a token we generated and provided to the user:

const verifyCharacter = async () => {
  //find the character with their name and server
  let res = await xiv.character.search('Kai Megumi', {server: 'excalibur'}) //case insensitive server names, btw ;)

  //get the character's ID
  let id = res.Results[0].ID

  //return whether or not the character's lodestone bio matches our token
  return await xiv.character.verification(id, 'token string')
}

Contribute

Feel free to open up issues/PRs or anything else.

Just git clone https://github.com/xivapi/xivapi-js.git, run npm i, and go to town!

License

This project is open source, under the terms described in the MIT License.