Flytteflow Din flytteassistent
v1 · https://api.flytteflow.dk

Quick start

Authentication

Brug organisationens integrationsnøgle i headeren:

Authorization: Bearer <API_KEY>

Kom i gang

  1. Opret en integrationsnøgle under Organisation i appen.
  2. Gem nøglen sikkert (den vises kun én gang).
  3. Opret projekt via POST /v1/projects med et stabilt externalId.
  4. Hvis du vil, kan du importere projekt + lejemål i samme request via feltet properties.
  5. Alternativt kan du oprette lejemål separat via POST /v1/properties.
  6. Opret planlagt syn via POST /v1/inspections/planned med callbackUrl.

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.

FeltTypePåkrævetBeskrivelse
externalIdstringJaIntegrators unikke id for projektet
namestringJaProjektnavn
postalCodestringJaPostnummer
citystringJaBy
referencestringNejValgfri reference
propertiesarray<object>NejImportér lejemål i samme request (se struktur nedenfor)

properties[] struktur (ved samlet import)

FeltTypePåkrævetBeskrivelse
externalIdstringJaUnikt id for lejemålet
namestringJaNavn på lejemål
streetstringNejAdressevej
postalCodestringNejPostnummer
citystringNejBy
latitudenumberNejBreddegrad
longitudenumberNejLæ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

FeltTypeBeskrivelse
projectIdstringID på oprettet/fundet projekt
propertiesarrayKun ved samlet import; liste af importerede lejemål

PUT /v1/projects/:projectId

Opdater eksisterende projekt med delvist payload.

FeltTypePåkrævetBeskrivelse
projectId (path)stringJaProjektets id i Flytteflow
namestringNejNyt projektnavn
postalCodestringNejNyt postnummer
citystringNejNy by
referencestringNejNy 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

FeltTypeBeskrivelse
projectIdstringID på opdateret projekt

Lejemål

Opret og opdater lejemål på eksisterende projekter.

POST /v1/properties

Opret lejemål via externalId.

FeltTypePåkrævetBeskrivelse
externalIdstringJaIntegrators unikke id for lejemålet
projectIdstringNej*Projekt-id i Flytteflow
projectExternalIdstringNej*Alternativ til projectId
namestringJaNavn på lejemål
streetstringNejAdressevej
postalCodestringNejPostnummer
citystringNejBy
latitudenumberNejBreddegrad
longitudenumberNejLæ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

FeltTypeBeskrivelse
propertyIdstringID på oprettet/fundet lejemål

PUT /v1/properties/:propertyId

FeltTypePåkrævetBeskrivelse
propertyId (path)stringJaLejemålets id i Flytteflow
namestringNejNyt navn
streetstringNejNy adressevej
postalCodestringNejNyt postnummer
citystringNejNy by
latitudenumberNejNy breddegrad
longitudenumberNejNy 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

FeltTypeBeskrivelse
propertyIdstringID 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

FeltTypeBeskrivelse
usersarrayListe af organisationsbrugere
users[].userIdstringBrugerens ID
users[].rolestringowner | admin | caretaker
users[].namestringBrugerens navn (kan være tom)
users[].emailstringBrugerens 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.

FeltTypePåkrævetBeskrivelse
inspectionId (path)stringJaSynets id i Flytteflow
Vis eksempel request
curl -X GET "https://api.flytteflow.dk/v1/inspections/inspection_abc123" \
  -H "Authorization: Bearer <API_KEY>"

Svarschema

FeltTypeBeskrivelse
inspectionIdstringSynets ID
externalIdstringIntegrators eksterne id
propertyIdstringLejemålets ID
scheduledDatenumberPlanlagt tidspunkt i Unix ms
isMoveOutbooleanOm synet er fraflytning
isPlannedbooleanOm synet er planlagt
notesstringNoter
callbackUrlstringGemte callback URL
createdAtnumberOprettet tidspunkt i Unix ms
updatedAtnumberSidst opdateret i Unix ms

POST /v1/inspections/planned

Opret planlagt syn med callback URL.

FeltTypePåkrævetBeskrivelse
externalIdstringJaIntegrators unikke id for synet
propertyIdstringNej*Lejemåls-id i Flytteflow
propertyExternalIdstringNej*Alternativ til propertyId
assigneeUserIdstringJaBruger-id fra GET /v1/organisation/users
scheduledDatenumberJaUnix ms tidspunkt
isMoveOutbooleanJatrue for fraflytningssyn
callbackUrlstringJaURL der kaldes ved completion
tenantobjectJaLejerdata der oprettes sammen med synet
notesstringNejValgfrie noter

*Der skal gives enten propertyId eller propertyExternalId.

tenant struktur

FeltTypePåkrævetBeskrivelse
firstnamestringJaLejerens fornavn
lastnamestringJaLejerens efternavn
emailstringJaLejerens e-mail
phonestringJaLejerens 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

FeltTypeBeskrivelse
inspectionIdstringID på oprettet/fundet syn

Callback ved completion

Når et planlagt syn bliver completed, kaldes den gemte callbackUrl med payload:

FeltTypeBeskrivelse
inspectionIdstringSynets id i Flytteflow
{
  "inspectionId": "..."
}

DELETE /v1/inspections/planned/:inspectionId

Sletter kun planlagte syn. Completed syn returnerer 409.

FeltTypePåkrævetBeskrivelse
inspectionId (path)stringJaSynets id i Flytteflow
Vis eksempel request
curl -X DELETE "https://api.flytteflow.dk/v1/inspections/planned/inspection_abc123" \
  -H "Authorization: Bearer <API_KEY>"

Svarschema

FeltTypeBeskrivelse
okbooleantrue når synet er slettet