Leiguvefur igloo notar kökur.

Sjá nánar um kökustefnu.
> Igloo API · v1

API reference

Everything you need to read your organization's Igloo data from your own systems: authentication, pagination, errors and every endpoint, with examples.

Base URL
https://myigloo.is/api/pro/v1
Authentication
OAuth 2.0 · client credentials
Format
JSON · OpenAPI 3

Read your organization's Igloo data from your own systems: rental contracts, applications, inspection reports, rental guarantees and compliance records, over a REST API secured with OAuth 2.0.

The organization is implied by the access token and never appears in a path. Every endpoint is read-only and returns JSON.

Get an access token
export IGLOO_ACCESS_TOKEN=$(curl -fsS -X POST 'https://myigloo.is/api/pro/v1/oauth/token/' \
  -u "$IGLOO_CLIENT_ID:$IGLOO_CLIENT_SECRET" \
  -d grant_type=client_credentials | jq -r .access_token)

Quickstart

# 1. Exchange your credentials for an access token.
curl -X POST https://myigloo.is/api/pro/v1/oauth/token/ \
  -u "$IGLOO_CLIENT_ID:$IGLOO_CLIENT_SECRET" \
  -d grant_type=client_credentials

# 2. Call an endpoint with the token.
curl https://myigloo.is/api/pro/v1/rental-contracts/ \
  -H "Authorization: Bearer $IGLOO_ACCESS_TOKEN"

Credentials are created by your organization in Settings → API in Igloo, once API access is enabled for it. The secret is shown once; store it in a secret manager, never in client-side code.

Authentication

The API uses the OAuth 2.0 client credentials grant. Send a form-encoded POST to /api/pro/v1/oauth/token/ with grant_type=client_credentials, passing your client_id and client_secret either as HTTP Basic credentials or as form fields.

{
  "access_token": "...",
  "token_type": "Bearer",
  "expires_in": 3600,
  "scope": "VIEW_ORGANIZATION VIEW_RENTAL_CONTRACTS"
}

Send the token as Authorization: Bearer <access_token>. Tokens expire after expires_in seconds; on a 401, request a new one. That is the normal flow, not an error condition, unless the 401 carries one of the codes listed under Errors, which a new token cannot fix.

The token endpoint follows RFC 6749 rather than the conventions below: it takes application/x-www-form-urlencoded, not JSON, and its errors look like {"error": "invalid_client"}.

Scopes and products

A scope is a permission name, such as VIEW_RENTAL_CONTRACTS. Ask for scopes with the scope form field, space-separated, or leave it out to get everything your credential was granted. VIEW_ORGANIZATION is always included.

Every endpoint checks two things:

  1. The scope on your token: what your application may read. A token can never exceed the grant your organization gave the credential.
  2. The product on your organization's plan: whether the organization has the product the data belongs to. A 403 with code: missing_required_feature means this one; contact us rather than changing your token.

Privileges are re-read on every request. Removing one takes effect on the next call; adding one needs a new token, because an issued token's scope never changes.

Pagination

Lists come in two styles, and each endpoint says which it uses.

Cursor-paginated: rental contracts, rental applications, inspection reports and rental guarantees. The response is {"next", "previous", "results"}. Follow next until it is null; never build a cursor yourself. Cursors stay stable while new rows are written. There is no count. page_size is capped at 200.

Page-numbered: customers, AML profiles, KYC processes, surety guarantees and surety issue requests. Pass page and per_page (at most 200); the response is {"count", "next", "previous", "results"}.

next and previous are complete URLs on this API.

Filtering

Every filter is validated. An unknown value is a 400, never a silently unfiltered or empty result. Enumerated filters such as status publish their allowed values on each endpoint, and the vocabularies are per-collection: read the values on the endpoint you are calling. created_after and created_before take ISO 8601 timestamps on the cursor-paginated collections.

Errors

Errors share one envelope:

{
  "code": "missing_required_feature",
  "detail": "A human-readable explanation.",
  "params": {}
}

Branch on code, which is stable; detail is for people and may change.

StatusMeaning
400A filter or parameter is invalid. params names the field.
401The token is missing, expired or revoked. Request a new one, unless code is listed below.
403The token lacks the scope, or the organization lacks the product.
404Nothing with that id exists for your organization.
429Rate limited. Wait for Retry-After seconds.

A 404 with code: organization_cloud_missing on the customer, compliance or surety collections means your organization has no accounting cloud connected, so the collection does not exist for it.

A 401 with one of these codes means the credential itself can no longer be used, so a new token will not help. Stop retrying and fix the cause:

codeMeaningWhat to do
api_access_not_entitledYour organization's plan no longer includes API access.Contact us to restore it.
application_inactiveThe credential was deactivated.Create a new one under your organization's API credentials.
organization_deleted, organization_missingThe organization the credential belongs to no longer exists.Contact us.
application_kind_mismatchThe credential is for an MCP server, not this API.Use an API credential.

The token endpoint refuses these credentials too: 403 with "error": "unauthorized_client", or 401 with "error": "invalid_client" for an MCP credential.

Rate limits

Each call counts against two limits: one for the credential and one shared by all of your organization's credentials. Both follow your plan, and we can raise them for an integration that needs more. Calls rejected for authentication or permissions do not count.

Past either limit the API answers 429 with a Retry-After header in seconds. Wait at least that long, and back off further if the next attempt is limited too.

Data protection

Personal data is left out unless the resource is the personal data. Contract and guarantee parties, applicant circumstances, national ids, credit scores and signing links are not published. Two resources are the exception, because the identity is the finding: AML watchlist matches and KYC questionnaire answers. Treat both as compliance data under your data processing agreement.

Surety issue requests are the third exception. A surety registers the parties to a guarantee it issues under their national ids, so the list carries the main applicant's, and the detail carries every principal's with the underwriting figures they were assessed on. The landlords are included only when your token also holds VIEW_GUARANTEE. Contact details and signing links are never included.

Versioning

This is version 1, in early access. We keep changes within v1 additive: new endpoints, new fields and new filter values. Build your integration to ignore fields it does not recognise.

Support

Write to support@myigloo.is with your organization name and, for a failed call, its method, path and time.

Leasing

Rental contracts

Lease agreements on your organization's properties: status, term, rent and indexation, security amount, size and the property's address. The parties are not included.

List rental contracts

GET/api/pro/v1/rental-contracts/

Rental contracts belonging to the organization the access token was issued for. Cursor-paginated, newest first.

Requires scope VIEW_RENTAL_CONTRACTS

Parameters

  • created_afterstring · date-timequery
  • created_beforestring · date-timequery
  • cursorstringquery

    The pagination cursor value.

  • page_sizeintegerquery

    Number of results to return per page.

  • property_idstring · uuidquery
  • statusstringquery

    Allowed valuesDRAFTPENDINGSIGNEDTERMINATED

Response fields

  • nextstring · urinullable
  • previousstring · urinullable
  • resultsarray of object
    19 nested fields
    • idinteger
    • titlestringnullable
    • statusstring
      • TERMINATEDContract is terminated
      • SIGNEDContract is signed
      • PENDINGSigning is pending
      • DRAFTContract is in draft
    • active_statusstringnullable
      • UPCOMINGContract has not started
      • PENDING_SIGNATUREContract's start date has passed but is still pending signature
      • ACTIVEContract is active
      • EXPIREDContract has expired
    • start_datestring · datenullable
    • end_datestring · datenullable
    • is_definitebooleannullable
    • contract_datestring · datenullable
    • pricestring · decimalnullable
    • currencystring
    • is_price_indexedboolean
    • insurance_amountstring · decimalnullable
    • insurance_monthsintegernullable
    • sizestring · decimalnullable
    • roomsintegernullable
    • fully_signedstring · date-timenullable
    • addressobjectnullable
      5 nested fields
      • street_namestring
      • street_numberstring
      • postal_codestring
      • citystring
      • countrystring
    • created_atstring · date-time
    • updated_atstring · date-time
