Skip to content

guy0090/api.arsha.io

Repository files navigation

BDO Market API


Credits

  • Thank you to Velia Inn for initially documenting the endpoints
  • Thank you to BDO Codex for providing all item data

What is this?

A self-hostable wrapper to proxy and cache requests from Pearl Abyss' unofficial Black Desert Online Market API.

Why?

The intention behind this project is to avoid spamming PA's servers with unwanted requests, as the endpoints documented are not done so by PA officially, but by members of the community. To avoid putting an unnecessary load on PA's infrastructure, you can use this wrapper to cache requests and serve them from your own server.

How do I use it?

You can use the public instance at https://api.arsha.io, or you can host your own instance. Documentation on all available endpoints is available on Postman.

Run in Postman

How do I host my own instance?

You can host your own instance by cloning this repository and running a few commands. The only requirement is that you have Docker installed on your machine. https://docs.docker.com/get-docker/

Ideally you would also have it hosted behind a reverse proxy such as Nginx or Caddy, but this is not a requirement.

Docker Compose

Steps:

git clone https://github.com/guy0090/api.arsha.io.git
cd api.arsha.io

# Optionally, you can change the port (default: 3000) that the API runs on by editing the exposed port in compose.yaml
vi compose.yaml

# Optionally, you can also configure API default properties:
cp config/application-default.yaml config/application.yaml
vi config/application.yaml

# Build and start container
docker compose up -d

Updating:

git pull
docker compose up --build api -d

Kubernetes

A minimal Kubernetes deployment is also provided in the manifests directory.

  • This deployment assumes you have a working Kubernetes cluster and have cert-manager and nginx-ingress installed and configured.

Steps:

git clone https://github.com/guy0090/api.arsha.io.git
vi manifest/api.yaml # You'll have to adjust some values such as domain, ingress class, etc.
kubectl apply -f api.yaml

Updating:

# If you didn't change the image used, you can trigger a rollout to update the deployment to the newest tag
kubectl rollout restart deployment/api -n arsha

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Languages