LeadBase Logo

LeadBase API

Bedriftsoppslag API
v1.0

Oversikt

LeadBase API gir tilgang til detaljert informasjon om norske selskaper basert på organisasjonsnummer eller firmanavn. APIet returnerer strukturert data fra mange offentlige og private kilder, inkludert regnskapsdata, roller, og kontaktinformasjon.

Viktig informasjon:
  • Alle forespørsler krever gyldig API-nøkkel
  • API-nøkkelen sendes som del av request body
  • Tilgang til e-postadresser krever spesiell tillatelse
  • Du kan velge hvilke felt som skal returneres

Autentisering

APIet bruker API-nøkler for autentisering. Nøkkelen din er personlig og skal ikke deles med andre.

Skaffe API-nøkkel

For å få tildelt din unike API-nøkkel, kontakt LeadBase:

  • Nettside: www.leadbase.no
  • Nøkkelen starter typisk med sk_ og er 64 tegn lang
Eksempel API-nøkkel: (kan brukes til å teste APIet)
sk_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z6a7b8c9d0e1f2

Bruk av API-nøkkel

Send API-nøkkelen som et felt i JSON request body:

{
  "apiKey": "din-api-nøkkel-her",
  "orgNumber": "810034882"
}
Sikkerhet: Du kan kun benytte APIet over SSL/HTTPS, og del aldri API-nøkkelen din offentlig.

API Endpoint

POST /api/index.php

Request Parametere

Send data som JSON i request body. Du må oppgi minst ett av følgende:

  • apiKey (required) - Din API-nøkkel
  • orgNumber - Organisasjonsnummer (9 siffer)
  • companyName - Firmanavn (delvis søk støttes)
  • fields (optional) - Array med feltnavn du ønsker returnert

Request Eksempler

Søk med organisasjonsnummer:

{
  "apiKey": "sk_a1b2c3d4...",
  "orgNumber": "810034882"
}

Søk med firmanavn:

{
  "apiKey": "sk_a1b2c3d4...",
  "companyName": "SANDNES ELEKTRISKE"
}

Søk med spesifikke felt:

{
  "apiKey": "sk_a1b2c3d4...",
  "orgNumber": "810034882",
  "fields": ["navn", "organisasjonsnummer", "antallAnsatte", "telefon"]
}

Tilgjengelige datafelter

Oversikt over feltene du kan hente fra APIet:

Feltnavn Beskrivelse Type
organisasjonsnummer 9-sifret organisasjonsnummer string
navn Selskapets navn string
antallAnsatte Antall registrerte ansatte integer
organisasjonsform_kode Organisasjonsform (AS, ASA, etc.) string
forretningsadresse_adresse Forretningsadresse array
forretningsadresse_postnummer Postnummer string
forretningsadresse_poststed Poststed string
telefon Telefonnummer string
hjemmeside Nettside URL string
epostadresse Offentlig e-postadresse string
stiftelsesdato Dato selskapet ble stiftet string
naeringskode1 Primær næringskode object
dagligLeder Informasjon om daglig leder object
roller Liste over styremedlemmer og roller array
resultatregnskapResultat Regnskapsdata (resultat) object
egenkapitalGjeld Egenkapital og gjeld object
eiendeler Eiendeler object
emails Liste med e-postadresser (krever tilgang) array
epostDagligLeder Daglig leders e-post (krever tilgang) string
Beskyttede felt: Feltene emails og epostDagligLeder returneres kun hvis din bruker har fått tildelt tilgang. Kontakt LeadBase for å få denne tilgangen.

Responser

Vellykket respons (200 OK)