GET /api/pro/v1/rental-contracts/
curl 'https://myigloo.is/api/pro/v1/rental-contracts/' \
  -H "Authorization: Bearer $IGLOO_ACCESS_TOKEN"
Example response · 200
{
  "next": "https://myigloo.is/api/pro/v1/rental-contracts/?cursor=cD0yMDI2",
  "previous": null,
  "results": [
    {
      "id": 1,
      "title": "string",
      "status": "TERMINATED",
      "active_status": "UPCOMING",
      "start_date": "2026-03-01",
      "end_date": "2026-03-01",
      "is_definite": true,
      "contract_date": "2026-03-01",
      "price": "250000.00",
      "currency": "ISK",
      "is_price_indexed": true,
      "insurance_amount": "250000.00",
      "insurance_months": 1,
      "size": "250000.00",
      "rooms": 1,
      "fully_signed": "2026-03-01T09:30:00Z",
      "address": {
        "street_name": "string",
        "street_number": "string",
        "postal_code": "string",
        "city": "string",
        "country": "string"
      },
      "created_at": "2026-03-01T09:30:00Z",
      "updated_at": "2026-03-01T09:30:00Z"
    }
  ]
}

Retrieve one rental contract

GET/api/pro/v1/rental-contracts/{id}/

One rental contract, by the id the list returns. The parties to the contract are not included.

Requires scope VIEW_RENTAL_CONTRACTS

Parameters

  • idintegerpathRequired

Response fields

  • idinteger
  • titlestringnullable
  • statusstring
    • TERMINATEDContract is terminated
    • SIGNEDContract is signed
    • PENDINGSigning is pending
    • DRAFTContract is in draft
  • active_statusstringnullable
    • UPCOMINGContract has not started
    • PENDING_SIGNATUREContract's start date has passed but is still pending signature
    • ACTIVEContract is active
    • EXPIREDContract has expired
  • start_datestring · datenullable
  • end_datestring · datenullable
  • is_definitebooleannullable
  • contract_datestring · datenullable
  • pricestring · decimalnullable
  • currencystring
  • is_price_indexedboolean
  • insurance_amountstring · decimalnullable
  • insurance_monthsintegernullable
  • sizestring · decimalnullable
  • roomsintegernullable
  • fully_signedstring · date-timenullable
  • addressobjectnullable
    5 nested fields
    • street_namestring
    • street_numberstring
    • postal_codestring
    • citystring
    • countrystring
  • created_atstring · date-time
  • updated_atstring · date-time
GET /api/pro/v1/rental-contracts/{id}/
curl 'https://myigloo.is/api/pro/v1/rental-contracts/1/' \
  -H "Authorization: Bearer $IGLOO_ACCESS_TOKEN"
Example response · 200
{
  "id": 1,
  "title": "string",
  "status": "TERMINATED",
  "active_status": "UPCOMING",
  "start_date": "2026-03-01",
  "end_date": "2026-03-01",
  "is_definite": true,
  "contract_date": "2026-03-01",
  "price": "250000.00",
  "currency": "ISK",
  "is_price_indexed": true,
  "insurance_amount": "250000.00",
  "insurance_months": 1,
  "size": "250000.00",
  "rooms": 1,
  "fully_signed": "2026-03-01T09:30:00Z",
  "address": {
    "street_name": "string",
    "street_number": "string",
    "postal_code": "string",
    "city": "string",
    "country": "string"
  },
  "created_at": "2026-03-01T09:30:00Z",
  "updated_at": "2026-03-01T09:30:00Z"
}

Rental applications

Applications to your listings: status, household size, preferred move-in date and when each step happened. The applicant's identity and message are not included.

List rental applications

GET/api/pro/v1/rental-applications/

Applications to the organization's listings. Cursor-paginated, newest first. The applicant's profile, message and identity are deliberately not included — see the field list.

Requires scope VIEW_APPLICATION

Parameters

  • created_afterstring · date-timequery
  • created_beforestring · date-timequery
  • cursorstringquery

    The pagination cursor value.

  • listing_idnumberquery
  • page_sizeintegerquery

    Number of results to return per page.

  • statusstringquery

    Allowed valuesACCEPTEDCANCELLEDCONSIDEREDDENIEDSEENSENT

Response fields

  • nextstring · urinullable
  • previousstring · urinullable
  • resultsarray of object
    16 nested fields
    • idinteger
    • statusstring
      • SENTSent
      • SEENSeen
      • CONSIDEREDConsidered
      • CANCELLEDCancelled
      • DENIEDDenied
      • ACCEPTEDAccepted
    • listing_idinteger
    • preferred_move_in_datestring · datenullable
    • prefer_long_termboolean
    • rental_term_monthsintegernullable
    • adultsinteger

      Total number of adults that will live in the property.

    • childreninteger

      Total number of children that will live in the property.

    • petsinteger

      Total number of pets that will live in the property.

    • is_consideredboolean

      Indicates if the landlord has chosen to give the application a particular consideration.

    • applied_atstring · date-timenullable
    • accepted_atstring · date-timenullable
    • denied_atstring · date-timenullable
    • canceled_atstring · date-timenullable
    • expiresstring · date-timenullable
    • created_atstring · date-time
GET /api/pro/v1/rental-applications/
curl 'https://myigloo.is/api/pro/v1/rental-applications/' \
  -H "Authorization: Bearer $IGLOO_ACCESS_TOKEN"
Example response · 200
{
  "next": "https://myigloo.is/api/pro/v1/rental-applications/?cursor=cD0yMDI2",
  "previous": null,
  "results": [
    {
      "id": 1,
      "status": "SENT",
      "listing_id": 1,
      "preferred_move_in_date": "2026-03-01",
      "prefer_long_term": true,
      "rental_term_months": 1,
      "adults": 1,
      "children": 1,
      "pets": 1,
      "is_considered": true,
      "applied_at": "2026-03-01T09:30:00Z",
      "accepted_at": "2026-03-01T09:30:00Z",
      "denied_at": "2026-03-01T09:30:00Z",
      "canceled_at": "2026-03-01T09:30:00Z",
      "expires": "2026-03-01T09:30:00Z",
      "created_at": "2026-03-01T09:30:00Z"
    }
  ]
}

Retrieve one rental application

GET/api/pro/v1/rental-applications/{id}/

One rental application, by the id the list returns.

Requires scope VIEW_APPLICATION

Parameters

  • idintegerpathRequired

Response fields

  • idinteger
  • statusstring
    • SENTSent
    • SEENSeen
    • CONSIDEREDConsidered
    • CANCELLEDCancelled
    • DENIEDDenied
    • ACCEPTEDAccepted
  • listing_idinteger
  • preferred_move_in_datestring · datenullable
  • prefer_long_termboolean
  • rental_term_monthsintegernullable
  • adultsinteger

    Total number of adults that will live in the property.

  • childreninteger

    Total number of children that will live in the property.

  • petsinteger

    Total number of pets that will live in the property.

  • is_consideredboolean

    Indicates if the landlord has chosen to give the application a particular consideration.

  • applied_atstring · date-timenullable
  • accepted_atstring · date-timenullable
  • denied_atstring · date-timenullable
  • canceled_atstring · date-timenullable
  • expiresstring · date-timenullable
  • created_atstring · date-time
