Udviklere

Byg på Floral: REST-API, OpenAPI-spec og en MCP-server.

Alt, hvad et workspace ved, kan nås af maskiner såvel som mennesker. Det offentlige REST-API dækker virksomheder, personer, briefinger og mødereferater og er beskrevet i et OpenAPI 3.1-dokument. MCP-serveren stiller 58 værktøjer til rådighed for Claude, ChatGPT, Codex og enhver anden MCP-klient. Begge kører med rettighederne hos den person, der har forbundet dem, aldrig mere, og data bliver i EU.

Kom godt i gang

I behøver ikke tale med salg for at lave det første kald. Floral har en gratis prøveperiode på 30 dage, og tokenet opretter I selv i appen. Der er ikke et separat sandkassemiljø: brug et prøve-workspace med testdata som testmiljø.

  1. Start en gratis prøveperiode (eller log ind i et eksisterende workspace på app.floral.so).
  2. Åbn Indstillinger › Assistenter › MCP i workspacet, opret et personligt adgangstoken, vælg de smalleste scopes og en udløbsdato, og kopiér tokenet: det vises kun én gang.
  3. Kald GET /api/v1/workspaces/{workspaceSlug}/companies med tokenet som Bearer-header. Quickstart fortsætter med en relationssøgning.
  4. Til en AI-klient tilføjer I https://app.floral.so/mcp som remote MCP-server og logger ind med OAuth, eller indsætter samme token.

Det offentlige API

Et versioneret REST-API over JSON. Hvert kald er bundet til ét workspace via dets slug. Lister bruger cursor-paginering, poster har ETags, og hver operation i spec'en har et unikt operationId, typede parametre, svarskemaer og de scopes, den kræver. Derfor kan en klient eller en LLM-værktøjsdefinition genereres direkte fra dokumentet. Spec'en på floral.so/openapi.json er den, produktet udgiver, cachet hver time.

Base URL
https://app.floral.so/api/v1
OpenAPI
https://floral.so/openapi.json (OpenAPI 3.1.0, 22 operations)
Docs
https://docs.floral.so
API catalog
/.well-known/api-catalog (RFC 9727)

Autentificering og scopes

Autentificér med et personligt adgangstoken oprettet i jeres Floral-workspace, sendt som Bearer-token. Et token er bundet til ét workspace og har et eller flere navngivne scopes. Bed kun om det, I har brug for: spec'en deklarerer scopes under x-scopes på sikkerhedsskemaet og angiver x-required-scopes på hver operation.

curl https://app.floral.so/api/v1/workspaces/{workspaceSlug}/companies \
  -H "Authorization: Bearer $FLORAL_TOKEN" \
  -H "Accept: application/json"

Scopes

  • contacts:readRead companies, people, relationships and custom-field definitions in the workspace.
  • contacts:writeCreate, update, archive and restore companies and people.
  • meetings:readRead meetings, approved summaries and briefings.
  • meetings:writeCreate meetings and submit meeting content for summarisation.

Konventioner

JSON-fejl
Alle fejl er JSON: { "error": { "code", "message", "requestId" } }. Koder er stabile strenge som INVALID_INPUT, NOT_FOUND eller RATE_LIMITED. Nævn requestId, når I skriver til os.
Samtidighed
Opdateringer er betingede. Send postens ETag i If-Match; en forældet værdi giver 412, en manglende 428.
Paginering
Liste-endpoints returnerer en side og en cursor. Send cursoren tilbage for næste side; ingen offsets.
Asynkront arbejde
Oprettelse af en briefing returnerer 202 med briefingens id. Poll den, indtil status er klar.
Markdown til agenter
Alle sider på floral.so leveres også som Markdown, når I sender Accept: text/markdown, og llms.txt er den korte guide til sitet.

Rate limits

Grænserne er pr. token og pr. minut, opdelt efter operationstype. Hvert svar bærer den aktuelle grænse og hvad der er tilbage; en 429 fortæller, hvornår I kan prøve igen.

