Quick start
Authentication
Brug organisationens integrationsnøgle i headeren:
Authorization: Bearer <API_KEY>
Kom i gang
- Opret en integrationsnøgle under Organisation i appen.
- Gem nøglen sikkert (den vises kun én gang).
- Opret projekt via
POST /v1/projectsmed et stabiltexternalId. - Hvis du vil, kan du importere projekt + lejemål i samme request via feltet
properties. - Alternativt kan du oprette lejemål separat via
POST /v1/properties. - Opret planlagt syn via
POST /v1/inspections/plannedmedcallbackUrl.
Eksempel: Opret projekt
curl -X POST "https://api.flytteflow.dk/v1/projects" \
-H "Authorization: Bearer <API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"externalId": "proj-123",
"name": "Solsikkevej 12",
"postalCode": "8000",
"city": "Aarhus",
"reference": "SAG-42"
}'
Projekter
Opret og opdater projekter for organisationen bag API-nøglen.
POST /v1/projects
Opret projekt via externalId.
| Felt | Type | Påkrævet | Beskrivelse |
|---|---|---|---|
externalId | string | Ja | Integrators unikke id for projektet |
name | string | Ja | Projektnavn |
postalCode | string | Ja | Postnummer |
city | string | Ja | By |
reference | string | Nej | Valgfri reference |
properties | array<object> | Nej | Importér lejemål i samme request (se struktur nedenfor) |
properties[] struktur (ved samlet import)
| Felt | Type | Påkrævet | Beskrivelse |
|---|---|---|---|
externalId | string | Ja | Unikt id for lejemålet |
name | string | Ja | Navn på lejemål |
street | string | Nej | Adressevej |
postalCode | string | Nej | Postnummer |
city | string | Nej | By |
latitude | number | Nej | Breddegrad |
longitude | number | Nej | Længdegrad |
Vis eksempel: samlet import af projekt + lejemål
curl -X POST "https://api.flytteflow.dk/v1/projects" \
-H "Authorization: Bearer <API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"externalId": "proj-123",
"name": "Solsikkevej 12",
"postalCode": "8000",
"city": "Aarhus",
"reference": "SAG-42",
"properties": [
{
"externalId": "prop-123-01",
"name": "Lejemål 1",
"street": "Solsikkevej 12, st.",
"postalCode": "8000",
"city": "Aarhus"
},
{
"externalId": "prop-123-02",
"name": "Lejemål 2",
"street": "Solsikkevej 12, 1. sal",
"postalCode": "8000",
"city": "Aarhus"
}
]
}'
Svarschema
| Felt | Type | Beskrivelse |
|---|---|---|
projectId | string | ID på oprettet/fundet projekt |
properties | array | Kun ved samlet import; liste af importerede lejemål |
PUT /v1/projects/:projectId
Opdater eksisterende projekt med delvist payload.
| Felt | Type | Påkrævet | Beskrivelse |
|---|---|---|---|
projectId (path) | string | Ja | Projektets id i Flytteflow |
name | string | Nej | Nyt projektnavn |
postalCode | string | Nej | Nyt postnummer |
city | string | Nej | Ny by |
reference | string | Nej | Ny reference |
Vis eksempel request
curl -X PUT "https://api.flytteflow.dk/v1/projects/project_abc123" \
-H "Authorization: Bearer <API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"name": "Solsikkevej 12 - opdateret",
"postalCode": "8210",
"city": "Aarhus V",
"reference": "SAG-42A"
}'
Svarschema
| Felt | Type | Beskrivelse |
|---|---|---|
projectId | string | ID på opdateret projekt |
Lejemål
Opret og opdater lejemål på eksisterende projekter.
POST /v1/properties
Opret lejemål via externalId.
| Felt | Type | Påkrævet | Beskrivelse |
|---|---|---|---|
externalId | string | Ja | Integrators unikke id for lejemålet |
projectId | string | Nej* | Projekt-id i Flytteflow |
projectExternalId | string | Nej* | Alternativ til projectId |
name | string | Ja | Navn på lejemål |
street | string | Nej | Adressevej |
postalCode | string | Nej | Postnummer |
city | string | Nej | By |
latitude | number | Nej | Breddegrad |
longitude | number | Nej | Længdegrad |
*Der skal gives enten projectId eller projectExternalId.
Vis eksempel request
curl -X POST "https://api.flytteflow.dk/v1/properties" \
-H "Authorization: Bearer <API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"externalId": "prop-123-01",
"projectExternalId": "proj-123",
"name": "Lejemål 1",
"street": "Solsikkevej 12, st.",
"postalCode": "8000",
"city": "Aarhus"
}'
Svarschema
| Felt | Type | Beskrivelse |
|---|---|---|
propertyId | string | ID på oprettet/fundet lejemål |
PUT /v1/properties/:propertyId
| Felt | Type | Påkrævet | Beskrivelse |
|---|---|---|---|
propertyId (path) | string | Ja | Lejemålets id i Flytteflow |
name | string | Nej | Nyt navn |
street | string | Nej | Ny adressevej |
postalCode | string | Nej | Nyt postnummer |
city | string | Nej | Ny by |
latitude | number | Nej | Ny breddegrad |
longitude | number | Nej | Ny længdegrad |
Vis eksempel request
curl -X PUT "https://api.flytteflow.dk/v1/properties/property_abc123" \
-H "Authorization: Bearer <API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"name": "Lejemål 1 - opdateret",
"city": "Aarhus C"
}'
Svarschema
| Felt | Type | Beskrivelse |
|---|---|---|
propertyId | string | ID på opdateret lejemål |
Organisation
Hent medlemmer i organisationen, inkl. roller, til brug ved assignee på syn.
GET /v1/organisation/users
Returnerer alle brugere i organisationen med deres rolle.
Vis eksempel request
curl -X GET "https://api.flytteflow.dk/v1/organisation/users" \ -H "Authorization: Bearer <API_KEY>"
Svarschema
| Felt | Type | Beskrivelse |
|---|---|---|
users | array | Liste af organisationsbrugere |
users[].userId | string | Brugerens ID |
users[].role | string | owner | admin | caretaker |
users[].name | string | Brugerens navn (kan være tom) |
users[].email | string | Brugerens e-mail (kan være tom) |
Syn
Hent, opret og slet planlagte syn, inkl. callback URL for completion.
GET /v1/inspections/:inspectionId
Hent et syn via id.
| Felt | Type | Påkrævet | Beskrivelse |
|---|---|---|---|
inspectionId (path) | string | Ja | Synets id i Flytteflow |
Vis eksempel request
curl -X GET "https://api.flytteflow.dk/v1/inspections/inspection_abc123" \ -H "Authorization: Bearer <API_KEY>"
Svarschema
| Felt | Type | Beskrivelse |
|---|---|---|
inspectionId | string | Synets ID |
externalId | string | Integrators eksterne id |
propertyId | string | Lejemålets ID |
scheduledDate | number | Planlagt tidspunkt i Unix ms |
isMoveOut | boolean | Om synet er fraflytning |
isPlanned | boolean | Om synet er planlagt |
notes | string | Noter |
callbackUrl | string | Gemte callback URL |
createdAt | number | Oprettet tidspunkt i Unix ms |
updatedAt | number | Sidst opdateret i Unix ms |
POST /v1/inspections/planned
Opret planlagt syn med callback URL.
| Felt | Type | Påkrævet | Beskrivelse |
|---|---|---|---|
externalId | string | Ja | Integrators unikke id for synet |
propertyId | string | Nej* | Lejemåls-id i Flytteflow |
propertyExternalId | string | Nej* | Alternativ til propertyId |
assigneeUserId | string | Ja | Bruger-id fra GET /v1/organisation/users |
scheduledDate | number | Ja | Unix ms tidspunkt |
isMoveOut | boolean | Ja | true for fraflytningssyn |
callbackUrl | string | Ja | URL der kaldes ved completion |
tenant | object | Ja | Lejerdata der oprettes sammen med synet |
notes | string | Nej | Valgfrie noter |
*Der skal gives enten propertyId eller propertyExternalId.
tenant struktur
| Felt | Type | Påkrævet | Beskrivelse |
|---|---|---|---|
firstname | string | Ja | Lejerens fornavn |
lastname | string | Ja | Lejerens efternavn |
email | string | Ja | Lejerens e-mail |
phone | string | Ja | Lejerens telefon |
Vis eksempel request
curl -X POST "https://api.flytteflow.dk/v1/inspections/planned" \
-H "Authorization: Bearer <API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"externalId": "insp-1001",
"propertyExternalId": "prop-123-01",
"assigneeUserId": "user_2",
"scheduledDate": 1735770000000,
"isMoveOut": true,
"callbackUrl": "https://integrator.example.com/callbacks/inspection",
"tenant": {
"firstname": "Maja",
"lastname": "Nielsen",
"email": "maja@example.com",
"phone": "+4511223344"
},
"notes": "Nøgler afleveres hos vicevært"
}'
Svarschema
| Felt | Type | Beskrivelse |
|---|---|---|
inspectionId | string | ID på oprettet/fundet syn |
Callback ved completion
Når et planlagt syn bliver completed, kaldes den gemte callbackUrl med payload:
| Felt | Type | Beskrivelse |
|---|---|---|
inspectionId | string | Synets id i Flytteflow |
{
"inspectionId": "..."
}
DELETE /v1/inspections/planned/:inspectionId
Sletter kun planlagte syn. Completed syn returnerer 409.
| Felt | Type | Påkrævet | Beskrivelse |
|---|---|---|---|
inspectionId (path) | string | Ja | Synets id i Flytteflow |
Vis eksempel request
curl -X DELETE "https://api.flytteflow.dk/v1/inspections/planned/inspection_abc123" \ -H "Authorization: Bearer <API_KEY>"
Svarschema
| Felt | Type | Beskrivelse |
|---|---|---|
ok | boolean | true når synet er slettet |