Utvecklare
Lumenbase API-referens
REST-endpoints för kontakter, företag, affärer, uppgifter, fakturor och aktiviteter. JSON in, JSON ut, autentiserat med en API-nyckel för arbetsytan.
Snabbstart
Steg 1
Skapa en nyckel
Ge bara de scopes som integrationen använder. Nyckeln visas en gång.
InställningarFöretagsinställningarAPISteg 2
Skicka ett anrop
Lägg nyckeln i Authorization-huvudet i varje anrop.
Bearer lmb_…Steg 3
Läs svarskuvertet
Kontrollera success, läs data och logga meta.request_id för supporten.
meta.request_id
Bas-URL
https://api.lumenbase.io/functions/v1Authorization: Bearer <YOUR_API_KEY>
Content-Type: application/jsonValfria huvuden
X-Idempotency-KeyGör ett omförsök av en import säkert. Se Idempotens.X-Request-IdDitt eget spårnings-id, som returneras i meta.request_id.
Varje svar
{
"success": true,
"data": { ... },
"meta": {
"request_id": "req_...",
"api_version": "1",
"timestamp": "..."
}
}{
"success": false,
"error": {
"code": "VALIDATION_ERROR",
"message": "...",
"details": { "field": "..." }
},
"meta": { ... }
}Autentisering
Varje anrop bär en API-nyckel för arbetsytan som Bearer-token. Ingen annan form accepteras.
Authorization: Bearer lmb_0f2a...Vad varje anrop passerar
- 401
API-nyckel
Saknas, felformaterad eller återkallad
- 403
Scope
Nyckeln saknar scope för det här anropet
- 429
Anropsgräns
Hinken är full
- 400404409
Validering
Felaktigt fält, okänt id eller posten finns inte
- 200201202
Klart
Skapad, läst, uppdaterad eller borttagen
- En nyckel är lmb_ följt av 64 hexadecimala tecken.
- Nycklar lagras hashade. Vi kan inte visa en igen, så spara den när du skapar den.
- Återkallelsen gäller från nästa anrop. Skapa ersättaren först, så blir rotationen utan avbrott.
- En nyckel hör till en arbetsyta. Den kan bara läsa poster i den arbetsytan, och bara länka till dem.
- Poster som en nyckel skapar tillskrivs personen som skapade nyckeln, eller en admin i arbetsytan om personen har lämnat.
Scopes
Varje nyckel har ett eller flera scopes. Ge bara det som integrationen använder.
| Scope | Beskrivning |
|---|---|
| contacts:read | Läs och lista kontakter |
| contacts:write | Skapa, uppdatera och radera kontakter |
| companies:read | Läs och lista företag |
| companies:write | Skapa, uppdatera och radera företag |
| deals:read | Läs och lista affärer |
| deals:write | Skapa, uppdatera och radera affärer |
| tasks:read | Läs och lista tasks |
| tasks:write | Skapa, uppdatera och radera tasks |
| invoices:read | Läs och lista fakturor |
| invoices:write | Skapa, uppdatera och radera fakturor |
| activities:read | Läs och lista aktiviteter |
| activities:write | Skapa och radera aktiviteter |
| inbound:submit | Skicka formulärsvar till ett Inbound-formulär, inget annat. Nyckeln kan inte läsa eller ändra någon post. |
| read | Läsåtkomst till alla entitetstyper |
| admin | Full åtkomst till alla slutpunkter |
contact_ingest och activity_ingest är äldre namn som fortfarande fungerar. Vart och ett ger läs- och skrivåtkomst till kontakter respektive aktiviteter.
Paginering
Alla listendpoints tar de här frågeparametrarna.
| Fält | Typ | Beskrivning |
|---|---|---|
| page | integer | Sidnummer (standard: 1) |
| per_page | integer | Objekt per sida, max 100 (standard: 25) |
| sort_by | string | Fält att sortera efter (varierar per entitet) |
| sort_order | string | "asc" eller "desc" (standard: "desc") |
| search | string | Fritextsökning över nyckelfält |
{
"success": true,
"data": {
"items": [ ... ],
"pagination": { "page": 1, "per_page": 25, "total": 142, "total_pages": 6 }
},
"meta": { ... }
}Resurser
Kontakter
Personer, matchas på e-post vid import
POSTGETPATCHDELETE
Företag
Konton, matchas på domän
POSTGETPATCHDELETE
Affärer
Affärsmöjligheter i pipelinen
POSTGETPATCHDELETE
Uppgifter
Att göra, öppna eller slutförda
POSTGETPATCHDELETE
Fakturor
Faktureringsposter
POSTGETPATCHDELETE
Aktiviteter
Tidslinjehändelser från valfri källa
POSTGETDELETE
Inbound-formulärsvar
Svar från webbformulär, genom ditt leadflöde
POST
Kontakter
Skapa eller importera en kontakt
/v1-public-contactsSkapar en kontakt, eller uppdaterar den kontakt den matchar. Kan skapa eller länka företaget via namn eller domän.
{
"first_name": "John",
"last_name": "Doe",
"email": "john.doe@example.com",
"phone": "+1-555-123-4567",
"title": "Product Manager",
"company_name": "Acme Inc",
"company_domain": "acme.com",
"source": "website_form",
"signal_strength": 75,
"message": "Interested in your enterprise plan"
}| Fält | Typ | Beskrivning |
|---|---|---|
| first_name | string | Kontaktens förnamn |
| last_name | string | Kontaktens efternamn |
| string | Matchar en befintlig kontakt | |
| phone | string | Telefonnummer |
| title | string | Jobbtitel |
| company_name | string | Skapar företaget om det är nytt |
| company_domain | string | Matchar eller skapar företaget |
| source | string | Etikett för leadkälla |
| signal_strength | number | Intentionspoäng, 0 till 100 (standard: 50) |
| message | string | Fritextmeddelande, till exempel från ett formulär |
| tags | string[] | Upp till 20 etiketter |
{
"success": true,
"data": {
"contact_id": "uuid",
"company_id": "uuid",
"is_new_contact": true,
"is_new_company": false
},
"meta": { ... }
}201 när en kontakt skapas, 200 när en befintlig uppdateras.
Batchimportera kontakter
/v1-public-contacts-batchUpp till 100 kontakter per anrop, var och en med samma fält som en enskild import.
{
"contacts": [
{ "email": "a@example.com", "first_name": "Alice" },
{ "email": "b@example.com", "first_name": "Bob" }
],
"options": { "stop_on_error": false }
}201 när alla skrevs, 207 när några misslyckades (läs results[].success), 400 när ingen skrevs. Max 500 KB.
Hämta eller lista kontakter
/v1-public-contacts-crud?id={uuid}En kontakt via id, med dess företag.
/v1-public-contacts-crud?page=1&per_page=25En sida med kontakter.
| Filter | Typ | Beskrivning |
|---|---|---|
| string | Exakt e-post | |
| company_id | uuid | Kontakter på det här företaget |
| source | string | Exakt leadkälla |
| search | string | Ord i förnamn, efternamn eller e-post |
Sortera efter: created_at, updated_at, first_name, last_name, email
Uppdatera en kontakt
/v1-public-contacts-crud?id={uuid}{ "title": "Senior Product Manager", "phone": "+1-555-999-0000" }Uppdaterbara: first_name, last_name, email, phone, title, company_id, source, birthday. Skicka bara det som ändras.
Ta bort en kontakt
/v1-public-contacts-crud?id={uuid}{ "success": true, "data": { "deleted": true, "id": "uuid" } }Företag
Skapa ett företag
/v1-public-companiesEtt företag med samma domän uppdateras i stället, och anropet svarar 200. Annars skapas ett nytt (201), vilket kräver ett namn.
{
"name": "Acme Inc",
"domain": "acme.com",
"industry": "Technology",
"size": "51-200",
"website": "https://acme.com",
"city": "San Francisco",
"country": "US"
}| Fält | Typ | Beskrivning |
|---|---|---|
| name | string | Krävs vid skapande |
| domain | string | Matchar ett befintligt företag |
| industry | string | Bransch |
| size | string | Storleksintervall, till exempel 51-200 |
| website | string | Webbplats-URL |
| phone | string | Telefonnummer |
| city | string | Stad |
| state | string | Delstat eller region |
| country | string | Landskod |
Hämta eller lista företag
/v1-public-companies?id={uuid}/v1-public-companies?page=1&per_page=25| Filter | Typ | Beskrivning |
|---|---|---|
| domain | string | Exakt domän |
| industry | string | Exakt bransch |
| search | string | Ord i namn eller domän |
Sortera efter: created_at, updated_at, name, domain
Uppdatera ett företag
/v1-public-companies?id={uuid}{ "industry": "SaaS", "size": "201-500" }Uppdaterbara: alla fält ovan. Skicka bara det som ändras.
Ta bort ett företag
/v1-public-companies?id={uuid}Affärer
Skapa en affär
/v1-public-dealsKräver en rubrik, och ett värde eller ett company_id.
{
"title": "Enterprise License: Acme",
"value": 50000,
"currency": "USD",
"stage": "Proposal",
"expected_close_date": "2026-04-15",
"company_id": "uuid",
"contact_id": "uuid"
}| Fält | Typ | Beskrivning |
|---|---|---|
| title | string (obligatoriskt) | Affärens rubrik |
| value | number | Affärens belopp |
| currency | string | Valutakod (standard: arbetsytans valuta) |
| stage | string | Stegnamn eller steg-id (standard: första steget) |
| status | string | open, won eller lost (standard: open) |
| probability | number | Vinstsannolikhet, 0 till 100 |
| expected_close_date | date | YYYY-MM-DD |
| company_id | uuid | Kopplat företag |
| contact_id | uuid | Kopplad kontakt |
| pipeline_id | uuid | Pipeline (standard: arbetsytans standardpipeline) |
| assigned_to | uuid | Ägare, en medlem i arbetsytan (standard: nyckelns skapare) |
| notes | string | Fritext |
Hämta eller lista affärer
/v1-public-deals?id={uuid}/v1-public-deals?page=1&per_page=25| Filter | Typ | Beskrivning |
|---|---|---|
| stage | string | Exakt stegnamn |
| status | string | open, won eller lost |
| company_id | uuid | Affärer på det här företaget |
| pipeline_id | uuid | Affärer i den här pipelinen |
| search | string | Ord i rubriken |
Sortera efter: created_at, updated_at, title, value, expected_close_date
Uppdatera en affär
/v1-public-deals?id={uuid}{ "stage": "Negotiation", "probability": 80 }Ett nytt pipeline_id utan steg flyttar affären till den pipelinens första steg.
Ta bort en affär
/v1-public-deals?id={uuid}Uppgifter
Skapa en uppgift
/v1-public-tasks{
"title": "Follow up with Acme",
"description": "Send proposal by Friday",
"priority": "high",
"due_date": "2026-03-01",
"contact_id": "uuid",
"deal_id": "uuid"
}| Fält | Typ | Beskrivning |
|---|---|---|
| title | string (obligatoriskt) | Uppgiftens rubrik |
| description | string | Uppgiftens beskrivning |
| status | string | open eller completed (standard: open) |
| priority | string | low, medium eller high (standard: medium) |
| task_type | string | todo, email, call, meeting, linkedin_message, linkedin_connection eller custom |
| due_date | date | YYYY-MM-DD |
| assigned_to | uuid | En medlem i arbetsytan (standard: nyckelns skapare) |
| contact_id | uuid | Kopplad kontakt |
| company_id | uuid | Kopplat företag |
| deal_id | uuid | Kopplad affär |
Hämta eller lista uppgifter
/v1-public-tasks?id={uuid}/v1-public-tasks?page=1&per_page=25| Filter | Typ | Beskrivning |
|---|---|---|
| status | string | open eller completed |
| priority | string | low, medium eller high |
| assigned_to | uuid | Uppgifter för den här medlemmen |
| contact_id | uuid | Uppgifter på den här kontakten |
| company_id | uuid | Uppgifter på det här företaget |
| deal_id | uuid | Uppgifter på den här affären |
| search | string | Ord i rubriken |
Sortera efter: created_at, updated_at, title, due_date, priority
Uppdatera en uppgift
/v1-public-tasks?id={uuid}{ "status": "completed", "description": "Proposal sent" }Skicka status completed för att slutföra en uppgift och open för att öppna den igen. En uppgift med öppna deluppgifter kan inte slutföras.
Ta bort en uppgift
/v1-public-tasks?id={uuid}Fakturor
Skapa en faktura
/v1-public-invoicesKräver invoice_number och total. Numret måste vara unikt i arbetsytan.
{
"invoice_number": "INV-2026-001",
"status": "draft",
"issue_date": "2026-02-19",
"due_date": "2026-03-19",
"subtotal": 5000,
"tax_amount": 500,
"total": 5500,
"currency": "USD",
"company_id": "uuid",
"notes": "Net 30"
}| Fält | Typ | Beskrivning |
|---|---|---|
| invoice_number | string (obligatoriskt) | Unikt i arbetsytan |
| total | number (obligatoriskt) | Totalbelopp |
| status | string | draft, sent, paid, partially_paid, overdue eller cancelled (standard: draft) |
| issue_date | date | YYYY-MM-DD (standard: i dag) |
| due_date | date | YYYY-MM-DD |
| subtotal | number | Delsumma |
| tax_amount | number | Skattebelopp |
| currency | string | Valutakod |
| company_id | uuid | Fakturerat företag |
| notes | string | Fritext |
| line_items | json | Fakturarader, sparas som de skickas |
Hämta eller lista fakturor
/v1-public-invoices?id={uuid}/v1-public-invoices?page=1&per_page=25| Filter | Typ | Beskrivning |
|---|---|---|
| status | string | Exakt status |
| company_id | uuid | Fakturor för det här företaget |
| search | string | Fakturanumret innehåller |
Sortera efter: created_at, updated_at, invoice_number, due_date, total, issue_date
Uppdatera en faktura
/v1-public-invoices?id={uuid}{ "status": "sent", "due_date": "2026-04-01" }Ta bort en faktura
/v1-public-invoices?id={uuid}Aktiviteter
Skapa eller importera en aktivitet
/v1-public-activitiesRegistrerar en händelse från Jira, ett supportverktyg, ett formulär eller valfri webhook, på tidslinjen för den kontakt, det företag eller den affär den matchar.
{
"type": "jira_issue",
"entity_email": "john.doe@example.com",
"entity_domain": "acme.com",
"title": "PROJ-123: New Feature Request",
"description": "Customer requested dashboard export",
"timestamp": "2026-01-15T10:30:00Z",
"data": { "issue_key": "PROJ-123", "priority": "high" }
}type är en av dessa. Allt annat lagras som external_activity.
Länkning
entity_emailKontakten med den här e-postadressenentity_domainFöretaget med den här domänencontact_id · company_id · deal_idDen posten, om den finns i din arbetsyta
Utan matchning registreras händelsen ändå, activity_id är null och inget visas på någon tidslinje.
Hämta eller lista aktiviteter
/v1-public-activities-crud?id={uuid}/v1-public-activities-crud?page=1&per_page=25| Filter | Typ | Beskrivning |
|---|---|---|
| type | string | Tidslinjetyp, till exempel note, call, email, meeting eller task |
| contact_id | uuid | På den här kontakten |
| company_id | uuid | På det här företaget |
| deal_id | uuid | På den här affären |
| search | string | Ord i rubriken |
Sortera efter: created_at, type, title
Ta bort en aktivitet
/v1-public-activities-crud?id={uuid}Inbound-formulärsvar
Skicka ett formulärsvar
/v1-public-inbound-submissionsFör ett formulär på din egen webbplats eller i ett annat formulärverktyg. Varje svar sparas först och kör sedan leadflödet som är inställt i Inbound: kontakt, företag, Leads-tavlan, ägare, notis, svarsmål och uppföljningsuppgift. Skapa formuläret under Inbound, Forms, New form, Connect an external form, och publicera det.
{
"form_id": "website-contact",
"external_id": "wpforms-48213",
"email": "anna.larsen@northwind.example",
"name": "Anna Larsen",
"company": "Northwind Advisory",
"phone": "+46 70 123 45 67",
"message": "We need a CRM for 20 sellers.",
"budget": "10-20k",
"utm": { "utm_source": "linkedin", "utm_medium": "paid" },
"page_url": "https://northwind.example/contact"
}| Fält | Typ | Beskrivning |
|---|---|---|
| form_id | string (obligatoriskt) | Formulärets ID från fliken Connection: det läsbara Form ID om ett sådant är satt, annars det långa id:t. Båda fungerar. |
| external_id | string | Ditt eget id för svaret. Skickas det igen blir svaret 200 duplicate och inget nytt sparas. Högst 200 tecken. |
| string (obligatoriskt) | Personens e-post. Krävs, direkt eller via något av namnen nedan. | |
| name | string | Hela namnet. Eller skicka first_name och last_name. |
| company | string | Företagets namn. |
| company_domain | string | Företagets webbplats. Utan den används e-postdomänen, om det inte är en gratis e-posttjänst. |
| phone, title | string | Sätts på en ny kontakt. En befintlig kontakt, matchad på e-post, ändras inte. |
| message, … | string | Alla andra nycklar, till exempel message eller budget, sparas som svar på formulärsvaret och på kontaktens tidslinje. |
| fields | object | Svar kan också ligga här, eller djupare nästlade. Nästlade värden läses via punktsökväg, till exempel contact.email. |
| utm | object | utm_source, utm_medium och resten, för attribution. |
| page_url, referrer | string | Sidan formuläret låg på, och varifrån besökaren kom. |
Namn som läses utan inställning
- emailemaile_mailemail_addressyour_emailmailwork_email
- namenamefull_namefullnameyour_namecontact_name
- first_namefirst_namefirstnamefirstgiven_namefname
- last_namelast_namelastnamelastfamily_namesurnamelname
- companycompanycompany_nameorganizationorganisationbusinessaccount
- company_domaincompany_domaindomainwebsitecompany_websiteurlsite
- phonephonephone_numbertelephonetelyour_phonemobile
- titletitlejob_titleroleposition
- messagemessageyour_messagecommentscommentinquiryenquirybodytextnotenotesquestion
Nycklar matchas utan hänsyn till versaler, och mellanslag, punkter och bindestreck läses som understreck, så Your-Email räknas som your_email. Andra namn mappar du en gång på formulärets flik Fields. Inget ändras på din sida.
{
"success": true,
"data": { "submission_id": "0b6f1c9e-4d2a-4e8b-9a7c-5f3e2d1c0b9a", "status": "accepted" },
"meta": { "request_id": "req_...", "api_version": "1", "timestamp": "2026-09-28T10:00:00.000Z" }
}Svar
| Status | Kod | Betydelse |
|---|---|---|
| 202 | accepted | Sparat, och leadflödet kördes. |
| 202 | held | Sparat, men hållet som trolig spam tills någon granskar det i Datahygien. |
| 200 | duplicate | Detta external_id har redan tagits emot för formuläret. Inget nytt sparades. |
| 400 | VALIDATION_ERROR | Ingen giltig e-post hittades, eller så är form_id felaktigt. details.unmapped_keys listar det som skickades men inte lästes. |
| 403 | EXTERNAL_FORMS_DISABLED | Externa formulär är avstängda under Inbound, Setup, Lead capture. |
| 404 | NOT_FOUND | Inget formulär med detta form_id i nyckelns arbetsyta. |
| 409 | FORM_NOT_EXTERNAL | Formuläret är byggt i Lumenbase. Det använder sin inbäddningskod, inte den här slutpunkten. |
| 409 | FORM_NOT_PUBLISHED | Formuläret är ett utkast eller arkiverat. Publicera det först. |
Svaret nämner formulärsvaret och inget annat. En nyckel som bara kan skicka får inte veta vilka poster som finns.
Skicka från din server, aldrig från sidans kod: vem som helst kan läsa en nyckel i webbläsaren. Försök igen vid 503 med samma external_id, så kan svaret inte sparas två gånger.
Fel
| Status | Kod | Betydelse |
|---|---|---|
| 400 | VALIDATION_ERROR | Ett fält saknas, är felformaterat eller är inte tillåtet. details.field anger vilket, när det finns ett. |
| 401 | UNAUTHORIZED | API-nyckeln saknas, är felformaterad eller återkallad. Skicka Authorization: Bearer <nyckel>. |
| 403 | FORBIDDEN | Nyckeln saknar scopet. details.required_scope anger vilket. |
| 404 | NOT_FOUND | Posten finns inte i den här arbetsytan, eller så har den tagits bort. |
| 405 | METHOD_NOT_ALLOWED | Endpointen stöder inte den här metoden. |
| 409 | CONFLICT | Det finns redan en post med det här unika värdet, till exempel ett fakturanummer. |
| 410 | GONE | En pensionerad äldre endpoint vars sunset-datum har passerat. Svarskroppen anger efterträdaren. |
| 413 | PAYLOAD_TOO_LARGE | Kroppen överskrider storleksgränsen: 50 KB, eller 500 KB för batch. Vissa endpoints rapporterar detta som 400. |
| 429 | RATE_LIMIT_EXCEEDED | Hinken för anropsgränsen är full. Vänta i Retry-After sekunder. |
| 500 | INTERNAL_ERROR | Ett fel hos oss. Skicka oss meta.request_id. |
| 503 | SERVICE_UNAVAILABLE | Ett databassteg svarade inte i tid. Läs Anropsgränser innan du gör om ett skapande anrop. |
Förgrena på error.code, inte på meddelandet. Meddelanden är skrivna för människor och kan ändras; koder är en del av avtalet.
Anropsgränser
Gränserna gäller per arbetsyta och räknas i fönster på en minut. Varje resurs har sin egen hink.
- Alla resurser: 100 anrop per minut. Batchimport förbrukar kontakternas hink.
- Kontakter: dessutom 10 000 anrop per dygn.
- Aktiviteter: dessutom 50 000 anrop per dygn.
- Ett batchanrop räknas en gång mot dygnstaket, oavsett hur många kontakter det bär.
Lyckade svar bär
X-RateLimit-LimitTillåtna anrop per minut i den här hinken.X-RateLimit-RemainingAnrop kvar den här minuten.X-RateLimit-ResetNär minuten nollställs, i Unix-sekunder.X-DailyLimit-RemainingAnrop kvar i dag. Endast kontakter och aktiviteter.X-DailyLimit-ResetNär dygnet nollställs, i Unix-sekunder. Endast kontakter och aktiviteter.Retry-AfterVid en 429, väntetiden i sekunder.
En 503 SERVICE_UNAVAILABLE betyder att ett databassteg inte svarade i tid. Läsningar går säkert att göra om. Ett skapande anrop kan redan ha skrivits, så gör om en import med samma X-Idempotency-Key, och läs först innan du gör om något annat skapande anrop.
Idempotens
Skicka X-Idempotency-Key så att ett omförsök efter en timeout inte kan skapa en dubblett. Samma nyckel inom 24 timmar ger tillbaka det ursprungliga resultatet i stället för att skriva igen.
Gäller bara POST /v1-public-contacts och POST /v1-public-activities. Alla andra endpoints ignorerar huvudet, så gör de omförsöken säkra genom att läsa först.
X-Idempotency-Key: 7d3f9c1e-2b84-4a17-9f0d-6c5e8a2b1d34Använd 8 till 128 tecken, unikt per operation. En UUID fungerar. En nyckel utanför den längden ignoreras, den avvisas inte.
Nycklar gäller per arbetsyta och resurs och varar i 24 timmar. En upprepning svarar 200 med det första svaret. Idempotency-Key fungerar som alias.
Matchning och kopplingar
- Kontakter matchas på e-post, sedan telefon.
- Företag matchas på domän (hämtas från en jobbadress när ingen skickas), sedan webbplats, sedan namn.
- En aktivitet utan deal_id kopplas till företagets senaste öppna affär.
- En koppling mappar dina egna fältnamn till de här fälten för importendpointarna. Kapslad JSON använder punktnotation, till exempel user.profile.email.
Versionshantering
Versionen ligger i sökvägen och upprepas i varje svar som meta.api_version och huvudet X-API-Version.
Nya fält kan dyka upp i ett svar när som helst och räknas inte som en brytande ändring. Tolka defensivt och ignorera fält du inte känner igen, i stället för att validera mot en exakt form.
En brytande ändring innebär ett nytt sökvägsprefix. Det befintliga fortsätter fungera genom processen nedan.
Programversionen som visas på andra ställen i produkten är ett releasedatum, inte en API-version. De två rör sig oberoende av varandra.
Policy för utfasning
När en endpoint ska fasas ut säger den det i sina egna svar innan den slutar fungera.
En endpoint under utfasning returnerar
DeprecationtrueSunsetdatumet då den slutar svara, som ett HTTP-datum.Linkersättaren, med rel som pekar på efterföljande version.
Sunset-datumet ligger minst sex månader efter att utfasningen aviserats. När det passerats returnerar endpointen 410 Gone och namnger sin ersättare.
Under utfasning nu
POST /public-contactsPOST /v1-public-contactsSunset 26 november 2026POST /public-activitiesPOST /v1-public-activitiesSunset 31 mars 2027
Logga dessa huvuden. De är den tidigaste varning du får, och de kommer på svar som i övrigt lyckas.
OpenAPI-beskrivning
Hela avtalet publiceras som ett OpenAPI 3.1-dokument. Importera det i Postman eller Insomnia, generera en klient, eller jämför det mellan releaser för att se exakt vad som ändrats.
https://lumenbase.io/api/openapi.jsoncurl -s https://lumenbase.io/api/openapi.json -o lumenbase-openapi.jsonBästa praxis
- 1Ge varje integration en egen nyckel, så kan du återkalla en utan att bryta resten.
- 2Skicka en e-postadress med varje kontakt. Det är den mest tillförlitliga matchningen.
- 3Skicka X-Idempotency-Key när du gör om en import.
- 4Läs in kontakter i bulk via batch-endpointen.
- 5Skicka webbformulär till POST /v1-public-inbound-submissions med en nyckel som bara har inbound:submit. En läckt nyckel kan då bara skicka formulärsvar.
- 6Håll koll på X-RateLimit-Remaining, och vänta Retry-After vid en 429.
- 7Logga meta.request_id från varje svar. Supporten hittar ditt anrop med det.
Kända begränsningar
Beteende som inte stämmer med vad resten av den här sidan får dig att förvänta dig. Det står här eftersom det är sämre att upptäcka det i drift.
- Två anrop med samma X-Idempotency-Key som skickas i samma ögonblick kan båda skriva.
- activity_id i svaret från en kontaktimport kan inte hämtas via endpointarna för aktiviteter.
- En importerad aktivitet behåller sin typ bara i importloggen. På tidslinjen är typen note.
- Anrop som avvisas av minutgränsen räknas ändå mot dygnstaket.
- Inbound-formulärsvar delar X-Idempotency-Key med kontakterna. En nyckel som redan använts på POST /v1-public-contacts ger samma svar igen. Skicka external_id i stället, det sparas per formulär.
Inte en utvecklare?
Använd Zapier för att koppla Lumenbase till 6 000+ appar, eller bläddra i Hjälpcentret.
HjälpcenterBehöver du en API-nyckel? Logga in och öppnaInställningarFöretagsinställningarAPI
Kom igång