Recommended API for Bitcoin ATM online rates

As mentioned before – we have a functionality to show online prices for Bitcoin ATMs in case there is an API provided by the operator. At the moment many ATMs already display online information from the provider (all Genesis Coin ATMs, most Robocoin machines, some others). If you are running a Bitcoin ATM and would like your online rates to be displayed – please provide us with an API link.

While several operators asked for the template or API description, we put it here available publicly. In any case the set up is done manually with transformation to our standard data structure, so the list below contains just recommended examples, but not necessarily the requirement.

If there is a list of ATMs which utilize the same price – it will be enough to have one for all price. In case there are differences among the ATMs (prices, limits, etc.), it is better to provide a separate block with data for every Bitcoin machine.

Example 1 – Basic One-Way

[	
	...,
	{
		"id":"unique_id_1",
		"rate": 420.25,
		"currency_code": "CAD",
		"last_seen": "1466716312"
	},
	...
]

This is very basic example in case you operate just one machine or a number of ATMs with the same price set-up. All machines are one-way only.

Example 2 – Basic Two-Way

[	
	...,
	{
		"id":"unique_id_1",
		"sellrate":"412.19",
		"buyrate":"478.96",
		"rate":"439.6300",
		"currency_code":"USD",
		"last_seen": "1466716312"
	},
	...
]

This information should be enough to display online rates for two-way machines. “Rate” field is not mandatory, but provides an insight about buy/sell fees, in case they are different.

Example 3 – Full API for list of ATMs

This example provides the full list of data items normally available. In case you don’t have any of the information items – they can be eliminated. The following information has to be provided for every separate ATM in the list (one API access point):

[	
	...,
	{
		"id": "unique_id_1",
		"name": "ATM name",
		"description": "Additional info on Bitcoin ATM",
		"is_enabled": "true",
		"last_seen": "1466716312"
		"operator_name": "Operator1",
		"operator_website": "http://operator1.com",	
		"location":
			{
				"latitude": "51.789121",
				"longitude": "-147.409667",
				"country": "United States",
				"city": "San Diego",
				"zip": "92015",
				"street": "Street 123",
				"place": "ABC Restaurant"
			},
		"currency_code": "USD",		
		"currency_symbol": "$",
		"limits":
			{
				"daily": "10000",
				"buy": "5000",
				"sell": "5000"
			},
		"prices":
			{
				"bitcoin_market_price": "467.02",
				"bitcoin_market_feed": "Bitstamp",
				"bitcoin_buy_price": "486.63",
				"bitcoin_sell_price": "448.20",
				"bitcoin_buy_fee": "4.2",
				"bitcoin_sell_fee": "4.2",
				"litecoin_market_price": ...
			},
		"atm_provider": "Robocoin",
		"atm_type": "Generation 1",
		"identification": 
			{
				"is_phone": "true",
				"is_palm_vein": "false",
				"is_photo": "false",
				"is_id_doc_scan": "false",
				"is_finger_print": "false"
			}
	},
	...
]

Here is the description of main fields:

  • id – unique identifier of the machine in the list. Should not change over time;
  • is_enabled  – {true, false} – a flag whether machine is installed and is functional;
  • last_seen  – time when machine was last seen online (UNIX time);
  • location – provide details about where the machine is located, field place is important;
  • currency_code – 3-character code (ISO-4217) for identifying the limits and prices;
  • limits – describes the limits per day, per transaction (buy/sell). Should be defined in the currency provided in currency_code field;
  • prices – provide information about supported coins prices. Better to define as market price used and also the buy and sell fees. Alternatively the information about bitcoinBuy and bitcoinSell prices could be provided;
  • identification – provides information about what are the KYC/AML procedures activated for this machine:
    • is_phone – phone verification (e.g. by SMS);
    • is_palm_vein – palm vein scanner (in Robocoin machines);
    • is_photo – pic of the user is taken and used for verification purposes;
    • is_id_scan – user has to scan ID document;
    • is_finger_print – finger print is required.

As mentioned before, this is just a recommended format and any other format can also be added. Looking forward for your assistance in making the Bitcoin ATM pricing more transparent for users!

Leave a Reply

Your email address will not be published. Required fields are marked *