Skip to content

Community made GraphQL API with real-time data for everything in the Escape from Tarkov game!

License

Notifications You must be signed in to change notification settings

the-hideout/tarkov-api

Repository files navigation

Tarkov API (Escape from Tarkov) 💻

deploy test Discord

This is the main API for tarkov.dev, and was forked from kokarn's Tarkov Tools API.

It's a simple GraphQL API running on Cloudflare workers.

This API powers all of tarkov.dev and other notable projects as well:

What is this? 💡

A community made GraphQL API for Escape from Tarkov

  • 🆓 Free
  • 🔨 Easy to use
  • 📖 Open source
  • 🧑‍🤝‍🧑 Community driven
  • ⚡ Ultra fast
  • ⏰ Data is constantly updated in real-time

What can I do with this API? ⭐

  • View the prices of items
  • Get detailed ammo, armor, and weapon information
  • Fetch flea market data
  • View item weight, slots, etc
  • Calculate barter and hideout profit
  • Determine ergo, armor class, durability, etc for an item
  • Fetch detailed quest information and unlocks
  • View info about crafts and their requirements
  • Find information about in-game bosses
  • Detailed info on medicines, stims, and in-game healing
  • So much more (it would take up this entire page to list everything 😸)

This API does almost everything you would ever want for EFT!

API Playground 🎾

There is a GraphQL playground for you to use and test out

Link: api.tarkov.dev/

Example Query:

query {
  items {
      id
      name
      shortName
      wikiLink
      iconLink
      updated
  }
}

More examples can be found in our graphql example docs 📚

Even more examples can be found on our api page on tarkov.dev (includes many programming languages too)

Development 🔨

Prerequisites:

  • Install Wrangler
  • Run wrangler login - (needed for k/v store and secrets)

Start the API server:

Deployment 🚀

If you wish to deploy locally and have permissions to do so, run the following command:

wrangler publish

We don't do this often and generally use GitHub actions to do all of our deployments for us

HTTP Server

There's also an http webserver in the /http folder. It can be run with npm run dev or npm start. To run locally, you need to set the following vars (for local testing, you can use an .env file in the /http folder):

  • CLOUDFLARE_TOKEN (token must have permissions to read the KVs the API uses)
  • CACHE_BASIC_AUTH (used for caching)
  • ENVIRONMENT (either production or dev; determines which KVs are read)
  • PORT (defaults to 8088)