READ120 kald / minut
WRITE / CREATE / ACTION60 kald / minut
GENERATION10 kald / minut

X-RateLimit-Limit · X-RateLimit-Remaining · Retry-After (429)

MCP-server

Model Context Protocol-serveren taler Streamable HTTP og autentificerer med OAuth 2.0 (autorisationsserver og understøttede scopes er udgivet som RFC 9728 protected-resource-metadata). Forbindelser via OAuth er skrivebeskyttede, og alt kører med den forbundne brugers medlemskab, rolle og funktionsadgang. Opsætningsguides pr. klient findes i oversigten over API og MCP og i dokumentationen.

Endpoint
https://app.floral.so/mcp
RFC 9728
https://app.floral.so/.well-known/oauth-protected-resource/mcp
RFC 8414
https://clerk.app.floral.so/.well-known/oauth-authorization-server
server.json
https://floral.so/server.json

Versionering og udfasning

Hovedversionen i stien (/api/v1) er kompatibilitetsgrænsen. Hold basisstien konfigurerbar, læs kun de felter, I har brug for, og regn med ukendte felter og enum-værdier.

  • Inden for en hovedversion kan Floral tilføje operationer, valgfrie request-felter og filtre, svarfelter og enum-værdier, hvor feltdokumentationen tillader det.
  • En brydende ændring udgives som en ny hovedsti med mindst 180 dages overlap. Inden overlappet starter, offentliggør vi erstatningen, migreringstrin, ikrafttrædelsesdato og en supportkanal.
  • Udfasede operationer markeres i API-referencen med deres erstatning. Et bekræftet sikkerheds- eller privatlivsproblem kan forkorte vinduet.
  • Hele politikken står i dokumentationen: Versioning and deprecation.

Operationer

Fra det aktuelle OpenAPI-dokument. Spec’en er kilden; denne liste er et kort.

OperationMethodPath
searchRelationshipsV1GET/workspaces/{workspaceSlug}/relationships/search
searchCompanyRegistryV1GET/workspaces/{workspaceSlug}/company-registry/search
listCompaniesV1GET/workspaces/{workspaceSlug}/companies
createCompanyV1POST/workspaces/{workspaceSlug}/companies
getCompanyV1GET/workspaces/{workspaceSlug}/companies/{id}
updateCompanyV1PATCH/workspaces/{workspaceSlug}/companies/{id}
archiveCompanyV1POST/workspaces/{workspaceSlug}/companies/{id}/archive
restoreCompanyV1POST/workspaces/{workspaceSlug}/companies/{id}/restore
listCustomFieldDefinitionsV1GET/workspaces/{workspaceSlug}/custom-field-definitions
listPeopleV1GET/workspaces/{workspaceSlug}/people
createPersonV1POST/workspaces/{workspaceSlug}/people
getPersonV1GET/workspaces/{workspaceSlug}/people/{id}
updatePersonV1PATCH/workspaces/{workspaceSlug}/people/{id}
archivePersonV1POST/workspaces/{workspaceSlug}/people/{id}/archive
restorePersonV1POST/workspaces/{workspaceSlug}/people/{id}/restore
listBriefingsV1GET/workspaces/{workspaceSlug}/briefings
createBriefingV1POST/workspaces/{workspaceSlug}/briefings
getBriefingV1GET/workspaces/{workspaceSlug}/briefings/{id}
listSummariesV1GET/workspaces/{workspaceSlug}/summaries
getSummaryV1GET/workspaces/{workspaceSlug}/summaries/{id}
updateSummaryV1PATCH/workspaces/{workspaceSlug}/summaries/{id}
approveSummaryV1POST/workspaces/{workspaceSlug}/summaries/{id}/approve

Bygger I noget på Floral?

Fortæl os, hvad I integrerer. Vi kan sætte et workspace op med demodata, og vi læser hver besked.