Hoppa till innehåll
Meny och API-referens

Guide

Kodexempel

Exempel på företagsuppslag, paginering och hantering av användningsgränser i flera språk.

Exemplen hämtar nyckeln från miljövariabeln FIRMAINFO_API_KEY. Byt bara identifieraren och lägg till de fält eller filter som din integration behöver.

cURL
curl "https://firmainfo.se/api/v1/companies/5560125790" \
  -H "Authorization: Bearer $FIRMAINFO_API_KEY"
Python
import os
import requests

BASE = "https://firmainfo.se/api/v1"
session = requests.Session()
session.headers["Authorization"] = f"Bearer {os.environ['FIRMAINFO_API_KEY']}"

response = session.get(f"{BASE}/companies/5560125790", timeout=30)
response.raise_for_status()
company = response.json()
print(company["name"], company["registration_number"])
JavaScript (Node 18+)
const BASE = "https://firmainfo.se/api/v1";

const response = await fetch(`${BASE}/companies/5560125790`, {
  headers: { Authorization: `Bearer ${process.env.FIRMAINFO_API_KEY}` },
});

if (!response.ok) {
  const { error } = await response.json();
  throw new Error(`${error.code}: ${error.message} (${error.request_id})`);
}

const company = await response.json();
console.log(company.name, company.registration_number);
C#
using var client = new HttpClient { BaseAddress = new Uri("https://firmainfo.se/api/v1/") };
client.DefaultRequestHeaders.Authorization =
    new AuthenticationHeaderValue("Bearer", Environment.GetEnvironmentVariable("FIRMAINFO_API_KEY"));

var company = await client.GetFromJsonAsync<JsonElement>("companies/5560125790");
Console.WriteLine(company.GetProperty("name").GetString());
PHP
<?php
$key = getenv('FIRMAINFO_API_KEY');
$context = stream_context_create([
    'http' => ['header' => "Authorization: Bearer {$key}\r\n"],
]);

$body = file_get_contents(
    'https://firmainfo.se/api/v1/companies/5560125790',
    false,
    $context
);
$company = json_decode($body, true);
echo $company['name'], PHP_EOL;
Go
req, _ := http.NewRequest("GET", "https://firmainfo.se/api/v1/companies/5560125790", nil)
req.Header.Set("Authorization", "Bearer "+os.Getenv("FIRMAINFO_API_KEY"))

resp, err := http.DefaultClient.Do(req)
if err != nil {
    log.Fatal(err)
}
defer resp.Body.Close()

var company map[string]any
json.NewDecoder(resp.Body).Decode(&company)
fmt.Println(company["name"])

Läs alla resultatsidor

Python, sidmarkörer
import os
import requests

BASE = "https://firmainfo.se/api/v1"
session = requests.Session()
session.headers["Authorization"] = f"Bearer {os.environ['FIRMAINFO_API_KEY']}"

params = {"county": "14", "revenue_min": 50_000_000, "sort": "revenue", "limit": 100}
cursor = None

while True:
    if cursor:
        params["cursor"] = cursor
    page = session.get(f"{BASE}/companies", params=params, timeout=30).json()

    for company in page["data"]:
        print(company["registration_number"], company["name"])

    if not page["has_more"]:
        break
    cursor = page["next_cursor"]

Hantera ett 429-svar

Python, backoff
import time
import requests

def get(session, url, **kwargs):
    for attempt in range(5):
        response = session.get(url, timeout=30, **kwargs)
        if response.status_code != 429:
            response.raise_for_status()
            return response.json()
        # Retry-After finns alltid på 429 — respektera det i stället för att gissa.
        time.sleep(int(response.headers.get("Retry-After", 2 ** attempt)))
    raise RuntimeError("rate limited: gav upp efter 5 försök")