{
  "success": true,
  "data": {
    "organisasjonsnummer": "810034882",
    "navn": "SANDNES ELEKTRISKE AS",
    "antallAnsatte": 8,
    "telefon": "51 68 57 00",
    "hjemmeside": "https://www.sandneselektriske.no",
    "forretningsadresse_adresse": ["Strandgata 21"],
    "forretningsadresse_postnummer": "4307",
    "forretningsadresse_poststed": "SANDNES",
    ...
  }
}
Feil og statuskoder: Se Feilhåndtering-seksjonen for komplett oversikt over alle HTTP-statuskoder, mulige feil og løsninger.

Kodeeksempler

cURL

curl -X POST https://api.leadbase.no/company-search.php \
  -H "Content-Type: application/json" \
  -d '{
    "apiKey": "sk_a1b2c3d4...",
    "orgNumber": "810034882"
  }'

PHP

$data = [
    'apiKey' => 'sk_a1b2c3d4...',
    'orgNumber' => '810034882'
];

$ch = curl_init('https://api.leadbase.no/index.php');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);

$response = curl_exec($ch);
$result = json_decode($response, true);

JavaScript

fetch('https://api.leadbase.no/index.php', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({
        apiKey: 'sk_a1b2c3d4...',
        orgNumber: '810034882'
    })
})
.then(response => response.json())
.then(result => console.log(result));

Python

import requests

url = 'https://api.leadbase.no/index.php'
data = {
    'apiKey': 'sk_a1b2c3d4...',
    'orgNumber': '810034882'
}

response = requests.post(url, json=data)
result = response.json()

C# (.NET)

using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

class Program
{
    static async Task Main()
    {
        var client = new HttpClient();
        var data = new
        {
            apiKey = "sk_a1b2c3d4...",
            orgNumber = "810034882"
        };
        
        var json = JsonConvert.SerializeObject(data);
        var content = new StringContent(json, Encoding.UTF8, "application/json");
        
        var response = await client.PostAsync("https://api.leadbase.no/index.php", content);
        var result = await response.Content.ReadAsStringAsync();
        Console.WriteLine(result);
    }
}

Java

import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.json.JSONObject;

public class ApiClient {
    public static void main(String[] args) throws Exception {
        HttpClient client = HttpClients.createDefault();
        HttpPost post = new HttpPost("https://api.leadbase.no/index.php");
        
        JSONObject data = new JSONObject();
        data.put("apiKey", "sk_a1b2c3d4...");
        data.put("orgNumber", "810034882");
        
        post.setEntity(new StringEntity(data.toString()));
        post.setHeader("Content-Type", "application/json");
        
        String response = EntityUtils.toString(client.execute(post).getEntity());
        System.out.println(response);
    }
}

TypeScript

interface CompanySearchRequest {
    apiKey: string;
    orgNumber?: string;
    companyName?: string;
    fields?: string[];
}

async function searchCompany(data: CompanySearchRequest): Promise {
    const response = await fetch('https://api.leadbase.no/index.php', {
        method: 'POST',
        headers: { 'Content-Type': 'application/json' },
        body: JSON.stringify(data)
    });
    
    const result = await response.json();
    console.log(result);
}

searchCompany({
    apiKey: 'sk_a1b2c3d4...',
    orgNumber: '810034882'
});

Go

package main

import (
	"bytes"
	"encoding/json"
	"fmt"
	"io/ioutil"
	"net/http"
)

func main() {
	data := map[string]interface{}{
		"apiKey":    "sk_a1b2c3d4...",
		"orgNumber": "810034882",
	}
	
	jsonData, _ := json.Marshal(data)
	resp, _ := http.Post(
		"https://api.leadbase.no/index.php",
		"application/json",
		bytes.NewBuffer(jsonData),
	)
	
	body, _ := ioutil.ReadAll(resp.Body)
	fmt.Println(string(body))
}

Rate Limiting

For å sikre stabil ytelse for alle brukere har APIet følgende grenser:

  • Maks 20 forespørsler per sekund per API-nøkkel
  • Overskridelser returnerer HTTP 429 (Too Many Requests)
  • Vi anbefaler å implementere retry-logikk med eksponentiell backoff

