Beispiele
Anwendungsbeispiele für Preisliste herunterladen. Der Endpunkt akzeptiert nur POST und ist auf 20 Anfragen pro Minute begrenzt.
Ein Land
country ist immer ein Array, auch für ein einzelnes Land. Ohne wallet wird die Preisliste der Haupt-Wallet zurückgegeben.
POST /api/1.0/price-list/get HTTP/1.1
Host: portal.bulkgate.com
Content-Type: application/json
{
"application_id": 451,
"application_token": "NKN02TWE6NfBkfl-your-secret-token-Wf05GaqLIWLW4aBj",
"country": [
"cz"
]
}
Mehrere Länder auf einmal
Eine Anfrage kann mehrere Länder abfragen; die Antwort gruppiert die Preisliste nach Ländercode.
POST /api/1.0/price-list/get HTTP/1.1
Host: portal.bulkgate.com
Content-Type: application/json
{
"application_id": 451,
"application_token": "NKN02TWE6NfBkfl-your-secret-token-Wf05GaqLIWLW4aBj",
"country": [
"cz",
"sk",
"gb"
]
}
Preisliste einer bestimmten Wallet
wallet wählt die Wallet, zu der die Preise gehören. Eine Wallet, die nicht Ihnen gehört, schlägt mit invalid_wallet fehl.
POST /api/1.0/price-list/get HTTP/1.1
Host: portal.bulkgate.com
Content-Type: application/json
{
"application_id": 451,
"application_token": "NKN02TWE6NfBkfl-your-secret-token-Wf05GaqLIWLW4aBj",
"country": [
"cz"
],
"wallet": "bg1905014138000023"
}
Die Antwort ist in der Spezifikation beschrieben.
Codebeispiele
Nachfolgend dieselbe Anfrage in verschiedenen Programmiersprachen:
PHP
php.net
$context = stream_context_create(['http' => [
'method' => 'POST',
'header' => 'Content-Type: application/json',
'content' => json_encode([
'application_id' => 451,
'application_token' => 'NKN02TWE6NfBkfl-your-secret-token-Wf05GaqLIWLW4aBj',
'country' => ['cz', 'sk', 'gb'],
], JSON_THROW_ON_ERROR),
'timeout' => 30,
'ignore_errors' => true,
]]);
$body = file_get_contents('https://portal.bulkgate.com/api/1.0/price-list/get', false, $context);
if ($body === false)
{
throw new RuntimeException('BulkGate API did not respond.');
}
$response = json_decode($body, true, flags: JSON_THROW_ON_ERROR);
if (isset($response['error']))
{
throw new RuntimeException("BulkGate: {$response['error']} ({$response['type']})");
}
print_r($response['data']);
PHP cURL
php.net/curl
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://portal.bulkgate.com/api/1.0/price-list/get',
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode([
'application_id' => 451,
'application_token' => 'NKN02TWE6NfBkfl-your-secret-token-Wf05GaqLIWLW4aBj',
'country' => ['cz', 'sk', 'gb'],
], JSON_THROW_ON_ERROR),
]);
$body = curl_exec($curl);
$error = curl_error($curl);
curl_close($curl);
if ($error !== '')
{
throw new RuntimeException("BulkGate API: $error");
}
print_r(json_decode($body, true, flags: JSON_THROW_ON_ERROR));
PHP Guzzle
docs.guzzlephp.org
use GuzzleHttp\Client;
use GuzzleHttp\Exception\GuzzleException;
$client = new Client(['timeout' => 30, 'http_errors' => false]);
try
{
$result = $client->post('https://portal.bulkgate.com/api/1.0/price-list/get', ['json' => [
'application_id' => 451,
'application_token' => 'NKN02TWE6NfBkfl-your-secret-token-Wf05GaqLIWLW4aBj',
'country' => ['cz', 'sk', 'gb'],
]]);
}
catch (GuzzleException $e)
{
throw new RuntimeException('BulkGate: ' . $e->getMessage(), previous: $e);
}
print_r(json_decode((string) $result->getBody(), true, flags: JSON_THROW_ON_ERROR));
Go
go.dev
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
url := "https://portal.bulkgate.com/api/1.0/price-list/get"
payload := strings.NewReader(`{"application_id": 451, "application_token": "NKN02TWE6NfBkfl-your-secret-token-Wf05GaqLIWLW4aBj", "country": ["cz", "sk", "gb"]}`)
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(body))
}
Python
python.org
import http.client, json
connection = http.client.HTTPSConnection('portal.bulkgate.com')
connection.request('POST', '/api/1.0/price-list/get', json.dumps({
'application_id': 451,
'application_token': 'NKN02TWE6NfBkfl-your-secret-token-Wf05GaqLIWLW4aBj',
'country': ['cz', 'sk', 'gb'],
}), {
'Content-Type': 'application/json'
})
response = connection.getresponse()
print(response.status, response.read().decode())
Node.js
nodejs.org
const response = await fetch("https://portal.bulkgate.com/api/1.0/price-list/get", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
"application_id": 451,
"application_token": "NKN02TWE6NfBkfl-your-secret-token-Wf05GaqLIWLW4aBj",
"country": ["cz", "sk", "gb"]
}),
});
const result = await response.json();
if (result.error) {
throw new Error(`BulkGate: ${result.error} (${result.type})`);
}
console.log(result.data.price_list);
Java
java.net.http.HttpClient
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://portal.bulkgate.com/api/1.0/price-list/get"))
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString("""
{
"application_id": 451,
"application_token": "NKN02TWE6NfBkfl-your-secret-token-Wf05GaqLIWLW4aBj",
"country": [
"cz",
"sk",
"gb"
]
}"""))
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode() + " " + response.body());
Kotlin
kotlinlang.org
import java.net.URI
import java.net.http.HttpClient
import java.net.http.HttpRequest
import java.net.http.HttpResponse
val payload = """
{
"application_id": 451,
"application_token": "NKN02TWE6NfBkfl-your-secret-token-Wf05GaqLIWLW4aBj",
"country": [
"cz",
"sk",
"gb"
]
}
""".trimIndent()
val request = HttpRequest.newBuilder()
.uri(URI.create("https://portal.bulkgate.com/api/1.0/price-list/get"))
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(payload))
.build()
val response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString())
println("${response.statusCode()} ${response.body()}")
C# .NET
learn.microsoft.com
using System.Net.Http;
using System.Text;
var payload = """
{
"application_id": 451,
"application_token": "NKN02TWE6NfBkfl-your-secret-token-Wf05GaqLIWLW4aBj",
"country": [
"cz",
"sk",
"gb"
]
}
""";
using var client = new HttpClient();
var response = await client.PostAsync(
"https://portal.bulkgate.com/api/1.0/price-list/get",
new StringContent(payload, Encoding.UTF8, "application/json"));
Console.WriteLine($"{(int) response.StatusCode} {await response.Content.ReadAsStringAsync()}");
C++ libcurl
curl.se/libcurl
#include <curl/curl.h>
#include <iostream>
#include <string>
static size_t collect(char *data, size_t size, size_t nmemb, std::string *out)
{
out->append(data, size * nmemb);
return size * nmemb;
}
int main()
{
const std::string payload = R"json(
{
"application_id": 451,
"application_token": "NKN02TWE6NfBkfl-your-secret-token-Wf05GaqLIWLW4aBj",
"country": [
"cz",
"sk",
"gb"
]
}
)json";
CURL *curl = curl_easy_init();
if (curl == nullptr)
{
std::cerr << "curl_easy_init failed\n";
return 1;
}
curl_slist *headers = curl_slist_append(nullptr, "Content-Type: application/json");
std::string body;
curl_easy_setopt(curl, CURLOPT_URL, "https://portal.bulkgate.com/api/1.0/price-list/get");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, payload.c_str());
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, collect);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &body);
const CURLcode result = curl_easy_perform(curl);
long status = 0;
curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &status);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
if (result != CURLE_OK)
{
std::cerr << curl_easy_strerror(result) << "\n";
return 1;
}
std::cout << status << " " << body << "\n";
return 0;
}
Ruby
ruby-lang.org
require 'json'
require 'net/http'
uri = URI('https://portal.bulkgate.com/api/1.0/price-list/get')
response = Net::HTTP.post(uri, {
'application_id' => 451,
'application_token' => 'NKN02TWE6NfBkfl-your-secret-token-Wf05GaqLIWLW4aBj',
'country' => ['cz', 'sk', 'gb']
}.to_json, 'Content-Type' => 'application/json')
puts "#{response.code} #{response.body}"
Bash cURL
curl.se
curl --request POST \
--url https://portal.bulkgate.com/api/1.0/price-list/get \
--header 'Content-Type: application/json' \
--data '{"application_id": 451, "application_token": "NKN02TWE6NfBkfl-your-secret-token-Wf05GaqLIWLW4aBj", "country": ["cz", "sk", "gb"]}'
War diese Seite hilfreich?
Vielen Dank für Ihr Feedback.