import requests
response = requests.get(
"https://api.sikkerapi.com/taxii2/",
headers={"Accept": "application/taxii+json;version=2.1"}
)
api_root = response.json()
print(f"Title: {api_root['title']}")
print(f"Versions: {api_root['versions']}")
const response = await fetch(
"https://api.sikkerapi.com/taxii2/",
{
headers: {
"Accept": "application/taxii+json;version=2.1"
}
}
);
const apiRoot = await response.json();
console.log(`Title: ${apiRoot.title}`);
console.log(`Versions: ${apiRoot.versions}`);
<?php
$ch = curl_init("https://api.sikkerapi.com/taxii2/");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
"Accept: application/taxii+json;version=2.1"
]
]);
$response = curl_exec($ch);
$data = json_decode($response, true);
echo "Title: " . $data['title'];
package main
import (
"encoding/json"
"fmt"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET",
"https://api.sikkerapi.com/taxii2/", nil)
req.Header.Set("Accept", "application/taxii+json;version=2.1")
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
var data map[string]interface{}
json.NewDecoder(resp.Body).Decode(&data)
fmt.Printf("Title: %v\n", data["title"])
}
import java.net.http.*;
import java.net.URI;
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.sikkerapi.com/taxii2/"))
.header("Accept", "application/taxii+json;version=2.1")
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
using System.Net.Http;
var client = new HttpClient();
client.DefaultRequestHeaders.Accept.ParseAdd(
"application/taxii+json;version=2.1");
var response = await client.GetAsync(
"https://api.sikkerapi.com/taxii2/");
var content = await response.Content.ReadAsStringAsync();
Console.WriteLine(content);
import java.net.http.*
import java.net.URI
val client = HttpClient.newHttpClient()
val request = HttpRequest.newBuilder()
.uri(URI.create("https://api.sikkerapi.com/taxii2/"))
.header("Accept", "application/taxii+json;version=2.1")
.build()
val response = client.send(request, HttpResponse.BodyHandlers.ofString())
println(response.body())
require 'net/http'
require 'json'
uri = URI("https://api.sikkerapi.com/taxii2/")
request = Net::HTTP::Get.new(uri)
request["Accept"] = "application/taxii+json;version=2.1"
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
http.request(request)
end
data = JSON.parse(response.body)
puts "Title: #{data['title']}"
use reqwest::header::{ACCEPT, HeaderMap};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut headers = HeaderMap::new();
headers.insert(ACCEPT, "application/taxii+json;version=2.1".parse()?);
let client = reqwest::Client::new();
let resp = client
.get("https://api.sikkerapi.com/taxii2/")
.headers(headers)
.send()
.await?
.json::<serde_json::Value>()
.await?;
println!("Title: {}", resp["title"]);
Ok(())
}
# Bearer token auth
curl "https://api.sikkerapi.com/taxii2/collections/sikker-threat-intel/objects/?limit=10" \
-H "Authorization: Bearer sk_free_..." \
-H "Accept: application/taxii+json;version=2.1"
# Basic auth (for Sentinel, Splunk, and other SIEMs)
curl "https://api.sikkerapi.com/taxii2/collections/sikker-threat-intel/objects/?limit=10" \
-u "apikey:sk_free_..." \
-H "Accept: application/taxii+json;version=2.1"
import requests
response = requests.get(
"https://api.sikkerapi.com/taxii2/collections/sikker-threat-intel/objects/",
headers={
"Authorization": "Bearer sk_free_...",
"Accept": "application/taxii+json;version=2.1"
},
params={"limit": 10}
)
envelope = response.json()
for obj in envelope.get("objects", []):
if obj["type"] == "indicator":
print(f"{obj['name']} (confidence: {obj['confidence']})")
# Paginate using the 'next' cursor
if envelope.get("more"):
next_cursor = envelope["next"]
print(f"Next page cursor: {next_cursor}")
const response = await fetch(
"https://api.sikkerapi.com/taxii2/collections/sikker-threat-intel/objects/?limit=10",
{
headers: {
"Authorization": "Bearer sk_free_...",
"Accept": "application/taxii+json;version=2.1"
}
}
);
const envelope = await response.json();
for (const obj of envelope.objects ?? []) {
if (obj.type === "indicator") {
console.log(`${obj.name} (confidence: ${obj.confidence})`);
}
}
// Paginate using the 'next' cursor
if (envelope.more) {
console.log(`Next page cursor: ${envelope.next}`);
}
<?php
$ch = curl_init("https://api.sikkerapi.com/taxii2/collections/sikker-threat-intel/objects/?limit=10");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
"Authorization: Bearer sk_free_...",
"Accept: application/taxii+json;version=2.1"
]
]);
$response = curl_exec($ch);
$envelope = json_decode($response, true);
foreach ($envelope['objects'] ?? [] as $obj) {
if ($obj['type'] === 'indicator') {
echo $obj['name'] . " (confidence: " . $obj['confidence'] . ")\n";
}
}
package main
import (
"encoding/json"
"fmt"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET",
"https://api.sikkerapi.com/taxii2/collections/sikker-threat-intel/objects/?limit=10", nil)
req.Header.Set("Authorization", "Bearer sk_free_...")
req.Header.Set("Accept", "application/taxii+json;version=2.1")
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
var envelope map[string]interface{}
json.NewDecoder(resp.Body).Decode(&envelope)
fmt.Printf("More pages: %v\n", envelope["more"])
}
import java.net.http.*;
import java.net.URI;
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(
"https://api.sikkerapi.com/taxii2/collections/sikker-threat-intel/objects/?limit=10"))
.header("Authorization", "Bearer sk_free_...")
.header("Accept", "application/taxii+json;version=2.1")
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
using System.Net.Http;
using System.Net.Http.Headers;
var client = new HttpClient();
client.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("Bearer", "sk_free_...");
client.DefaultRequestHeaders.Accept.ParseAdd(
"application/taxii+json;version=2.1");
var response = await client.GetAsync(
"https://api.sikkerapi.com/taxii2/collections/sikker-threat-intel/objects/?limit=10");
var content = await response.Content.ReadAsStringAsync();
Console.WriteLine(content);
import java.net.http.*
import java.net.URI
val client = HttpClient.newHttpClient()
val request = HttpRequest.newBuilder()
.uri(URI.create(
"https://api.sikkerapi.com/taxii2/collections/sikker-threat-intel/objects/?limit=10"))
.header("Authorization", "Bearer sk_free_...")
.header("Accept", "application/taxii+json;version=2.1")
.build()
val response = client.send(request, HttpResponse.BodyHandlers.ofString())
println(response.body())
require 'net/http'
require 'json'
uri = URI("https://api.sikkerapi.com/taxii2/collections/sikker-threat-intel/objects/?limit=10")
request = Net::HTTP::Get.new(uri)
request["Authorization"] = "Bearer sk_free_..."
request["Accept"] = "application/taxii+json;version=2.1"
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
http.request(request)
end
envelope = JSON.parse(response.body)
puts "More pages: #{envelope['more']}"
use reqwest::header::{ACCEPT, AUTHORIZATION, HeaderMap};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut headers = HeaderMap::new();
headers.insert(AUTHORIZATION, "Bearer sk_free_...".parse()?);
headers.insert(ACCEPT, "application/taxii+json;version=2.1".parse()?);
let client = reqwest::Client::new();
let resp = client
.get("https://api.sikkerapi.com/taxii2/collections/sikker-threat-intel/objects/?limit=10")
.headers(headers)
.send()
.await?
.json::<serde_json::Value>()
.await?;
println!("More pages: {}", resp["more"]);
Ok(())
}
curl "https://api.sikkerapi.com/taxii2/collections/sikker-threat-intel/objects/203.0.113.42/" \
-H "Authorization: Bearer sk_free_..." \
-H "Accept: application/taxii+json;version=2.1"
import requests
response = requests.get(
"https://api.sikkerapi.com/taxii2/collections/sikker-threat-intel/objects/203.0.113.42/",
headers={
"Authorization": "Bearer sk_free_...",
"Accept": "application/taxii+json;version=2.1"
}
)
bundle = response.json()
for obj in bundle.get("objects", []):
if obj["type"] == "indicator":
print(f"Pattern: {obj['pattern']}")
print(f"Confidence: {obj['confidence']}")
const response = await fetch(
"https://api.sikkerapi.com/taxii2/collections/sikker-threat-intel/objects/203.0.113.42/",
{
headers: {
"Authorization": "Bearer sk_free_...",
"Accept": "application/taxii+json;version=2.1"
}
}
);
const bundle = await response.json();
const indicator = bundle.objects?.find(o => o.type === "indicator");
if (indicator) {
console.log(`Pattern: ${indicator.pattern}`);
console.log(`Confidence: ${indicator.confidence}`);
}
<?php
$ch = curl_init(
"https://api.sikkerapi.com/taxii2/collections/sikker-threat-intel/objects/203.0.113.42/");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
"Authorization: Bearer sk_free_...",
"Accept: application/taxii+json;version=2.1"
]
]);
$response = curl_exec($ch);
$bundle = json_decode($response, true);
foreach ($bundle['objects'] ?? [] as $obj) {
if ($obj['type'] === 'indicator') {
echo "Pattern: " . $obj['pattern'] . "\n";
echo "Confidence: " . $obj['confidence'] . "\n";
}
}
package main
import (
"encoding/json"
"fmt"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET",
"https://api.sikkerapi.com/taxii2/collections/sikker-threat-intel/objects/203.0.113.42/", nil)
req.Header.Set("Authorization", "Bearer sk_free_...")
req.Header.Set("Accept", "application/taxii+json;version=2.1")
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
var bundle map[string]interface{}
json.NewDecoder(resp.Body).Decode(&bundle)
fmt.Println(bundle)
}
import java.net.http.*;
import java.net.URI;
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(
"https://api.sikkerapi.com/taxii2/collections/sikker-threat-intel/objects/203.0.113.42/"))
.header("Authorization", "Bearer sk_free_...")
.header("Accept", "application/taxii+json;version=2.1")
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
using System.Net.Http;
using System.Net.Http.Headers;
var client = new HttpClient();
client.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("Bearer", "sk_free_...");
client.DefaultRequestHeaders.Accept.ParseAdd(
"application/taxii+json;version=2.1");
var response = await client.GetAsync(
"https://api.sikkerapi.com/taxii2/collections/sikker-threat-intel/objects/203.0.113.42/");
var content = await response.Content.ReadAsStringAsync();
Console.WriteLine(content);
import java.net.http.*
import java.net.URI
val client = HttpClient.newHttpClient()
val request = HttpRequest.newBuilder()
.uri(URI.create(
"https://api.sikkerapi.com/taxii2/collections/sikker-threat-intel/objects/203.0.113.42/"))
.header("Authorization", "Bearer sk_free_...")
.header("Accept", "application/taxii+json;version=2.1")
.build()
val response = client.send(request, HttpResponse.BodyHandlers.ofString())
println(response.body())
require 'net/http'
require 'json'
uri = URI("https://api.sikkerapi.com/taxii2/collections/sikker-threat-intel/objects/203.0.113.42/")
request = Net::HTTP::Get.new(uri)
request["Authorization"] = "Bearer sk_free_..."
request["Accept"] = "application/taxii+json;version=2.1"
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
http.request(request)
end
bundle = JSON.parse(response.body)
puts bundle
use reqwest::header::{ACCEPT, AUTHORIZATION, HeaderMap};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut headers = HeaderMap::new();
headers.insert(AUTHORIZATION, "Bearer sk_free_...".parse()?);
headers.insert(ACCEPT, "application/taxii+json;version=2.1".parse()?);
let client = reqwest::Client::new();
let resp = client
.get("https://api.sikkerapi.com/taxii2/collections/sikker-threat-intel/objects/203.0.113.42/")
.headers(headers)
.send()
.await?
.json::<serde_json::Value>()
.await?;
println!("{:#}", resp);
Ok(())
}
curl "https://api.sikkerapi.com/taxii2/collections/sikker-threat-intel/objects/?added_after=2026-02-01T00:00:00Z&limit=50" \
-H "Authorization: Bearer sk_free_..." \
-H "Accept: application/taxii+json;version=2.1"
import requests
response = requests.get(
"https://api.sikkerapi.com/taxii2/collections/sikker-threat-intel/objects/",
headers={
"Authorization": "Bearer sk_free_...",
"Accept": "application/taxii+json;version=2.1"
},
params={
"added_after": "2026-02-01T00:00:00Z",
"limit": 50
}
)
envelope = response.json()
print(f"Indicators: {len(envelope.get('objects', []))}")
print(f"More pages: {envelope.get('more', False)}")
const params = new URLSearchParams({
added_after: "2026-02-01T00:00:00Z",
limit: "50"
});
const response = await fetch(
`https://api.sikkerapi.com/taxii2/collections/sikker-threat-intel/objects/?${params}`,
{
headers: {
"Authorization": "Bearer sk_free_...",
"Accept": "application/taxii+json;version=2.1"
}
}
);
const envelope = await response.json();
console.log(`Indicators: ${envelope.objects?.length ?? 0}`);
console.log(`More pages: ${envelope.more}`);
<?php
$params = http_build_query([
'added_after' => '2026-02-01T00:00:00Z',
'limit' => 50
]);
$ch = curl_init(
"https://api.sikkerapi.com/taxii2/collections/sikker-threat-intel/objects/?" . $params);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
"Authorization: Bearer sk_free_...",
"Accept: application/taxii+json;version=2.1"
]
]);
$response = curl_exec($ch);
$envelope = json_decode($response, true);
package main
import (
"encoding/json"
"fmt"
"net/http"
"net/url"
)
func main() {
baseURL := "https://api.sikkerapi.com/taxii2/collections/sikker-threat-intel/objects/"
params := url.Values{}
params.Add("added_after", "2026-02-01T00:00:00Z")
params.Add("limit", "50")
req, _ := http.NewRequest("GET", baseURL+"?"+params.Encode(), nil)
req.Header.Set("Authorization", "Bearer sk_free_...")
req.Header.Set("Accept", "application/taxii+json;version=2.1")
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
var envelope map[string]interface{}
json.NewDecoder(resp.Body).Decode(&envelope)
fmt.Printf("More pages: %v\n", envelope["more"])
}
import java.net.http.*;
import java.net.URI;
String url = "https://api.sikkerapi.com/taxii2/collections/sikker-threat-intel/objects/" +
"?added_after=2026-02-01T00:00:00Z&limit=50";
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.header("Authorization", "Bearer sk_free_...")
.header("Accept", "application/taxii+json;version=2.1")
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
using System.Net.Http;
using System.Net.Http.Headers;
var client = new HttpClient();
client.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("Bearer", "sk_free_...");
client.DefaultRequestHeaders.Accept.ParseAdd(
"application/taxii+json;version=2.1");
var response = await client.GetAsync(
"https://api.sikkerapi.com/taxii2/collections/sikker-threat-intel/objects/" +
"?added_after=2026-02-01T00:00:00Z&limit=50");
import java.net.http.*
import java.net.URI
val url = "https://api.sikkerapi.com/taxii2/collections/sikker-threat-intel/objects/" +
"?added_after=2026-02-01T00:00:00Z&limit=50"
val client = HttpClient.newHttpClient()
val request = HttpRequest.newBuilder()
.uri(URI.create(url))
.header("Authorization", "Bearer sk_free_...")
.header("Accept", "application/taxii+json;version=2.1")
.build()
val response = client.send(request, HttpResponse.BodyHandlers.ofString())
require 'net/http'
uri = URI("https://api.sikkerapi.com/taxii2/collections/sikker-threat-intel/objects/")
uri.query = URI.encode_www_form(
added_after: "2026-02-01T00:00:00Z", limit: 50
)
request = Net::HTTP::Get.new(uri)
request["Authorization"] = "Bearer sk_free_..."
request["Accept"] = "application/taxii+json;version=2.1"
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
http.request(request)
end
use reqwest::header::{ACCEPT, AUTHORIZATION, HeaderMap};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut headers = HeaderMap::new();
headers.insert(AUTHORIZATION, "Bearer sk_free_...".parse()?);
headers.insert(ACCEPT, "application/taxii+json;version=2.1".parse()?);
let client = reqwest::Client::new();
let resp = client
.get("https://api.sikkerapi.com/taxii2/collections/sikker-threat-intel/objects/")
.query(&[("added_after", "2026-02-01T00:00:00Z"), ("limit", "50")])
.headers(headers)
.send()
.await?;
Ok(())
}