Sikkerhet

SSL/TLS krav

  • Alle API-forespørsler brukes over HTTPS (TLS 1.2 eller høyere)
  • API-nøkkelen skal aldri sendes over usikker HTTP-tilkobling
  • Sikre API-nøkkelen din og lagre den sikkert i miljøvariabler

Feilhåndtering

APIet returnerer strukturerte feilmeldinger. Her er de vanligste:

Kode Feil Årsak Løsning
400 Ugyldig JSON format Request body er ikke gyldig JSON Sjekk JSON-syntaksen, bruk JSON-validator
400 Manglende required felt apiKey eller søkeparameter mangler Inkluder apiKey og minst ett av: orgNumber eller companyName
401 Ugyldig API-nøkkel API-nøkkelen er feil eller utløpt Kontroller API-nøkkelen, kontakt support hvis den er korrekt
403 Forbidden API-nøkkelen er ikke gyldig eller har ikke tilgang Sjekk API-nøkkelen, kontakt LeadBase for hjelp
404 Selskap ikke funnet Organisasjonsnummer eller firmanavn finnes ikke Kontroller stavingen, prøv alternativt søk
413 Payload Too Large Request payload er for stor Reduser payload-størrelsen eller bruk en større API-nøkkel
429 Too Many Requests Du har overskredet rate limit (20 req/sek) Vent litt før du sender nye forespørsler
500 Server Error Intern server feil Prøv igjen senere, kontakt support hvis problemet vedvarer

Eksempel negativ respons

Når selskap ikke finnes:

{
  "success": false,
  "error": "Selskap ikke funnet",
  "statusCode": 404
}

Når API-nøkkel er ugyldig:

{
  "success": false,
  "error": "Ugyldig API-nøkkel",
  "statusCode": 401
}
IP-blokkering: For å forhindre brute force-angrep, kan APIet blokkere IP-adresser som gjør mange feilaktige autentiseringsforespørsler. Hvis du opplever feil 401 (Ugyldig API-nøkkel) flere ganger fra samme IP-adresse, kan dette være en indikasjon på at IP-adressen er blokkert. Kontakt LeadBase for å få hjelp med å fjerne blokkeringen.

Best Practices

Generelt

  • Caching: Cache resultater lokalt for å redusere antall API-kall
  • Spesifikke felt: Bruk fields-parameteren for å hente kun de feltene du trenger
  • Error handling: Implementer robust feilhåndtering med retry-logikk
  • Timeout: Sett rimelige timeouts (10-30 sekunder) på dine forespørsler

Retry-strategi

Ved midlertidig feil (5xx eller timeout), bruk eksponentiell backoff:

  • Første forsøk: umiddelbar
  • Andre forsøk: vent 1 sekund
  • Tredje forsøk: vent 2 sekunder
  • Max 3 forsøk per forespørsel

Logg og monitorering

  • Logg alle API-kall for feilsøking
  • Overvåk rate limit-svar for å justere belastning
  • Sett opp alarmer for mange feil i strekk

Andre funksjoner

LeadBase tilbyr mer enn standard API-integrasjon. Vi er opptatt av at våre kunder får data på den måten de ønsker.

Egendefinerte løsninger

  • Skreddersydd API: Tilpasset API med dine spesifikke behov
  • Prosessflyter: Automatisering av større dataprosesser
  • AI-integrasjon: Avansert dataanalyse og innsikter
  • Custom integrasjoner: Direkte integrering med dine systemer
Interessert i egendefinerte løsninger? Kontakt oss på support@leadbase.no for å diskutere dine behov.

Support & Kontakt

Har du spørsmål eller problemer?

Support

Dokumentasjon

  • Les dokumentasjonen nøye før du kontakter support
  • Sjekk feilmeldinger og Best Practices-seksjonen
  • Inkluder API-forespørselen og respons når du kontakter support

Test API