GET /api/pro/v1/rental-applications/{id}/
curl 'https://myigloo.is/api/pro/v1/rental-applications/1/' \
  -H "Authorization: Bearer $IGLOO_ACCESS_TOKEN"
Example response · 200
{
  "id": 1,
  "status": "SENT",
  "listing_id": 1,
  "preferred_move_in_date": "2026-03-01",
  "prefer_long_term": true,
  "rental_term_months": 1,
  "adults": 1,
  "children": 1,
  "pets": 1,
  "is_considered": true,
  "applied_at": "2026-03-01T09:30:00Z",
  "accepted_at": "2026-03-01T09:30:00Z",
  "denied_at": "2026-03-01T09:30:00Z",
  "canceled_at": "2026-03-01T09:30:00Z",
  "expires": "2026-03-01T09:30:00Z",
  "created_at": "2026-03-01T09:30:00Z"
}

Inspection reports

Move-in, move-out and stand-alone inspection reports your organization owns, with their status and the rental contract they belong to.

List inspection reports

GET/api/pro/v1/inspection-reports/

Inspection reports owned by the organization the access token was issued for. Cursor-paginated, newest first. A report you see in Igloo only because your organization is a party to the rental contract is not listed here.

Requires scope VIEW_INSPECTION_REPORT

Parameters

  • created_afterstring · date-timequery
  • created_beforestring · date-timequery
  • cursorstringquery

    The pagination cursor value.

  • page_sizeintegerquery

    Number of results to return per page.

  • rental_contract_idnumberquery
  • report_typestringquery

    Type of inspection report: move-in, move-out, periodic, etc.

    Allowed valuesMVINMVOTSTAT

  • statusstringquery

    Allowed valuesCOMMITTEDCOMPLETEDDRAFT

Response fields

  • nextstring · urinullable
  • previousstring · urinullable
  • resultsarray of object
    8 nested fields
    • idstring · uuid

      Unique identifier for the inspection report

    • statusstring
    • report_typestring

      Type of inspection report: move-in, move-out, periodic, etc.

      • MVINMove-in report
      • MVOTMove-out report
      • STATStand alone report
    • template_tagstring

      Template identifier for document generation

    • conducted_atstring · date-timenullable

      The date and time when the inspection was conducted

    • rental_contract_idintegernullable
    • created_atstring · date-time

      Timestamp when the report was created

    • updated_atstring · date-time

      Timestamp when the report was last updated

GET /api/pro/v1/inspection-reports/
curl 'https://myigloo.is/api/pro/v1/inspection-reports/' \
  -H "Authorization: Bearer $IGLOO_ACCESS_TOKEN"
Example response · 200
{
  "next": "https://myigloo.is/api/pro/v1/inspection-reports/?cursor=cD0yMDI2",
  "previous": null,
  "results": [
    {
      "id": "7f3c2a9e-1b4d-4e8a-9c6f-2d5b8e1a4c3f",
      "status": "string",
      "report_type": "MVIN",
      "template_tag": "string",
      "conducted_at": "2026-03-01T09:30:00Z",
      "rental_contract_id": 1,
      "created_at": "2026-03-01T09:30:00Z",
      "updated_at": "2026-03-01T09:30:00Z"
    }
  ]
}

Retrieve one inspection report

GET/api/pro/v1/inspection-reports/{id}/

One inspection report, by the id the list returns.

Requires scope VIEW_INSPECTION_REPORT

Parameters

  • idstring · uuidpathRequired

Response fields

  • idstring · uuid

    Unique identifier for the inspection report

  • statusstring
  • report_typestring

    Type of inspection report: move-in, move-out, periodic, etc.

    • MVINMove-in report
    • MVOTMove-out report
    • STATStand alone report
  • template_tagstring

    Template identifier for document generation

  • conducted_atstring · date-timenullable

    The date and time when the inspection was conducted

  • rental_contract_idintegernullable
  • created_atstring · date-time

    Timestamp when the report was created

  • updated_atstring · date-time

    Timestamp when the report was last updated

GET /api/pro/v1/inspection-reports/{id}/
curl 'https://myigloo.is/api/pro/v1/inspection-reports/7f3c2a9e-1b4d-4e8a-9c6f-2d5b8e1a4c3f/' \
  -H "Authorization: Bearer $IGLOO_ACCESS_TOKEN"
Example response · 200
{
  "id": "7f3c2a9e-1b4d-4e8a-9c6f-2d5b8e1a4c3f",
  "status": "string",
  "report_type": "MVIN",
  "template_tag": "string",
  "conducted_at": "2026-03-01T09:30:00Z",
  "rental_contract_id": 1,
  "created_at": "2026-03-01T09:30:00Z",
  "updated_at": "2026-03-01T09:30:00Z"
}

Guarantees

Rental guarantees

Igloo rental guarantees on your contracts: amount, term, status and how far each one has got. The issued policy is a surety guarantee; the two share a reference.

List rental guarantees

GET/api/pro/v1/rental-guarantees/

The Igloo-side guarantee records for the organization's rental contracts. The issued surety policies are a separate resource at /surety-guarantees/ with their own ids: correlate the two on reference, never on id. Cursor-paginated, newest first.

Requires scope VIEW_GUARANTEE

Parameters

  • created_afterstring · date-timequery
  • created_beforestring · date-timequery
  • cursorstringquery

    The pagination cursor value.

  • funnel_stagestringquery

    Allowed valuesABANDONEDASSESSMENT_STARTEDCONTRACT_SELECTEDCREDIT_SCOREDENTRYINCOME_ADDEDISSUEDPEOPLE_COMPLETEDREVIEW_REACHEDSUBMITTED

  • page_sizeintegerquery

    Number of results to return per page.

  • rental_contract_idnumberquery
  • statusstringquery

    Allowed valuesCANCELLEDCLOSEDCOMMITTEDDRAFTISSUEDSETTLED

Response fields

  • nextstring · urinullable
  • previousstring · urinullable
  • resultsarray of object
    20 nested fields
    • idstring · uuid
    • referencestringnullable
    • statusstring
      • DRAFTDraft
      • COMMITTEDCommitted
      • ISSUEDIssued
      • SETTLEDSettled
      • CANCELLEDCancelled
      • CLOSEDClosed
    • funnel_stagestringnullable
      • ENTRYEntry
      • CONTRACT_SELECTEDContract Selected
      • ASSESSMENT_STARTEDAssessment Started
      • CREDIT_SCOREDCredit Scored
      • INCOME_ADDEDIncome Added
      • PEOPLE_COMPLETEDPeople Completed
      • REVIEW_REACHEDReview Reached
      • SUBMITTEDSubmitted
      • ISSUEDIssued
      • ABANDONEDAbandoned
    • rental_contract_idinteger
    • guarantee_amountstring · decimalnullable
    • currencystring
    • guarantee_product_tagstring
      • rental_guarantee_basicRental guarantee basic
    • billing_modestring
      • upfrontUpfront
      • monthlyMonthly
    • spread_paymentsboolean
    • guarantee_start_datestring · datenullable
    • guarantee_end_datestring · datenullable
    • issue_requested_atstring · date-timenullable
    • committed_atstring · date-timenullable
    • issued_atstring · date-timenullable
    • settled_atstring · date-timenullable
    • cancelled_atstring · date-timenullable
    • closed_atstring · date-timenullable
    • created_atstring · date-time
    • updated_atstring · date-time
