{"_id":"fortnite-9812","_rev":"7-5d9b30601b0e698386be022f048554d4","name":"fortnite-9812","dist-tags":{"latest":"1.0.4"},"versions":{"1.0.0":{"name":"fortnite-9812","version":"1.0.0","keywords":["fortnite","api","manaf941","fnbr.co","fortniteapi.com","TRN","fortnitetracker","the","tracker","network"],"author":{"name":"Manaf941"},"license":"ISC","_id":"fortnite-9812@1.0.0","maintainers":[{"name":"manaf941","email":"manafralli@gmail.com"}],"homepage":"https://github.com/Manaf941/fortnite-manaf941-api#readme","bugs":{"url":"https://github.com/Manaf941/fortnite-manaf941-api/issues"},"dist":{"shasum":"a49fe505d6e9fb0e5151c0e6667ef5b82a5eda67","tarball":"https://registry.npmjs.org/fortnite-9812/-/fortnite-9812-1.0.0.tgz","fileCount":11,"integrity":"sha512-DdgqgBZPYcxDfcQ9lM2NeMMGaWTPAervcwG4fV8kjMWjMH3jduWecORU1yMPln9XUvLiTqrDv+N3u4OIKEee2Q==","signatures":[{"sig":"MEYCIQC/Gm3S8q2JGzuRdp3TXf+WSFl4fSnwJWzxYoXNvVjQ3gIhANNFNHnAsznDyc0LnWiODGmdsKUlwA4wDn6r8VRlJ/K6","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31573,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcOiUPCRA9TVsSAnZWagAAwFAP/R0eq75UuDg2RIUAQNin\nXhTpgMEUkgVdHm3ZVA9cgqZhHLKVQDLpwg5/594XC2LIVEArWfqQ+trhxo/8\nfq8kLvVvQ07k6qs1Le5xi0cpPX+NbwIYc8zdRBMz52iwmHE1ACVJ01FsJhUH\nlpYmGNgQQsBpRSRuQHN38ks/5InaHJEYrI+/0hk1xDzvrYZwBTnnB7VO1hcb\nU+6vuRhKmJk190vdajdb3gSFVGjkKKWn4uP1slP+VXAsAuV3tRf2hLOtBEGr\nJHD2JlblShZEASuVqimkLx9lfKRbwsDno9RWmx6B/Y8tczmoQXsWmgJQJrHv\nLeOB6YcLn9DEJGOh91SlSMF1Q9s4wzTgnKPz9cFHxEJogGKwinc1pdVaLe67\nzERLtY3YsgVLBZgHZHeeEHpvudum59jpxbz4eeo1Z/bkTF7nCVHgYLsR3Ikt\n1Dx2YHqEy/S7++1FYop0R5qCxF7wJwjwC0Vt3wgj1diXELhI7ZqBXgzkQPpI\nhxqUYvEfHk3sjzh3ZegsOuNo64r6zepk5Dp0ePkbK5EI7B+r1uHtKJx3zTOG\nXdjebghHm5usQaxT3Kh/Wgx7tUh/LzczLOk4TCKCGVhqrDxlCfSlLjT4tq65\naOPH14X6jIDdDtp03qqJ+UUiIw5MVJKvNE7i3BE4YRWttfpbHjSd39m2OToL\nXW+c\r\n=aYAa\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"manaf941","email":"manafralli@gmail.com"},"repository":{"url":"git+https://github.com/Manaf941/fortnite-manaf941-api.git","type":"git"},"_npmVersion":"6.5.0","description":"A nodejs module for retrieving data from TRN, fnbr.co and https://fortniteapi.com/","directories":{},"_nodeVersion":"11.2.0","dependencies":{"node-fetch":"^2.3.0"},"_hasShrinkwrap":false,"devDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/fortnite-9812_1.0.0_1547314447144_0.49608362875106615","host":"s3://npm-registry-packages"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"1.0.1":{"name":"fortnite-9812","version":"1.0.1","keywords":["fortnite","api","manaf941","fnbr.co","fortniteapi.com","TRN","fortnitetracker","the","tracker","network"],"author":{"name":"Manaf941"},"license":"ISC","_id":"fortnite-9812@1.0.1","maintainers":[{"name":"manaf941","email":"manafralli@gmail.com"}],"homepage":"https://github.com/Manaf941/fortnite-manaf941-api#readme","bugs":{"url":"https://github.com/Manaf941/fortnite-manaf941-api/issues"},"dist":{"shasum":"0bc1d5dc74c17f2fec525f33c530f6626b63bfe4","tarball":"https://registry.npmjs.org/fortnite-9812/-/fortnite-9812-1.0.1.tgz","fileCount":36,"integrity":"sha512-0lhglVT9ZVT/CPabtgvz6odaLdye1CCUQgq4Ztr9EIvhUverQf1jurOpXKt1bNSvHchYt1FLz22LB90Z3M6qmw==","signatures":[{"sig":"MEQCIChaoBYURW1NCTaxPHt7Y5oo9kOVwKtQZk/LjWUvfGRAAiAS+V+24cGKpkjpZIy6/0GdeXGIBcIg4r2PTQySgGHaIQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":116454,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcOo1sCRA9TVsSAnZWagAAVlsP/jR7YYRj6AOIta8WuvDI\n/Hxe3BcMh/FKyWwJGkuQcoDx+tS77Jb9IFvuZNJF1yu0oe4eaUmQFa+zBvPO\nBeSs2E2QlIcXkER0Jj9pOG+vp6bGA8+M4du4iH7uJTEXb5ajuH6/xylOOGPC\nxP1nbdsxpxJ65fC59klpxPOpLaGAPbHUaNkP4JHNILjFkgmokf9FWVcbORiD\n/gSpATgsnxGQwGVnHvwm4WWgLyVjb3f+2RCl6j7AJMJNXjSuXIVoM+bDQ0tA\nIXn58Jj03ewmU88VeUyr5iO9vxv8aqyeFQ5E432AAxdt9P8zVBtW9Ci6W2z2\nU399d+K4bc08oQSnfZnfd14SFB+AZdxQM56HjZwIRHUCZtmCAJygim9S3CkT\nGBoAEGBWHit1auwyfU17Z7sWjqL6zOea5hf0wcnbr0bcOZdiwf4o2OQY5U+k\nztbZVJgY7VuoS0I4xcy5/tE0bf/lT4WIsN5Dlp65H+RKHYVuPsmv36OwJ+CV\nbmb+2zSUnlGM6duY+p9xwquaoLlhRqXTA9MV6hIEUWVn+eF7jZHSHENbEIS8\nLNzhuKIHkpehtRnWvLJmviYteO0VT7NvwS8dqi++E5oTsYD5flbC3MFmmofK\nbU3y1X+4iI4Gl/oTcoNO7dm+at++KHqf8dzobvmXcscGFhP5CwPLT1eqCaFa\n+pw2\r\n=0Tmu\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"manaf941","email":"manafralli@gmail.com"},"repository":{"url":"git+https://github.com/Manaf941/fortnite-manaf941-api.git","type":"git"},"_npmVersion":"6.5.0","description":"A nodejs module for retrieving data from TRN, fnbr.co and https://fortniteapi.com/","directories":{},"_nodeVersion":"11.2.0","dependencies":{"node-fetch":"^2.3.0"},"_hasShrinkwrap":false,"devDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/fortnite-9812_1.0.1_1547341163959_0.04514703726283753","host":"s3://npm-registry-packages"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"1.0.2":{"name":"fortnite-9812","version":"1.0.2","keywords":["fortnite","api","manaf941","fnbr.co","fortniteapi.com","TRN","fortnitetracker","the","tracker","network"],"author":{"name":"Manaf941"},"license":"ISC","_id":"fortnite-9812@1.0.2","maintainers":[{"name":"manaf941","email":"manafralli@gmail.com"}],"homepage":"https://github.com/Manaf941/fortnite-manaf941-api#readme","bugs":{"url":"https://github.com/Manaf941/fortnite-manaf941-api/issues"},"dist":{"shasum":"a7722be19e46828288ca3b045f8f4c3dbe3f240c","tarball":"https://registry.npmjs.org/fortnite-9812/-/fortnite-9812-1.0.2.tgz","fileCount":36,"integrity":"sha512-PnFdROspSRq71UB9Yak++JsOpV0pX/BOh+KDPxXu8fFqJ7bXLu7n3llYOpLhw1VliQwNou7QlunZpbsOpSPloA==","signatures":[{"sig":"MEUCID4Q9m62uRIMKiQDlirzp8b5DCEFII5GI/mqYvGyqorvAiEArhkdSR3uhbajvMNiTYHuGawwqzTL4R0Pj3sMV/+q4v8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":130300,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcOzWyCRA9TVsSAnZWagAAfPQP/1QQPy6QJofVw+2uKpIs\nwyV9/i8ldZh7YtSpwhVf3Y2D/CmajhOlhfiJ1gFbW5KotjyMFKeO7H2bPJNA\nrdflWNZm+IRdaGOEg+noU7jBLdguNuApkBL4fQ1JEJ/s4ARx1FrEco2CP+Xb\nsUG4zXapuHXrdnI13uAGpHQIhzt9OdtfZwywoFJqiclf8u0eS8R9qNRnrifE\n/0ZnG3O8DVG/0hRdDDf7WgqSS3nkO9vIQpb9FZN/Jdq5RrITcMIEMcmZMpSX\nv2Hq6wmiaRufUSYaws/DVFYI3r3yM13kKgNMLfAqQnd/g0yo+arhN+imu1W0\nzFgZjftULrdLr+OC2bOqm63R5alSlmVlPNjQH0GWaA1HABRXpoxxKBJEIkJA\nIGAAtp9ECGEWxgKba8B7F9DLbt0jJy0H0FFpZ0tCuIcwHWxoN3czJ3/CjnaA\n/0BaiZSenSx2trmvkatezgvcmxiuOdfiLLHFngMb5RA5b02qjyr+3bnNfK0v\ncTDN1i+foTEAlr/QYf5sNdDVyXbi8bHDmdmv1wMHL4m+mD+Mj7MOCEqx9umO\n0ZHA5SFR3ussDKBizWMEe9UpCspE0iPt8eGhyJcfDWLjSkYu8Klau9uO84Jq\nrbYwB4QvtDp26O/cunSVATk64ogLRuQuA5U+/j6hpAC/WWGCAdx5Bg+oKRi2\nDAq/\r\n=JtnX\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"manaf941","email":"manafralli@gmail.com"},"repository":{"url":"git+https://github.com/Manaf941/fortnite-manaf941-api.git","type":"git"},"_npmVersion":"6.5.0","description":"A nodejs module for retrieving data from TRN, fnbr.co and https://fortniteapi.com/","directories":{},"_nodeVersion":"11.2.0","dependencies":{"node-fetch":"^2.3.0"},"_hasShrinkwrap":false,"devDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/fortnite-9812_1.0.2_1547384241959_0.33060497367446096","host":"s3://npm-registry-packages"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"1.0.4":{"name":"fortnite-9812","version":"1.0.4","keywords":["fortnite","api","manaf941","fnbr.co","fortniteapi.com","TRN","fortnitetracker","the","tracker","network"],"author":{"name":"Manaf941"},"license":"ISC","_id":"fortnite-9812@1.0.4","maintainers":[{"name":"manaf941","email":"manafralli@gmail.com"}],"homepage":"https://github.com/Manaf941/fortnite-manaf941-api#readme","bugs":{"url":"https://github.com/Manaf941/fortnite-manaf941-api/issues"},"dist":{"shasum":"114a7a07f76680aebe63e6348e407c2b67d7f29b","tarball":"https://registry.npmjs.org/fortnite-9812/-/fortnite-9812-1.0.4.tgz","fileCount":36,"integrity":"sha512-TkdbPT1oTQ/GncnC5Sf4dVo6CLo4NJAtiU17rOUetcZ59nLAgNhceNkSqgMCYdYx6gCEB1A/9pYzm/JKOmgRcA==","signatures":[{"sig":"MEQCIBb9fDqXMEomnp/jxgoRFyFyU3BQrfY/YfLHQ5e869hHAiA+EqDov/G/vhS5u11SkDNg4BRCr/LihoDIBksGlmqA3w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":130330,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcOzx6CRA9TVsSAnZWagAA0iQP/ieK7LzAaGxsTfGthsjk\n1h4ygPDQT7KYBL3gAqHnw+iLoDyKiMWt0t7KblTusEJfDTzs6fiipg0gkzjW\nF8XYZilLaJR3thu2n+x0ECEyJZnyXRaYthx5z4h5IXrG9LtksWLw0agEQO6h\n1FTcSYrCiVWyVEC+FQoE5ResGoK6HQvTN5ZIMi9Gjr4R2uLXpcV5oNb9bPSz\nwi7uKwreGcKs5scjIBobFxe1RVYiNl+Z1AaykeoHQqLsc/x66GRX5y41c5Rq\nuL9X1XNm3FxBATzD2Ji5qshyaiS6eDz+lWMgRAyJz2sQyd69fRVL+D0zM6U5\nQTuketHibXWpFwisSUlmKvMR0UR5dC4ZCScELBqqhy81OJOdQ+M0JFypR/OJ\nknANCZmDm/lOHfVJhT2CmV66JzVq2ZLXieJ0JFktqtcspZ01HklZ0mZcmska\nMOhdpGDhpbmfp6YdMIR+7C2T4XDtn3TpOtf6qdKAOm7r/xAE/rfeq6HPsL4G\nQJAbTdXqrtfGPLdYBu9wC3TuT7BziUHJC07MWoJaLKGZHh7i5sSivrwzQjo0\n9LNe39XrD3UJ5VODX99WMVv6kODtDlHNq7G7e44TbuE77ueLZANXTEyogDVL\nI4m6aBc6TwEaTMna4xBZDoknu92uKqpLDmsqtrBzYPPUhqlYt7WxgyKu/aal\nfRtt\r\n=5sv+\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"manaf941","email":"manafralli@gmail.com"},"repository":{"url":"git+https://github.com/Manaf941/fortnite-manaf941-api.git","type":"git"},"_npmVersion":"6.5.0","description":"A nodejs module for retrieving data from TRN, fnbr.co and https://fortniteapi.com/","directories":{},"_nodeVersion":"11.2.0","dependencies":{"node-fetch":"^2.3.0"},"_hasShrinkwrap":false,"devDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/fortnite-9812_1.0.4_1547385978063_0.9811462216288294","host":"s3://npm-registry-packages"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."}},"time":{"created":"2019-01-12T17:34:07.144Z","modified":"2024-11-11T01:20:17.868Z","1.0.0":"2019-01-12T17:34:07.257Z","1.0.1":"2019-01-13T00:59:24.148Z","1.0.2":"2019-01-13T12:57:22.050Z","1.0.3":"2019-01-13T13:21:32.674Z","1.0.4":"2019-01-13T13:26:18.286Z"},"bugs":{"url":"https://github.com/Manaf941/fortnite-manaf941-api/issues"},"author":{"name":"Manaf941"},"license":"ISC","homepage":"https://github.com/Manaf941/fortnite-manaf941-api#readme","keywords":["fortnite","api","manaf941","fnbr.co","fortniteapi.com","TRN","fortnitetracker","the","tracker","network"],"repository":{"url":"git+https://github.com/Manaf941/fortnite-manaf941-api.git","type":"git"},"description":"A nodejs module for retrieving data from TRN, fnbr.co and https://fortniteapi.com/","maintainers":[{"name":"manaf941","email":"manafralli@gmail.com"}],"readme":"\r\n# fortnite-9812\r\n\r\n![Title](http://fortnitefontgenerator.com/img.php?fontsize=200&textcolor=000000&text=Fortnite-9812)\r\n\r\nA nodejs module for retrieving data from TRN, fnbr.co and https://fortniteapi.com/\r\n\r\n## Installation\r\n\r\nyou can install this module with npm\r\n\r\n```bash\r\nnpm i fortnite-9812\r\n```\r\n\r\n## Documentation\r\n\r\nSome of the method use Authentification by a special service like fnbr.co or fortnitetracker.com. Make sure you have the api key for these service if you want to use their service.\r\n\r\n### Create a Client\r\nYou're not obliged to create a client if you doesn't want to use fnbr.co and fortnitetracker api. Make sure you have insert your credentials in the client.\r\nexample:\r\n```js\r\nconst fortnite = require(\"fortnite-9812\")\r\nconst client = new fortnite.Client({\r\n\tTRN: \"<TRN API key if you have one>\",\r\n\tfnbrToken: \"<fnbr API key if you have one>\"\r\n})//from now, you can use all the function that require the client\r\n```\r\n\r\n### Get the fortnite in-game news\r\n\r\nthere is currently one method to get the news. it's **fortnite#brNews**\r\n\r\nexample:\r\n\r\n```js\r\nconst  fortnite  =  require(\"fortnite-9812\")\r\n\r\nfortnite.brNews()\r\n.then(news  =>  console.log(news))\r\n.catch(err  =>  console.eror(err))\r\n```\r\n\r\n### Get the fortnite in-game shop\r\nThere is three method to get the shop, the first uses an API key from [fnbr.co](https://fnbr.co/api/docs), the second uses an APi key from [trackernetwork](https://fortnitetracker.com/site-api)and the last doesn't use any API key.\r\n\r\n**FNBR method**\r\n```js\r\nconst  fortnite  =  require(\"fortnite-9812\")\r\nconst  client  =  new  fortnite.Client({\r\n//TRN: \"<TRN API key if you have one>\", Not required for this example\r\nfnbrToken:  \"<fnbr API key if you have one>\"\r\n})//from now, you can use all the function that require the client\r\n\r\nclient.fnbrShop()\r\n.then(shop  =>  console.log(shop))\r\n.catch(err  =>  console.error(err))\r\n```\r\nthis example retrieve the shop in the format json:\r\n```json\r\n{\r\n  \"status\": 200,\r\n  \"data\": {\r\n    \"date\": \"2019-01-12T00:00:00.000Z\",\r\n    \"featured\": [\r\n      //an array with featured items\r\n    ],\r\n    \"daily\": [\r\n      //an array with daily items\r\n    ]\r\n  }\r\n}\r\n```\r\n**TRN method**\r\n```js\r\nconst  fortnite  =  require(\"fortnite-9812\")\r\nconst  client  =  new  fortnite.Client({\r\nTRN: \"<TRN API key if you have one>\"\r\n//fnbrToken: \"<fnbr API key if you have one>\" Not required for this example\r\n})//from now, you can use all the function that require the client\r\n\r\nclient.TRNShop()\r\n.then(shop  =>  console.log(shop))\r\n.catch(err  =>  console.error(err))\r\n```\r\nthis example retrieve the shop in the format json:\r\n```json\r\n[\r\n  {\r\n    \"imageUrl\": \"https://cdn.thetrackernetwork.com/cdn/fortnite/7F6A6728_large.png\",\r\n    \"manifestId\": 6728,\r\n    \"name\": \"Virtue\",\r\n    \"rarity\": \"Sturdy\",\r\n    \"storeCategory\": \"BRWeeklyStorefront\",\r\n    \"vBucks\": 800\r\n  },\r\n  //return an array of all items in the shop\r\n  //to know the store category, see for each entries storeCategory. expected: \"BRWeeklyStorefront\" or \"BRDailyStorefront\"\r\n  \r\n]\r\n```\r\n\r\n**fortniteapi.com method**\r\nexample:\r\n```js\r\nconst  fortnite  =  require(\"fortnite-9812\")\r\nvar  lang  =  \"en\"// it can be one of [\"en\", \"de\"]\r\n\r\nfortnite.shop(lang)\r\n.then(shop  =>  console.log(shop))\r\n.catch(err  =>  console.error(err))\r\n```\r\nexample of response:\r\n```json\r\n{\r\n  \"date_layout\": \"day-month-year\",\r\n  \"lastupdate\": 1547251203,\r\n  \"language\": \"en\",\r\n  \"date\": \"12-01-19\",\r\n  \"rows\": 10,\r\n  \"vbucks\": \"https://fortnite-public-files.theapinetwork.com/fortnite-vbucks-icon.png\",\r\n  \"items\": [\r\n    //an array with items\r\n  ]\r\n}\r\n```\r\nexample of an item: \r\n```json\r\n{\r\n      \"itemid\": \"eb15c77-d0ac8ec-ca444b0-c61443d\",\r\n      \"name\": \"Red-Nosed Raider\",\r\n      \"cost\": \"1200\",\r\n      \"featured\": 1,\r\n      \"refundable\": 1,\r\n      \"lastupdate\": 1547251203,\r\n      \"youtube\": \"https://www.youtube.com/watch?v=j60G-J8fWiQ\",\r\n      \"item\": {\r\n        \"image\": \"https://fortnite-public-files.theapinetwork.com/outfit/6d2d47c11279d5584da65d66acf74d77.png\",\r\n        \"images\": {\r\n          \"transparent\": \"https://fortnite-public-files.theapinetwork.com/outfit/6d2d47c11279d5584da65d66acf74d77.png\",\r\n          \"background\": \"https://fortnite-public-files.theapinetwork.com/image/eb15c77-d0ac8ec-ca444b0-c61443d.png\",\r\n          \"information\": \"https://fortnite-public-files.theapinetwork.com/image/eb15c77-d0ac8ec-ca444b0-c61443d/item.png\",\r\n          \"featured\": {\r\n            \"transparent\": \"https://fortnite-public-files.theapinetwork.com/featured/eb15c77-d0ac8ec-ca444b0-c61443d.png\"\r\n          }\r\n        },\r\n        \"captial\": \"outfit\",\r\n        \"type\": \"outfit\",\r\n        \"rarity\": \"rare\",\r\n        \"obtained_type\": \"vbucks\"\r\n      },\r\n      \"ratings\": {\r\n        \"avgStars\": 4.29,\r\n        \"totalPoints\": 300,\r\n        \"numberVotes\": 70\r\n      }\r\n    }\r\n```\r\n### Get upcoming items\r\nYou can retrieve upcoming items with a fnbr.co API key or without APi key.\r\n**FNBR method**\r\n```js\r\nconst  fortnite  =  require(\"fortnite-9812\")\r\nconst  client  =  new  fortnite.Client({\r\n\t//TRN: \"<TRN API key if you have one>\", Not required for this example\r\n\tfnbrToken:  \"<fnbr API key if you have one>\"\r\n})//from now, you can use all the function that require the client\r\n\r\nclient.fnbrUpcoming()\r\n.then(items  =>  console.log(items))\r\n.catch(err  =>  console.error(err))\r\n```\r\njson response example:\r\n```json\r\n{\r\n  \"status\": 200,\r\n  \"data\": [\r\n  //an array with a list of items\r\n    {\r\n      \"id\": \"5c19185a41eb8a88a040b680\",\r\n      \"name\": \"Cheer Up\",\r\n      \"price\": \"???\",\r\n      \"priceIcon\": false,\r\n      \"priceIconLink\": false,\r\n      \"images\": {\r\n        \"icon\": \"https://image.fnbr.co/emote/5c19185a41eb8a88a040b680/icon.png\",\r\n        \"png\": false,\r\n        \"gallery\": false,\r\n        \"featured\": false\r\n      },\r\n      \"rarity\": \"epic\",\r\n      \"type\": \"emote\",\r\n      \"slug\": \"cheer-up\",\r\n      \"readableType\": \"Emote\",\r\n      \"description\": \"Be aggressive. B-E aggressive.\",\r\n      \"bundleSet\": false\r\n    }\r\n  ]\r\n}\r\n```\r\n**Without APi key**\r\n```js\r\nconst  fortnite  =  require(\"fortnite-9812\")\r\n\r\nfortnite.upcoming()\r\n.then(items  =>  console.log(items))\r\n.catch(err  =>  console.error(err))\r\n```\r\njson example:\r\n```json\r\n{\r\n  \"rows\": 7,\r\n  \"vbucks\": \"https://fortnite-public-files.theapinetwork.com/fortnite-vbucks-icon.png\",\r\n  \"items\": [\r\n  //an array of upcoming items\r\n    {\r\n      \"itemid\": \"c1d1255-1e7ff5b-0f08b6a-4032d59\",\r\n      \"name\": \"Cheer Up\",\r\n      \"cost\": \"???\",\r\n      \"item\": {\r\n        \"image\": \"https://fortnite-public-files.theapinetwork.com/emote/d419d60590ab75882c1fc4992a0a47d7.png\",\r\n        \"images\": {\r\n          \"transparent\": \"https://fortnite-public-files.theapinetwork.com/emote/d419d60590ab75882c1fc4992a0a47d7.png\",\r\n          \"background\": \"https://fortnite-public-files.theapinetwork.com/image/c1d1255-1e7ff5b-0f08b6a-4032d59.png\",\r\n          \"information\": \"https://fortnite-public-files.theapinetwork.com/image/c1d1255-1e7ff5b-0f08b6a-4032d59/item.png\",\r\n          \"featured\": {\r\n            \"transparent\": null\r\n          }\r\n        },\r\n        \"captial\": \"emote\",\r\n        \"type\": \"emote\",\r\n        \"rarity\": \"epic\",\r\n        \"obtained\": \"\",\r\n        \"obtained_type\": \"none\"\r\n      },\r\n      \"ratings\": {\r\n        \"avgStars\": 4.32,\r\n        \"totalPoints\": 268,\r\n        \"numberVotes\": 62\r\n      }\r\n    }\r\n  ]\r\n}\r\n```\r\n\r\n### Get user ID\r\nYou don't need an API key for this method\r\n```js\r\nconst fortnite = require(\"fortnite-9812\")\r\n\r\nfortnite.getID(\"Ñoт Tfuе\")//you need to give an username\r\n.then(user => console.log(user))\r\n.catch(err => console.error(err))\r\n```\r\n\r\nexample json response:\r\n```json\r\n{\r\n  \"uid\": \"126c2c59f45646718a5e0406d83be593\",\r\n  \"username\": \"Ñoт Tfuе\",\r\n  \"platforms\": [\r\n    \"nintendo\",\r\n    \"pc\",\r\n    \"ps4\"\r\n  ],\r\n  \"seasons\": [\r\n    \"season7\"\r\n  ]\r\n}\r\n```\r\n### Get battle royal stats by ID\r\n```js\r\nconst  fortnite  =  require(\"fortnite-9812\")\r\n\r\nfortnite.getStatsId(\"126c2c59f45646718a5e0406d83be593\", \"ps4\")//fortnite.getStatsId(USER ID, PLATFORM)\r\n.then(stats  =>  console.log(stats))\r\n.catch(err  =>  console.error(err))\r\n```\r\nthis return\r\n```json\r\n{\r\n  \"cached\": false,\r\n  \"uid\": \"126c2c59f45646718a5e0406d83be593\",\r\n  \"username\": \"Manaf941\",\r\n  \"platform\": \"ps4\",\r\n  \"timestamp\": 1547329460,\r\n  \"window\": \"alltime\",\r\n  \"stats\": {\r\n    \"kills_solo\": 3971,\r\n    \"placetop1_solo\": 26,\r\n    \"placetop10_solo\": 203,\r\n    \"placetop25_solo\": 520,\r\n    \"matchesplayed_solo\": 2943,\r\n    \"kd_solo\": 1.36,\r\n    \"winrate_solo\": 0.88,\r\n    \"score_solo\": 354303,\r\n    \"minutesplayed_solo\": 4585,\r\n    \"lastmodified_solo\": 1547139965,\r\n    \"kills_duo\": 3180,\r\n    \"placetop1_duo\": 40,\r\n    \"placetop5_duo\": 190,\r\n    \"placetop12_duo\": 440,\r\n    \"matchesplayed_duo\": 2513,\r\n    \"kd_duo\": 1.29,\r\n    \"winrate_duo\": 1.59,\r\n    \"score_duo\": 328987,\r\n    \"minutesplayed_duo\": 1674,\r\n    \"lastmodified_duo\": 1547144986,\r\n    \"kills_squad\": 3863,\r\n    \"placetop1_squad\": 45,\r\n    \"placetop3_squad\": 134,\r\n    \"placetop6_squad\": 295,\r\n    \"matchesplayed_squad\": 2774,\r\n    \"kd_squad\": 1.42,\r\n    \"winrate_squad\": 1.62,\r\n    \"score_squad\": 362532,\r\n    \"minutesplayed_squad\": 1507,\r\n    \"lastmodified_squad\": 1547310299\r\n  },\r\n  \"totals\": {\r\n    \"kills\": 11014,\r\n    \"wins\": 111,\r\n    \"matchesplayed\": 8230,\r\n    \"minutesplayed\": 7766,\r\n    \"hoursplayed\": 129,\r\n    \"score\": 1045822,\r\n    \"winrate\": 1.35,\r\n    \"kd\": 1.36,\r\n    \"lastupdate\": 1547144986\r\n  }\r\n}\r\n```\r\n\r\n### Get battle royale Stats from Name\r\nThere is two ways to get the battle royale stats, the first is without API key and the second uses TRN api key\r\n**Without APi key**\r\n*note: this method do the same as fortnite#getID and fortnite#getStatsId*\r\nIt is better to use this method than get the id and use getStatsId.\r\nThis method does not require an API key\r\n```js\r\nconst  fortnite  =  require(\"fortnite-9812\")\r\n\r\nfortnite.getStatsName(\"Ñoт Tfuе\", \"ps4\")//fortnite.getStatsId(USERNAME, PLATFORM)\r\n.then(stats  =>  console.log(stats))\r\n.catch(err  =>  console.error(err))\r\n```\r\n\r\nexpected output\r\n```json\r\n{\r\n  \"cached\": false,\r\n  \"uid\": \"126c2c59f45646718a5e0406d83be593\",\r\n  \"username\": \"Manaf941\",\r\n  \"platform\": \"ps4\",\r\n  \"timestamp\": 1547329460,\r\n  \"window\": \"alltime\",\r\n  \"stats\": {\r\n    \"kills_solo\": 3971,\r\n    \"placetop1_solo\": 26,\r\n    \"placetop10_solo\": 203,\r\n    \"placetop25_solo\": 520,\r\n    \"matchesplayed_solo\": 2943,\r\n    \"kd_solo\": 1.36,\r\n    \"winrate_solo\": 0.88,\r\n    \"score_solo\": 354303,\r\n    \"minutesplayed_solo\": 4585,\r\n    \"lastmodified_solo\": 1547139965,\r\n    \"kills_duo\": 3180,\r\n    \"placetop1_duo\": 40,\r\n    \"placetop5_duo\": 190,\r\n    \"placetop12_duo\": 440,\r\n    \"matchesplayed_duo\": 2513,\r\n    \"kd_duo\": 1.29,\r\n    \"winrate_duo\": 1.59,\r\n    \"score_duo\": 328987,\r\n    \"minutesplayed_duo\": 1674,\r\n    \"lastmodified_duo\": 1547144986,\r\n    \"kills_squad\": 3863,\r\n    \"placetop1_squad\": 45,\r\n    \"placetop3_squad\": 134,\r\n    \"placetop6_squad\": 295,\r\n    \"matchesplayed_squad\": 2774,\r\n    \"kd_squad\": 1.42,\r\n    \"winrate_squad\": 1.62,\r\n    \"score_squad\": 362532,\r\n    \"minutesplayed_squad\": 1507,\r\n    \"lastmodified_squad\": 1547310299\r\n  },\r\n  \"totals\": {\r\n    \"kills\": 11014,\r\n    \"wins\": 111,\r\n    \"matchesplayed\": 8230,\r\n    \"minutesplayed\": 7766,\r\n    \"hoursplayed\": 129,\r\n    \"score\": 1045822,\r\n    \"winrate\": 1.35,\r\n    \"kd\": 1.36,\r\n    \"lastupdate\": 1547144986\r\n  }\r\n}\r\n```\r\n**TRN method**\r\nexample:\r\n```js\r\nconst  fortnite  =  require(\"fortnite-9812\")\r\nconst  client  =  new  fortnite.Client({\r\nTRN:  \"<TRN API key if you have one>\"\r\n//fnbrToken: \"<fnbr.co API key if you have one>\"\r\n})//from now, you can use all the function that require the client\r\n\r\nclient.brStats(\"Ñoт Tfuе\", \"ps4\")//client.brStats(USERNAME, PLATFORM)\r\n.then(stats  =>  console.log(stats))\r\n.catch(err  =>  console.error(err))\r\n```\r\nresponse example:\r\n```json\r\n{\r\n  \"accountId\": \"126c2c59-f456-4671-8a5e-0406d83be593\",\r\n  \"platformId\": 2,\r\n  \"platformName\": \"psn\",\r\n  \"platformNameLong\": \"PlayStation 4\",\r\n  \"epicUserHandle\": \"Ñoт Tfuе\",\r\n  \"stats\": {\r\n    \"p2\": {\r\n      \"trnRating\": {\r\n        \"label\": \"TRN Rating\",\r\n        \"field\": \"TRNRating\",\r\n        \"category\": \"Rating\",\r\n        \"valueInt\": 1190,\r\n        \"value\": \"1190\",\r\n        \"rank\": 1646154,\r\n        \"percentile\": 56,\r\n        \"displayValue\": \"1,190\"\r\n      }\r\n    },\r\n    \"curr_p9\": {\r\n      \"trnRating\": {\r\n        \"label\": \"TRN Rating\",\r\n        \"field\": \"TRNRating\",\r\n        \"category\": \"Rating\",\r\n        \"valueInt\": 1200,\r\n        \"value\": \"1200\",\r\n        \"percentile\": 34,\r\n        \"displayValue\": \"1,200\"\r\n      }\r\n    }\r\n  },\r\n  \"lifeTimeStats\": [\r\n    {\r\n      \"key\": \"Top 5s\",\r\n      \"value\": \"190\"\r\n    },\r\n    {\r\n      \"key\": \"Top 3s\",\r\n      \"value\": \"134\"\r\n    }\r\n  ],\r\n  \"recentMatches\": [\r\n    {\r\n      \"id\": 1227383480,\r\n      \"accountId\": \"126c2c59-f456-4671-8a5e-0406d83be593\",\r\n      \"playlist\": \"p10\",\r\n      \"kills\": 26,\r\n      \"minutesPlayed\": -444,\r\n      \"top1\": 0,\r\n      \"top5\": 1,\r\n      \"top6\": 0,\r\n      \"top10\": 0,\r\n      \"top12\": 2,\r\n      \"top25\": 0,\r\n      \"matches\": 17,\r\n      \"top3\": 0,\r\n      \"dateCollected\": \"2019-01-13T00:03:53.69\",\r\n      \"score\": 1982,\r\n      \"platform\": 3,\r\n      \"trnRating\": 1198.1,\r\n      \"trnRatingChange\": -0.0043725966597089605\r\n    }\r\n  ]\r\n}\r\n```\r\n\r\n### Get servers status\r\ncheck if the fortnite servers are UP\r\n```js\r\nconst  fortnite  =  require(\"fortnite-9812\")\r\n\r\nfortnite.servers()\r\n.then(status  =>  console.log(status))\r\n.catch(err  =>  console.error(err))\r\n```\r\nexpected output:\r\n```json\r\n{\r\n  \"status\": \"UP\",\r\n  \"message\": \"Fortnite is up.\",\r\n  \"version\": \"7.10\",\r\n  \"time\": {\r\n    \"since\": {\r\n      \"seconds\": \"1545132605\"\r\n    },\r\n    \"duration\": {\r\n      \"seconds\": 2198745,\r\n      \"formated\": \"25 days, 10 hour, 45 minutes and 45 seconds\"\r\n    }\r\n  }\r\n}\r\n```\r\n\r\n### Get cosmetics stats\r\nThis method need an API key from fnbr.co\r\n```js\r\nconst  fortnite  =  require(\"fortnite-9812\")\r\nconst  client  =  new  fortnite.Client({\r\n\t//TRN: \"<TRN API key if you have one>\", Not required for this example\r\n\tfnbrToken:  \"<fnbr API key if you have one>\"\r\n})//from now, you can use all the function that require the client\r\n  \r\nclient.fnbrStats()\r\n.then(items  =>  console.log(items))\r\n.catch(err  =>  console.error(err))\r\n```\r\nexample of output:\r\n```json\r\n{\r\n  \"totalCosmetics\": 1292,\r\n  \"matrix\": [\r\n  //an array with all the type of item (loading, outfit,...)\r\n    {\r\n      \"type\": \"loading\",\r\n      \"rarity\": [\r\n        {\r\n          \"rarity\": \"uncommon\",\r\n          \"count\": 62\r\n        },\r\n        {\r\n          \"rarity\": \"rare\",\r\n          \"count\": 1\r\n        }\r\n      ]\r\n    }\r\n  ],\r\n  \"unreleased\": 10\r\n}\r\n```\r\n\r\n### Get cosmetic image\r\nThis method need an APi key from fnbr.co\r\n**Client.fnbrImage(jsonObject)**\r\n```js\r\nconst  fortnite  =  require(\"fortnite-9812\")\r\nconst  client  =  new  fortnite.Client({\r\n//TRN: \"<TRN API key if you have one>\", Not required for this example\r\nfnbrToken:  \"<FNBR API key if you have one>\"\r\n})//from now, you can use all the function that require the client\r\n\r\nclient.fnbrImage({name:  \"straw ops\", type:  \"outfit\", limit:  10})\r\n.then(search  =>  console.log(search))\r\n.catch(err  =>  console.error(err))\r\n```\r\nthis produce:\r\n```json\r\n{\r\n  \"status\": 200,\r\n  \"data\": [\r\n    {\r\n      \"id\": \"5bb4753bd022e1faa8cbfb5c\",\r\n      \"name\": \"Straw Ops\",\r\n      \"price\": \"1,500\",\r\n      \"priceIcon\": \"vbucks\",\r\n      \"priceIconLink\": \"https://image.fnbr.co/price/icon_vbucks.png\",\r\n      \"images\": {\r\n        \"icon\": \"https://image.fnbr.co/outfit/5bb4753bd022e1faa8cbfb5c/icon.png\",\r\n        \"png\": false,\r\n        \"gallery\": false,\r\n        \"featured\": \"https://image.fnbr.co/outfit/5bb4753bd022e1faa8cbfb5c/featured.png\"\r\n      },\r\n      \"rarity\": \"epic\",\r\n      \"type\": \"outfit\",\r\n      \"slug\": \"straw-ops\",\r\n      \"readableType\": \"Outfit\",\r\n      \"description\": \"The harvest grows near.\"\r\n    }\r\n  ],\r\n  \"query\": {\r\n    \"search\": \"straw ops\",\r\n    \"limit\": 10,\r\n    \"type\": \"outfit\"\r\n  }\r\n}\r\n```\r\n\r\n### Generate an image with the fortnite font\r\nYou can easily generate a link to an image with the text that you want. This method does not require any credentials. \r\n```js\r\nconst  fortnite  =  require(\"fortnite-9812\")\r\n\r\nfortnite.text({text:  \"this is a test for the fortnite.text method\", size:  160, color:  \"FFFFFF\"})// {text: \"<text>\", size: <number>, color: \"<hex color>\"}\r\n.then(url  =>  console.log(url))//expected output: http://fortnitefontgenerator.com/img.php?fontsize=160&textcolor=FFFFFF&text=this%20is%20a%20test%20for%20the%20fortnite.text%20method\r\n.catch(err  =>  console.error(err))\r\n```\r\nthis console.log: \"http://fortnitefontgenerator.com/img.php?fontsize=160&textcolor=FFFFFF&text=this%20is%20a%20test%20for%20the%20fortnite.text%20method\"\r\nthe object in the parameters is necessary. The \"text\" var in the json is obliged. the color and size are optional.\r\nthe color parameter is a hex color and the size is size in pixel for the text.\r\n\r\n### Get a list of fortnite challenge\r\nthere is two method for getting challenge, One with TRN API key and the other without.\r\n**TRN method**\r\nexample:\r\n```js\r\nconst  fortnite  =  require(\"fortnite-9812\")\r\nconst  client  =  new  fortnite.Client({\r\n\tTRN:  \"<TRN API key if you have one>\"\r\n\t//fnbrToken: \"<fnbr.co API key if you have one>\"\r\n})//from now, you can use all the function that require the client\r\n\r\nclient.TRNChallenge()\r\n.then(challenge  =>  console.log(challenge)))\r\n.catch(err  =>  console.error(err))\r\n```\r\nexample response:\r\n```json\r\n{\r\n    \"items\": [\r\n      {\r\n        \"metadata\": [\r\n          {\r\n            \"key\": \"type\",\r\n            \"value\": \"challenge\"\r\n          },\r\n          {\r\n            \"key\": \"name\",\r\n            \"value\": \"Record a speed of 27 or more on different Radar Signs\"\r\n          },\r\n          {\r\n            \"key\": \"questsCompleted\",\r\n            \"value\": \"0\"\r\n          },\r\n          {\r\n            \"key\": \"questsTotal\",\r\n            \"value\": \"1\"\r\n          },\r\n          {\r\n            \"key\": \"rewardPictureUrl\",\r\n            \"value\": \"https://cdn.thetrackernetwork.com/cdn/trackernetwork/63D2upload.png\"\r\n          },\r\n          {\r\n            \"key\": \"rewardName\",\r\n            \"value\": \"5\"\r\n          },\r\n          {\r\n            \"key\": \"rewardDescription\"\r\n          }\r\n        ]\r\n      },\r\n      {\r\n        \"metadata\": [\r\n          {\r\n            \"key\": \"type\",\r\n            \"value\": \"challenge\"\r\n          },\r\n          {\r\n            \"key\": \"name\",\r\n            \"value\": \"Jump through flaming hoops with a Quadcrasher or ATK\"\r\n          }\r\n        ]\r\n      }\r\n    ]\r\n  }\r\n```\r\nthe challenge list will look like this\r\n\r\n**Whitout APi key and suply the season**\r\n```js\r\nconst  fortnite  =  require(\"fortnite-9812\")\r\n\r\nfortnite.challenge(\"current\")//season of fortnite to lookup < 3 to current > or \"current\"\r\n.then(challenge  =>  console.log(challenge))\r\n.catch(err  =>  console.error(err))\r\n```\r\nconsole.log this:\r\n```json\r\n{\r\n  \"language\": \"en\",\r\n  \"season\": 7,\r\n  \"currentweek\": 6,\r\n  \"star\": \"https://fortnite-public-files.theapinetwork.com/fortnite-br-challenges-star.png\",\r\n  \"challenges\": {\r\n    \"week1\": [\r\n      {\r\n        \"identifier\": \"e2c420d-928d4bf-8ce0ff2-ec19b37\",\r\n        \"challenge\": \"Pick up an item of each rarity\",\r\n        \"total\": 5,\r\n        \"stars\": 5,\r\n        \"difficulty\": \"normal\"\r\n      }\r\n    ],\r\n    \"week2\": [\r\n      {\r\n        \"identifier\": \"32bb90e-8976aab-5298d5d-a10fe66\",\r\n        \"challenge\": \"Search a Chest in different Named Locations\",\r\n        \"total\": 7,\r\n        \"stars\": 5,\r\n        \"difficulty\": \"normal\"\r\n      }\r\n    ],\r\n    \"week3\": [\r\n      {\r\n        \"identifier\": \"d2ddea1-8f00665-ce8623e-36bd4e3\",\r\n        \"challenge\": \"Ride a Zipline in different matches\",\r\n        \"total\": 5,\r\n        \"stars\": 5,\r\n        \"difficulty\": \"normal\"\r\n      }\r\n    ],\r\n    \"week4\": [\r\n      {\r\n        \"identifier\": \"ad61ab1-43223ef-bc24c7d-2583be6\",\r\n        \"challenge\": \"Use an X-4 Stormwing plane in different matches\",\r\n        \"total\": 5,\r\n        \"stars\": 5,\r\n        \"difficulty\": \"normal\"\r\n      }\r\n    ],\r\n    \"week5\": [\r\n      {\r\n        \"identifier\": \"d09bf41-544a336-5a46c90-77ebb5e\",\r\n        \"challenge\": \"Stage 1: Land at Polar Peak\",\r\n        \"total\": 1,\r\n        \"stars\": 1,\r\n        \"difficulty\": \"normal\"\r\n      }\r\n    ],\r\n    \"week6\": [\r\n      {\r\n        \"identifier\": \"fbd7939-d674997-cdb4692-d34de86\",\r\n        \"challenge\": \"Search an Ammo Box in different Named Locations\",\r\n        \"total\": 7,\r\n        \"stars\": 5,\r\n        \"difficulty\": \"normal\"\r\n      }\r\n    ],\r\n    \"week7\": [],\r\n    \"week8\": [],\r\n    \"week9\": [],\r\n    \"week10\": []\r\n  }\r\n}\r\n```\r\nThis wil return something like that.\r\n### Get any URL with a fnbr.co api key\r\nIf you want to call an URL that is not on their api with your API key, you can:\r\n```js\r\nconst fortnite = require(\"fortnite-9812\")\r\nconst client = new fortnite.Client(\r\n\tfnbrToken: \"<FNBR API key>\"\r\n)\r\n\r\nclient.fnbrGet(\"https://fnbr.co/api/stats\")//maybe you're using some kind of proxies so you can change the url to get these data.\r\n.then(res => console.log(res))\r\n.catch(err => console.error(err))\r\n```\r\n*note: use the adapted method, if you want to get the shop, then, get the shop with Client#fnbrShop. This is only for people who want to use another URL or if the api gets uptdated and the package is not yet*\r\n\r\n### Get a list of items in the game\r\nYou can get a list of cosmetics items in the game without authentication.\r\nuse fortnite#\r\n\r\n## Credits:\r\nAll credit goes to Epic Games for all request without token, fnbr.co for all request with their api key and TRN for request with their API key.\r\n\r\nIf you need help, create an issue or contact me on discord: Manaf#9812![Package by Manaf#](http://fortnitefontgenerator.com/img.php?fontsize=200&textcolor=000000&text=Manaf%239812)","readmeFilename":"README.md"}