GET /api/pro/v1/rental-guarantees/
curl 'https://myigloo.is/api/pro/v1/rental-guarantees/' \
  -H "Authorization: Bearer $IGLOO_ACCESS_TOKEN"
Example response · 200
{
  "next": "https://myigloo.is/api/pro/v1/rental-guarantees/?cursor=cD0yMDI2",
  "previous": null,
  "results": [
    {
      "id": "7f3c2a9e-1b4d-4e8a-9c6f-2d5b8e1a4c3f",
      "reference": "string",
      "status": "DRAFT",
      "funnel_stage": "ENTRY",
      "rental_contract_id": 1,
      "guarantee_amount": "250000.00",
      "currency": "ISK",
      "guarantee_product_tag": "rental_guarantee_basic",
      "billing_mode": "upfront",
      "spread_payments": true,
      "guarantee_start_date": "2026-03-01",
      "guarantee_end_date": "2026-03-01",
      "issue_requested_at": "2026-03-01T09:30:00Z",
      "committed_at": "2026-03-01T09:30:00Z",
      "issued_at": "2026-03-01T09:30:00Z",
      "settled_at": "2026-03-01T09:30:00Z",
      "cancelled_at": "2026-03-01T09:30:00Z",
      "closed_at": "2026-03-01T09:30:00Z",
      "created_at": "2026-03-01T09:30:00Z",
      "updated_at": "2026-03-01T09:30:00Z"
    }
  ]
}

Retrieve one rental guarantee

GET/api/pro/v1/rental-guarantees/{id}/

One rental guarantee record, by the id the list returns. rental_contract_id links it to its rental contract.

Requires scope VIEW_GUARANTEE

Parameters

  • idstring · uuidpathRequired

Response fields

  • idstring · uuid
  • referencestringnullable
  • statusstring
    • DRAFTDraft
    • COMMITTEDCommitted
    • ISSUEDIssued
    • SETTLEDSettled
    • CANCELLEDCancelled
    • CLOSEDClosed
  • funnel_stagestringnullable
    • ENTRYEntry
    • CONTRACT_SELECTEDContract Selected
    • ASSESSMENT_STARTEDAssessment Started
    • CREDIT_SCOREDCredit Scored
    • INCOME_ADDEDIncome Added
    • PEOPLE_COMPLETEDPeople Completed
    • REVIEW_REACHEDReview Reached
    • SUBMITTEDSubmitted
    • ISSUEDIssued
    • ABANDONEDAbandoned
  • rental_contract_idinteger
  • guarantee_amountstring · decimalnullable
  • currencystring
  • guarantee_product_tagstring
    • rental_guarantee_basicRental guarantee basic
  • billing_modestring
    • upfrontUpfront
    • monthlyMonthly
  • spread_paymentsboolean
  • guarantee_start_datestring · datenullable
  • guarantee_end_datestring · datenullable
  • issue_requested_atstring · date-timenullable
  • committed_atstring · date-timenullable
  • issued_atstring · date-timenullable
  • settled_atstring · date-timenullable
  • cancelled_atstring · date-timenullable
  • closed_atstring · date-timenullable
  • created_atstring · date-time
  • updated_atstring · date-time
GET /api/pro/v1/rental-guarantees/{id}/
curl 'https://myigloo.is/api/pro/v1/rental-guarantees/7f3c2a9e-1b4d-4e8a-9c6f-2d5b8e1a4c3f/' \
  -H "Authorization: Bearer $IGLOO_ACCESS_TOKEN"
Example response · 200
{
  "id": "7f3c2a9e-1b4d-4e8a-9c6f-2d5b8e1a4c3f",
  "reference": "string",
  "status": "DRAFT",
  "funnel_stage": "ENTRY",
  "rental_contract_id": 1,
  "guarantee_amount": "250000.00",
  "currency": "ISK",
  "guarantee_product_tag": "rental_guarantee_basic",
  "billing_mode": "upfront",
  "spread_payments": true,
  "guarantee_start_date": "2026-03-01",
  "guarantee_end_date": "2026-03-01",
  "issue_requested_at": "2026-03-01T09:30:00Z",
  "committed_at": "2026-03-01T09:30:00Z",
  "issued_at": "2026-03-01T09:30:00Z",
  "settled_at": "2026-03-01T09:30:00Z",
  "cancelled_at": "2026-03-01T09:30:00Z",
  "closed_at": "2026-03-01T09:30:00Z",
  "created_at": "2026-03-01T09:30:00Z",
  "updated_at": "2026-03-01T09:30:00Z"
}

Surety guarantees

Issued surety guarantees, the policies themselves: amount, monthly rent, collateral held, claims paid and claim-notice dates.

List issued surety guarantees

GET/api/pro/v1/surety-guarantees/

Issued surety guarantees: the policies that stand behind your rental contracts, with collateral, claims and claim-notice dates. The Igloo-side guarantee record is a separate resource at /rental-guarantees/ with its own ids: correlate the two on reference, never on id. Page-numbered.

Requires scope VIEW_GUARANTEE

Parameters

  • pageintegerquery

    1-based page number. This collection is page-numbered rather than cursor-paginated: follow next, or step page yourself.

  • per_pageintegerquery

    Rows per page, 1–200. Defaults to 50.

  • referencestringquery

    Exact match on the policy's reference: the route from a /rental-guarantees/ row to its issued policy.

  • searchstringquery

    Free-text match on the principal's or obligee's name or national id. Never matches a reference.

  • statusstringquery

    Comma-separated values are OR'd, so ISSUED,EXPIRED is a valid filter.

    Allowed valuesCANCELLEDEXPIREDISSUEDPENDING_SURETY_APPROVAL

Response fields

  • countintegernullable
  • nextstringnullable
  • previousstringnullable
  • resultsarray of object
    16 nested fields
    • idstring · uuid
    • referencestringnullable
    • statusstringnullable
    • amountstring · decimalnullable
    • monthly_rentstring · decimalnullable
    • collateral_heldstring · decimalnullable
    • claims_paidstring · decimalnullable
    • has_open_claimsboolean
    • is_full_collateralboolean
    • billing_modestringnullable
    • start_datestring · datenullable
    • end_datestring · datenullable
    • claim_notice_expiry_datestring · datenullable
    • issued_atstring · date-timenullable
    • created_atstring · date-timenullable
    • rental_contractobjectnullable
      2 nested fields
      • start_datestring · datenullable
      • end_datestring · datenullable
GET /api/pro/v1/surety-guarantees/
curl 'https://myigloo.is/api/pro/v1/surety-guarantees/' \
  -H "Authorization: Bearer $IGLOO_ACCESS_TOKEN"
Example response · 200
{
  "count": 1,
  "next": "https://myigloo.is/api/pro/v1/surety-guarantees/?page=2",
  "previous": null,
  "results": [
    {
      "id": "7f3c2a9e-1b4d-4e8a-9c6f-2d5b8e1a4c3f",
      "reference": "string",
      "status": "string",
      "amount": "250000.00",
      "monthly_rent": "250000.00",
      "collateral_held": "250000.00",
      "claims_paid": "250000.00",
      "has_open_claims": true,
      "is_full_collateral": true,
      "billing_mode": "string",
      "start_date": "2026-03-01",
      "end_date": "2026-03-01",
      "claim_notice_expiry_date": "2026-03-01",
      "issued_at": "2026-03-01T09:30:00Z",
      "created_at": "2026-03-01T09:30:00Z",
      "rental_contract": {
        "start_date": "2026-03-01",
        "end_date": "2026-03-01"
      }
    }
  ]
}

Retrieve one issued surety guarantee

GET/api/pro/v1/surety-guarantees/{id}/

One issued surety guarantee, by the id the list returns.

Requires scope VIEW_GUARANTEE

Parameters

  • idstring · uuidpathRequired

Response fields

  • idstring · uuid
  • referencestringnullable
  • statusstringnullable
  • amountstring · decimalnullable
  • monthly_rentstring · decimalnullable
  • collateral_heldstring · decimalnullable
  • claims_paidstring · decimalnullable
  • has_open_claimsboolean
  • is_full_collateralboolean
  • billing_modestringnullable
  • start_datestring · datenullable
  • end_datestring · datenullable
  • claim_notice_expiry_datestring · datenullable
  • issued_atstring · date-timenullable
  • created_atstring · date-timenullable
  • rental_contractobjectnullable
    2 nested fields
    • start_datestring · datenullable
    • end_datestring · datenullable
GET /api/pro/v1/surety-guarantees/{id}/
curl 'https://myigloo.is/api/pro/v1/surety-guarantees/7f3c2a9e-1b4d-4e8a-9c6f-2d5b8e1a4c3f/' \
  -H "Authorization: Bearer $IGLOO_ACCESS_TOKEN"
Example response · 200
{
  "id": "7f3c2a9e-1b4d-4e8a-9c6f-2d5b8e1a4c3f",
  "reference": "string",
  "status": "string",
  "amount": "250000.00",
  "monthly_rent": "250000.00",
  "collateral_held": "250000.00",
  "claims_paid": "250000.00",
  "has_open_claims": true,
  "is_full_collateral": true,
  "billing_mode": "string",
  "start_date": "2026-03-01",
  "end_date": "2026-03-01",
  "claim_notice_expiry_date": "2026-03-01",
  "issued_at": "2026-03-01T09:30:00Z",
  "created_at": "2026-03-01T09:30:00Z",
  "rental_contract": {
    "start_date": "2026-03-01",
    "end_date": "2026-03-01"
  }
}

Surety issue requests

Requests to issue a surety guarantee, and how each was answered.

List surety issue requests

GET/api/pro/v1/surety-issue-requests/

Requests to issue a surety guarantee, and how each was answered. Read-only: answering a request signs a letter of guarantee, which is not available over the API. Page-numbered. Each row's guarantee carries the guaranteed property and the main applicant, national id included. The full record — every party, the underwriting figures and the contract's terms — is on the detail route.

Requires scope VIEW_RENTAL_GUARANTEE_ISSUE_REQUESTS

Parameters

  • pageintegerquery

    1-based page number. This collection is page-numbered rather than cursor-paginated: follow next, or step page yourself.

  • per_pageintegerquery

    Rows per page, 1–200. Defaults to 50.

  • statusstringquery

    One value only. Unlike /surety-guarantees/, a comma-separated list is not accepted.

    Allowed valuesacceptedcancelledpendingpending_signaturerejectedwithdrawn

Response fields

  • countintegernullable
  • nextstringnullable
  • previousstringnullable
  • resultsarray of object
    8 nested fields
    • idstring · uuid
    • statusstringnullable
    • acceptedbooleannullable
    • responded_atstring · date-timenullable
    • withdrawn_atstring · date-timenullable
    • created_atstring · date-timenullable
    • updated_atstring · date-timenullable
    • guaranteeobjectnullable
      10 nested fields
      • idstring · uuidnullable
      • referencestringnullable
      • statusstringnullable
      • amountstring · decimalnullable
      • start_datestring · datenullable
      • end_datestring · datenullable
      • surety_aml_statusstringnullable
      • rental_contractobjectnullable
        3 nested fields
        • start_datestring · datenullable
        • end_datestring · datenullable
        • pricestring · decimalnullable
      • propertyobjectnullable
        3 nested fields
        • landreg_idstringnullable
        • addressobjectnullable
        • unitsarray of object
      • main_applicantobjectnullable
        5 nested fields
        • namestringnullable
        • personal_idstringnullable
        • personal_id_countrystringnullable
        • is_individualbooleannullable
        • agentobjectnullable
GET /api/pro/v1/surety-issue-requests/
curl 'https://myigloo.is/api/pro/v1/surety-issue-requests/' \
  -H "Authorization: Bearer $IGLOO_ACCESS_TOKEN"
Example response · 200
{
  "count": 1,
  "next": "https://myigloo.is/api/pro/v1/surety-issue-requests/?page=2",
  "previous": null,
  "results": [
    {
      "id": "7f3c2a9e-1b4d-4e8a-9c6f-2d5b8e1a4c3f",
      "status": "string",
      "accepted": true,
      "responded_at": "2026-03-01T09:30:00Z",
      "withdrawn_at": "2026-03-01T09:30:00Z",
      "created_at": "2026-03-01T09:30:00Z",
      "updated_at": "2026-03-01T09:30:00Z",
      "guarantee": {
        "id": "7f3c2a9e-1b4d-4e8a-9c6f-2d5b8e1a4c3f",
        "reference": "string",
        "status": "string",
        "amount": "250000.00",
        "start_date": "2026-03-01",
        "end_date": "2026-03-01",
        "surety_aml_status": "string",
        "rental_contract": {
          "start_date": "2026-03-01",
          "end_date": "2026-03-01",
          "price": "250000.00"
        },
        "property": {
          "landreg_id": "string",
          "address": {
            "street_name": "string",
            "street_number": "string",
            "postal_code": "string",
            "city": "string",
            "country": "string"
          },
          "units": [
            {
              "unit_reference": null,
              "marking": null,
              "apartment_nr": null,
              "floor": null,
              "size": null,
              "rooms": null,
              "property_type_code": null,
              "property_type_name": null,
              "construction_year": null
            }
          ]
        },
        "main_applicant": {
          "name": "string",
          "personal_id": "string",
          "personal_id_country": "string",
          "is_individual": true,
          "agent": {
            "name": "string",
            "personal_id": "string",
            "personal_id_country": "string",
            "is_individual": true
          }
        }
      }
    }
  ]
}

Retrieve one surety issue request

GET/api/pro/v1/surety-issue-requests/{id}/

One surety issue request, by the id the list returns, with everything a surety registers a guarantee from: the parties by national id, the property, the contract's terms and the underwriting figures behind each principal. obligees needs the VIEW_GUARANTEE scope as well, and is null without it.

Requires scope VIEW_RENTAL_GUARANTEE_ISSUE_REQUESTS

Parameters

  • idstring · uuidpathRequired

Response fields

  • idstring · uuid
  • statusstringnullable
  • acceptedbooleannullable
  • notesstringnullable
  • responded_atstring · date-timenullable
  • withdrawn_atstring · date-timenullable
  • created_atstring · date-timenullable
  • updated_atstring · date-timenullable
  • signingobjectnullable
    3 nested fields
    • statusstringnullable
    • signing_initiated_atstring · date-timenullable
    • fully_signed_atstring · date-timenullable
  • guaranteeobjectnullable
    18 nested fields
    • idstring · uuidnullable
    • referencestringnullable
    • statusstringnullable
    • amountstring · decimalnullable
    • currencystringnullable
    • billing_modestringnullable
    • start_datestring · datenullable
    • end_datestring · datenullable
    • move_out_datestring · datenullable
    • committed_atstring · date-timenullable
    • issued_atstring · date-timenullable
    • created_atstring · date-timenullable
    • surety_aml_statusstringnullable
    • rental_contractobjectnullable
      16 nested fields
      • start_datestring · datenullable
      • end_datestring · datenullable
      • is_definitebooleannullable
      • contract_datestring · datenullable
      • pricestring · decimalnullable
      • currencystringnullable
      • is_price_indexedbooleannullable
      • index_typestringnullable
      • insurance_amountstring · decimalnullable
      • insurance_monthsintegernullable
      • pre_paid_rent_monthsintegernullable
      • pre_paid_rent_amountstring · decimalnullable
      • is_limitedbooleannullable
      • sizestring · decimalnullable
      • roomsintegernullable
      • fully_signedstring · date-timenullable
    • propertyobjectnullable
      3 nested fields
      • landreg_idstringnullable
      • addressobjectnullable
        5 nested fields
        • street_namestring
        • street_numberstring
        • postal_codestring
        • citystring
        • countrystring
      • unitsarray of object
        9 nested fields
        • unit_referencestringnullable
        • markingstringnullable
        • apartment_nrstringnullable
        • floorstringnullable
        • sizestring · decimalnullable
        • roomsstring · decimalnullable
        • property_type_codestringnullable
        • property_type_namestringnullable
        • construction_yearintegernullable
    • main_applicantobjectnullable
      5 nested fields
      • namestringnullable
      • personal_idstringnullable
      • personal_id_countrystringnullable
      • is_individualbooleannullable
      • agentobjectnullable
        4 nested fields
        • namestringnullable
        • personal_idstringnullable
        • personal_id_countrystringnullable
        • is_individualbooleannullable
    • principalsarray of objectnullable
      10 nested fields
      • namestringnullable
      • personal_idstringnullable
      • personal_id_countrystringnullable
      • is_individualbooleannullable
      • agentobjectnullable
        4 nested fields
        • namestringnullable
        • personal_idstringnullable
        • personal_id_countrystringnullable
        • is_individualbooleannullable
      • is_main_applicantbooleannullable
      • is_co_tenantbooleannullable
      • collateral_percentagestring · decimalnullable
      • income_verifiedbooleannullable
      • credit_assessmentobjectnullable
        9 nested fields
        • avg_net_incomestring · decimalnullable
        • avg_gross_incomestring · decimalnullable
        • avg_fixed_expensesstring · decimalnullable
        • avg_variable_expensesstring · decimalnullable
        • disposable_incomestring · decimalnullable
        • debt_to_income_ratiostring · decimalnullable
        • total_outstanding_loanstring · decimalnullable
        • marital_statusstringnullable
        • credit_scoreobjectnullable
    • obligeesarray of objectnullable
      4 nested fields
      • namestringnullable
      • personal_idstringnullable
      • personal_id_countrystringnullable
      • is_individualbooleannullable
GET /api/pro/v1/surety-issue-requests/{id}/
curl 'https://myigloo.is/api/pro/v1/surety-issue-requests/7f3c2a9e-1b4d-4e8a-9c6f-2d5b8e1a4c3f/' \
  -H "Authorization: Bearer $IGLOO_ACCESS_TOKEN"
Example response · 200
{
  "id": "7f3c2a9e-1b4d-4e8a-9c6f-2d5b8e1a4c3f",
  "status": "string",
  "accepted": true,
  "notes": "string",
  "responded_at": "2026-03-01T09:30:00Z",
  "withdrawn_at": "2026-03-01T09:30:00Z",
  "created_at": "2026-03-01T09:30:00Z",
  "updated_at": "2026-03-01T09:30:00Z",
  "signing": {
    "status": "string",
    "signing_initiated_at": "2026-03-01T09:30:00Z",
    "fully_signed_at": "2026-03-01T09:30:00Z"
  },
  "guarantee": {
    "id": "7f3c2a9e-1b4d-4e8a-9c6f-2d5b8e1a4c3f",
    "reference": "string",
    "status": "string",
    "amount": "250000.00",
    "currency": "ISK",
    "billing_mode": "string",
    "start_date": "2026-03-01",
    "end_date": "2026-03-01",
    "move_out_date": "2026-03-01",
    "committed_at": "2026-03-01T09:30:00Z",
    "issued_at": "2026-03-01T09:30:00Z",
    "created_at": "2026-03-01T09:30:00Z",
    "surety_aml_status": "string",
    "rental_contract": {
      "start_date": "2026-03-01",
      "end_date": "2026-03-01",
      "is_definite": true,
      "contract_date": "2026-03-01",
      "price": "250000.00",
      "currency": "ISK",
      "is_price_indexed": true,
      "index_type": "string",
      "insurance_amount": "250000.00",
      "insurance_months": 1,
      "pre_paid_rent_months": 1,
      "pre_paid_rent_amount": "250000.00",
      "is_limited": true,
      "size": "250000.00",
      "rooms": 1,
      "fully_signed": "2026-03-01T09:30:00Z"
    },
    "property": {
      "landreg_id": "string",
      "address": {
        "street_name": "string",
        "street_number": "string",
        "postal_code": "string",
        "city": "string",
        "country": "string"
      },
      "units": [
        {
          "unit_reference": "string",
          "marking": "string",
          "apartment_nr": "string",
          "floor": "string",
          "size": "250000.00",
          "rooms": "250000.00",
          "property_type_code": "string",
          "property_type_name": "string",
          "construction_year": 1
        }
      ]
    },
    "main_applicant": {
      "name": "string",
      "personal_id": "string",
      "personal_id_country": "string",
      "is_individual": true,
      "agent": {
        "name": "string",
        "personal_id": "string",
        "personal_id_country": "string",
        "is_individual": true
      }
    },
    "principals": [
      {
        "name": "string",
        "personal_id": "string",
        "personal_id_country": "string",
        "is_individual": true,
        "agent": {
          "name": "string",
          "personal_id": "string",
          "personal_id_country": "string",
          "is_individual": true
        },
        "is_main_applicant": true,
        "is_co_tenant": true,
        "collateral_percentage": "250000.00",
        "income_verified": true,
        "credit_assessment": {
          "avg_net_income": "250000.00",
          "avg_gross_income": "250000.00",
          "avg_fixed_expenses": "250000.00",
          "avg_variable_expenses": "250000.00",
          "disposable_income": "250000.00",
          "debt_to_income_ratio": "250000.00",
          "total_outstanding_loan": "250000.00",
          "marital_status": "string",
          "credit_score": {
            "points": 1,
            "category": "string",
            "category_description": "string",
            "created_at": "2026-03-01T09:30:00Z"
          }
        }
      }
    ],
    "obligees": [
      {
        "name": "string",
        "personal_id": "string",
        "personal_id_country": "string",
        "is_individual": true
      }
    ]
  }
}

Customers and compliance

Customers

Customers in your organization's accounting cloud, with their name and primary email.

List customers

GET/api/pro/v1/customers/

Customers of the organization's accounting cloud. Page-numbered (see page / per_page). Names and primary email only — national ids, credit scores and contact verification data are deliberately not published.

Requires scope VIEW_CUSTOMER

Parameters

  • pageintegerquery

    1-based page number. This collection is page-numbered rather than cursor-paginated: follow next, or step page yourself.

  • per_pageintegerquery

    Rows per page, 1–200. Defaults to 50.

  • searchstringquery

    Free-text match on name or identifier.

Response fields

  • countintegernullable
  • nextstringnullable
  • previousstringnullable
  • resultsarray of object
    3 nested fields
    • idinteger
    • namestringnullable
    • primary_emailstringnullable
GET /api/pro/v1/customers/
curl 'https://myigloo.is/api/pro/v1/customers/' \
  -H "Authorization: Bearer $IGLOO_ACCESS_TOKEN"
Example response · 200
{
  "count": 1,
  "next": "https://myigloo.is/api/pro/v1/customers/?page=2",
  "previous": null,
  "results": [
    {
      "id": 1,
      "name": "string",
      "primary_email": "string"
    }
  ]
}

Retrieve one customer

GET/api/pro/v1/customers/{id}/

One customer, by the integer id the list returns.

Requires scope VIEW_CUSTOMER

Parameters

  • idintegerpathRequired

Response fields

  • idinteger
  • namestringnullable
  • primary_emailstringnullable
GET /api/pro/v1/customers/{id}/
curl 'https://myigloo.is/api/pro/v1/customers/1/' \
  -H "Authorization: Bearer $IGLOO_ACCESS_TOKEN"
Example response · 200
{
  "id": 1,
  "name": "string",
  "primary_email": "string"
}

AML profiles

Anti-money-laundering profiles: risk categories, PEP and high-risk-country flags, alerts and review dates, and the watchlist matches assigned to each.

List AML profiles

GET/api/pro/v1/aml-profiles/

Anti-money-laundering profiles in your organization's compliance register: risk categories, PEP and high-risk-country flags, open alerts and review dates. The person's name, birth date and address are not included. Page-numbered.

Requires scope VIEW_AML_PROFILE

Parameters

  • customerintegerquery

    Only this customer's profiles: the id from /customers/, which each profile carries as customer.

  • pageintegerquery

    1-based page number. This collection is page-numbered rather than cursor-paginated: follow next, or step page yourself.

  • per_pageintegerquery

    Rows per page, 1–200. Defaults to 50.

  • statusstringquery

    Allowed valuesACTIVECLOSEDINACTIVEPENDING_KYCSUSPENDED

Response fields

  • countintegernullable
  • nextstringnullable
  • previousstringnullable
  • resultsarray of object
    18 nested fields
    • idstring · uuid
    • customerintegernullable
    • statusstringnullable
    • kyc_statusstringnullable
    • profile_typestringnullable
    • countrystringnullable
    • aml_category_codesarray of string
    • highest_risk_categoryobjectnullable
      3 nested fields
      • codestringnullable
      • namestringnullable
      • risk_levelstringnullable
    • is_pepboolean
    • is_high_risk_countryboolean
    • requires_enhanced_ddboolean
    • alert_countintegernullable
    • document_countintegernullable
    • days_since_last_reviewintegernullable
    • last_reviewed_atstring · date-timenullable
    • next_reviewed_atstring · date-timenullable
    • created_atstring · date-timenullable
    • updated_atstring · date-timenullable
GET /api/pro/v1/aml-profiles/
curl 'https://myigloo.is/api/pro/v1/aml-profiles/' \
  -H "Authorization: Bearer $IGLOO_ACCESS_TOKEN"
Example response · 200
{
  "count": 1,
  "next": "https://myigloo.is/api/pro/v1/aml-profiles/?page=2",
  "previous": null,
  "results": [
    {
      "id": "7f3c2a9e-1b4d-4e8a-9c6f-2d5b8e1a4c3f",
      "customer": 1,
      "status": "string",
      "kyc_status": "string",
      "profile_type": "string",
      "country": "string",
      "aml_category_codes": [
        "string"
      ],
      "highest_risk_category": {
        "code": "string",
        "name": "string",
        "risk_level": "string"
      },
      "is_pep": true,
      "is_high_risk_country": true,
      "requires_enhanced_dd": true,
      "alert_count": 1,
      "document_count": 1,
      "days_since_last_review": 1,
      "last_reviewed_at": "2026-03-01T09:30:00Z",
      "next_reviewed_at": "2026-03-01T09:30:00Z",
      "created_at": "2026-03-01T09:30:00Z",
      "updated_at": "2026-03-01T09:30:00Z"
    }
  ]
}

Retrieve one AML profile

GET/api/pro/v1/aml-profiles/{id}/

One AML profile, by the id the list returns.

Requires scope VIEW_AML_PROFILE

Parameters

  • idstring · uuidpathRequired

Response fields

  • idstring · uuid
  • customerintegernullable
  • statusstringnullable
  • kyc_statusstringnullable
  • profile_typestringnullable
  • countrystringnullable
  • aml_category_codesarray of string
  • highest_risk_categoryobjectnullable
    3 nested fields
    • codestringnullable
    • namestringnullable
    • risk_levelstringnullable
  • is_pepboolean
  • is_high_risk_countryboolean
  • requires_enhanced_ddboolean
  • alert_countintegernullable
  • document_countintegernullable
  • days_since_last_reviewintegernullable
  • last_reviewed_atstring · date-timenullable
  • next_reviewed_atstring · date-timenullable
  • created_atstring · date-timenullable
  • updated_atstring · date-timenullable
GET /api/pro/v1/aml-profiles/{id}/
curl 'https://myigloo.is/api/pro/v1/aml-profiles/7f3c2a9e-1b4d-4e8a-9c6f-2d5b8e1a4c3f/' \
  -H "Authorization: Bearer $IGLOO_ACCESS_TOKEN"
Example response · 200
{
  "id": "7f3c2a9e-1b4d-4e8a-9c6f-2d5b8e1a4c3f",
  "customer": 1,
  "status": "string",
  "kyc_status": "string",
  "profile_type": "string",
  "country": "string",
  "aml_category_codes": [
    "string"
  ],
  "highest_risk_category": {
    "code": "string",
    "name": "string",
    "risk_level": "string"
  },
  "is_pep": true,
  "is_high_risk_country": true,
  "requires_enhanced_dd": true,
  "alert_count": 1,
  "document_count": 1,
  "days_since_last_review": 1,
  "last_reviewed_at": "2026-03-01T09:30:00Z",
  "next_reviewed_at": "2026-03-01T09:30:00Z",
  "created_at": "2026-03-01T09:30:00Z",
  "updated_at": "2026-03-01T09:30:00Z"
}

List watchlist matches assigned to an AML profile

GET/api/pro/v1/aml-profiles/{id}/matches/

PEP and sanctions matches assigned to this profile. These rows name a natural person — that is what a match is — so treat the response as compliance data under your data processing agreement.

Requires scope VIEW_AML_PROFILE

Parameters

  • idstring · uuidpathRequired
  • pageintegerquery

    1-based page number. This collection is page-numbered rather than cursor-paginated: follow next, or step page yourself.

  • per_pageintegerquery

    Rows per page, 1–200. Defaults to 50.

Response fields

  • countintegernullable
  • nextstringnullable
  • previousstringnullable
  • resultsarray of object
    8 nested fields
    • idstring · uuid
    • full_namestringnullable
    • match_ratenumber · doublenullable
    • genderstringnullable
    • date_of_birthstring · datenullable
    • deceasedboolean
    • primary_locationstringnullable
    • categoriesarray of string
GET /api/pro/v1/aml-profiles/{id}/matches/
curl 'https://myigloo.is/api/pro/v1/aml-profiles/7f3c2a9e-1b4d-4e8a-9c6f-2d5b8e1a4c3f/matches/' \
  -H "Authorization: Bearer $IGLOO_ACCESS_TOKEN"
Example response · 200
{
  "count": 1,
  "next": "https://myigloo.is/api/pro/v1/aml-profiles/7f3c2a9e-1b4d-4e8a-9c6f-2d5b8e1a4c3f/matches/?page=2",
  "previous": null,
  "results": [
    {
      "id": "7f3c2a9e-1b4d-4e8a-9c6f-2d5b8e1a4c3f",
      "full_name": "string",
      "match_rate": 0.5,
      "gender": "string",
      "date_of_birth": "2026-03-01",
      "deceased": true,
      "primary_location": "string",
      "categories": [
        "string"
      ]
    }
  ]
}

KYC processes

Know-your-customer processes, the checks each requires and the answers to its questionnaire.

List KYC processes

GET/api/pro/v1/kyc-processes/

Know-your-customer processes: how far each verification has got, which checks it requires and which documents are still outstanding. Filter by profile for one AML profile's processes. Page-numbered.

Requires scope VIEW_KYC_PROCESS

Parameters

  • pageintegerquery

    1-based page number. This collection is page-numbered rather than cursor-paginated: follow next, or step page yourself.

  • per_pageintegerquery

    Rows per page, 1–200. Defaults to 50.

  • profilestring · uuidquery

    AML profile id.

  • statusstringquery

    Allowed valuesEXPIREDINITIATEDPENDING_REVIEWREJECTEDVERIFIED

Response fields

  • countintegernullable
  • nextstringnullable
  • previousstringnullable
  • resultsarray of object
    19 nested fields
    • idstring · uuid
    • statusstringnullable
    • profilestring · uuidnullable
    • templatestring · uuidnullable
    • template_namestringnullable
    • is_expiredboolean
    • is_all_questions_answeredboolean
    • is_documents_submittedboolean
    • watchlist_lookup_statusstringnullable
    • requires_pep_checkboolean
    • requires_sanctions_checkboolean
    • requires_adverse_media_checkboolean
    • requires_tax_residencyboolean
    • required_documentsarray of string
    • expiry_datestring · date-timenullable
    • committed_atstring · date-timenullable
    • completed_atstring · date-timenullable
    • created_atstring · date-timenullable
    • updated_atstring · date-timenullable
GET /api/pro/v1/kyc-processes/
curl 'https://myigloo.is/api/pro/v1/kyc-processes/' \
  -H "Authorization: Bearer $IGLOO_ACCESS_TOKEN"
Example response · 200
{
  "count": 1,
  "next": "https://myigloo.is/api/pro/v1/kyc-processes/?page=2",
  "previous": null,
  "results": [
    {
      "id": "7f3c2a9e-1b4d-4e8a-9c6f-2d5b8e1a4c3f",
      "status": "string",
      "profile": "7f3c2a9e-1b4d-4e8a-9c6f-2d5b8e1a4c3f",
      "template": "7f3c2a9e-1b4d-4e8a-9c6f-2d5b8e1a4c3f",
      "template_name": "string",
      "is_expired": true,
      "is_all_questions_answered": true,
      "is_documents_submitted": true,
      "watchlist_lookup_status": "string",
      "requires_pep_check": true,
      "requires_sanctions_check": true,
      "requires_adverse_media_check": true,
      "requires_tax_residency": true,
      "required_documents": [
        "string"
      ],
      "expiry_date": "2026-03-01T09:30:00Z",
      "committed_at": "2026-03-01T09:30:00Z",
      "completed_at": "2026-03-01T09:30:00Z",
      "created_at": "2026-03-01T09:30:00Z",
      "updated_at": "2026-03-01T09:30:00Z"
    }
  ]
}

Retrieve one KYC process

GET/api/pro/v1/kyc-processes/{id}/

One KYC process, by the id the list returns.

Requires scope VIEW_KYC_PROCESS

Parameters

  • idstring · uuidpathRequired

Response fields

  • idstring · uuid
  • statusstringnullable
  • profilestring · uuidnullable
  • templatestring · uuidnullable
  • template_namestringnullable
  • is_expiredboolean
  • is_all_questions_answeredboolean
  • is_documents_submittedboolean
  • watchlist_lookup_statusstringnullable
  • requires_pep_checkboolean
  • requires_sanctions_checkboolean
  • requires_adverse_media_checkboolean
  • requires_tax_residencyboolean
  • required_documentsarray of string
  • expiry_datestring · date-timenullable
  • committed_atstring · date-timenullable
  • completed_atstring · date-timenullable
  • created_atstring · date-timenullable
  • updated_atstring · date-timenullable
GET /api/pro/v1/kyc-processes/{id}/
curl 'https://myigloo.is/api/pro/v1/kyc-processes/7f3c2a9e-1b4d-4e8a-9c6f-2d5b8e1a4c3f/' \
  -H "Authorization: Bearer $IGLOO_ACCESS_TOKEN"
Example response · 200
{
  "id": "7f3c2a9e-1b4d-4e8a-9c6f-2d5b8e1a4c3f",
  "status": "string",
  "profile": "7f3c2a9e-1b4d-4e8a-9c6f-2d5b8e1a4c3f",
  "template": "7f3c2a9e-1b4d-4e8a-9c6f-2d5b8e1a4c3f",
  "template_name": "string",
  "is_expired": true,
  "is_all_questions_answered": true,
  "is_documents_submitted": true,
  "watchlist_lookup_status": "string",
  "requires_pep_check": true,
  "requires_sanctions_check": true,
  "requires_adverse_media_check": true,
  "requires_tax_residency": true,
  "required_documents": [
    "string"
  ],
  "expiry_date": "2026-03-01T09:30:00Z",
  "committed_at": "2026-03-01T09:30:00Z",
  "completed_at": "2026-03-01T09:30:00Z",
  "created_at": "2026-03-01T09:30:00Z",
  "updated_at": "2026-03-01T09:30:00Z"
}

List the answers to a KYC process's questionnaire

GET/api/pro/v1/kyc-processes/{id}/responses/

One row per answered question. A free-text answer is written by the subject about themselves — compliance data under your data processing agreement. Returned as a single page: next and previous are always null.

Requires scope VIEW_KYC_PROCESS

Parameters

  • idstring · uuidpathRequired

Response fields

  • countintegernullable
  • nextstringnullable
  • previousstringnullable
  • resultsarray of object
    11 nested fields
    • idstring · uuid
    • processstring · uuidnullable
    • questionstring · uuidnullable
    • question_textstringnullable
    • question_typestringnullable
    • answer_displayanynullable
    • single_choice_answer_labelstringnullable
    • multiple_choice_answer_labelsarray of string
    • text_answerstringnullable
    • number_answernumber · doublenullable
    • created_atstring · date-timenullable
GET /api/pro/v1/kyc-processes/{id}/responses/
curl 'https://myigloo.is/api/pro/v1/kyc-processes/7f3c2a9e-1b4d-4e8a-9c6f-2d5b8e1a4c3f/responses/' \
  -H "Authorization: Bearer $IGLOO_ACCESS_TOKEN"
Example response · 200
{
  "count": 1,
  "next": "https://myigloo.is/api/pro/v1/kyc-processes/7f3c2a9e-1b4d-4e8a-9c6f-2d5b8e1a4c3f/responses/?page=2",
  "previous": null,
  "results": [
    {
      "id": "7f3c2a9e-1b4d-4e8a-9c6f-2d5b8e1a4c3f",
      "process": "7f3c2a9e-1b4d-4e8a-9c6f-2d5b8e1a4c3f",
      "question": "7f3c2a9e-1b4d-4e8a-9c6f-2d5b8e1a4c3f",
      "question_text": "string",
      "question_type": "string",
      "answer_display": null,
      "single_choice_answer_label": "string",
      "multiple_choice_answer_labels": [
        "string"
      ],
      "text_answer": "string",
      "number_answer": 0.5,
      "created_at": "2026-03-01T09:30:00Z"
    }
  ]
}