{
    "item": [
        {
            "name": "Token",
            "description": "The token used for the request, and where an access token is fetched (OAuth 2.0)",
            "item": [
                {
                    "name": "Fetch an access token (OAuth 2.0 client credentials)",
                    "request": {
                        "name": "Fetch an access token (OAuth 2.0 client credentials)",
                        "description": {
                            "content": "Exchanges a token created on the myWebLog website for an access token that is valid for expires_in seconds (3600). Send the access token with every call as \"Authorization: Bearer <access token>\". When it has expired, the API answers 401 with WWW-Authenticate: Bearer error=\"invalid_token\"; fetch a new one and retry.\n\nThe client id is the number shown as \"Client ID\" next to the token on the website. The client secret is the token itself. Send them in a Basic Authorization header (client_id:client_secret, which is what most OAuth 2.0 libraries do), or as the form fields client_id and client_secret. The body is form data (application/x-www-form-urlencoded), not JSON, as the OAuth 2.0 standard says.\n\nThe access token has the rights of the token, is limited to the same IP addresses, counts against the same rate limit and stops working as soon as the token is deleted on the website. Fetching a token counts as a call. The replies of this endpoint follow the OAuth 2.0 standard (RFC 6749), not the Problem Details form of the other endpoints.\n\nUntil 2027-12-31 the token itself is also accepted as the Bearer value, as in v4. From 2028-01-01 only an access token is accepted.",
                            "type": "text/plain"
                        },
                        "url": {
                            "path": [
                                "oauth",
                                "token"
                            ],
                            "host": [
                                "{{baseUrl}}"
                            ],
                            "query": [],
                            "variable": []
                        },
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application/x-www-form-urlencoded"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            }
                        ],
                        "method": "POST",
                        "body": {
                            "mode": "urlencoded",
                            "urlencoded": [
                                {
                                    "disabled": false,
                                    "description": {
                                        "content": "(Required) ",
                                        "type": "text/plain"
                                    },
                                    "key": "grant_type",
                                    "value": "client_credentials"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "The token's Client ID from the website. Not needed when the client is sent in a Basic Authorization header.",
                                        "type": "text/plain"
                                    },
                                    "key": "client_id",
                                    "value": "4711"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "The token. Not needed when the client is sent in a Basic Authorization header.",
                                        "type": "text/plain"
                                    },
                                    "key": "client_secret",
                                    "value": "mwla1_..."
                                }
                            ]
                        },
                        "auth": null
                    },
                    "response": [],
                    "event": [],
                    "protocolProfileBehavior": {
                        "disableBodyPruning": true
                    }
                },
                {
                    "name": "The token used for the request",
                    "request": {
                        "name": "The token used for the request",
                        "description": {
                            "content": "The description, owner, organization and rights of the token. Any valid token can call this, so it is also the way to test that a token works.",
                            "type": "text/plain"
                        },
                        "url": {
                            "path": [
                                "token"
                            ],
                            "host": [
                                "{{baseUrl}}"
                            ],
                            "query": [],
                            "variable": []
                        },
                        "header": [
                            {
                                "disabled": true,
                                "description": {
                                    "content": "Your own id for the request, at most 64 printable characters. It is returned with the reply. If you send none, one is made for you.",
                                    "type": "text/plain"
                                },
                                "key": "Request-Id",
                                "value": "import-2026-10-05-0001"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            }
                        ],
                        "method": "GET",
                        "body": [],
                        "auth": null
                    },
                    "response": [],
                    "event": [],
                    "protocolProfileBehavior": {
                        "disableBodyPruning": true
                    }
                }
            ]
        },
        {
            "name": "Organization",
            "description": "The token's own organization",
            "item": [
                {
                    "name": "The token's own organization",
                    "request": {
                        "name": "The token's own organization",
                        "description": {
                            "content": "The id and name of the organization, and where it is based. Any valid token can call this.",
                            "type": "text/plain"
                        },
                        "url": {
                            "path": [
                                "organization"
                            ],
                            "host": [
                                "{{baseUrl}}"
                            ],
                            "query": [],
                            "variable": []
                        },
                        "header": [
                            {
                                "disabled": true,
                                "description": {
                                    "content": "Your own id for the request, at most 64 printable characters. It is returned with the reply. If you send none, one is made for you.",
                                    "type": "text/plain"
                                },
                                "key": "Request-Id",
                                "value": "import-2026-10-05-0001"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            }
                        ],
                        "method": "GET",
                        "body": [],
                        "auth": null
                    },
                    "response": [],
                    "event": [],
                    "protocolProfileBehavior": {
                        "disableBodyPruning": true
                    }
                }
            ]
        },
        {
            "name": "Users",
            "description": "The members of the token's organization",
            "item": [
                {
                    "name": "List users",
                    "request": {
                        "name": "List users",
                        "description": {
                            "content": "The members of the token's organization, sorted by name. Needs read access to the module users. The blocks personal_identification_number, internal_notes, emergency_contact and access_card also need read access to the module users_sensitive.",
                            "type": "text/plain"
                        },
                        "url": {
                            "path": [
                                "users"
                            ],
                            "host": [
                                "{{baseUrl}}"
                            ],
                            "query": [
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Text search on the full name. * stands for any characters.",
                                        "type": "text/plain"
                                    },
                                    "key": "name",
                                    "value": "Anna*"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Text search on the username. * stands for any characters.",
                                        "type": "text/plain"
                                    },
                                    "key": "username",
                                    "value": "3-anna"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Text search on the member number. * stands for any characters.",
                                        "type": "text/plain"
                                    },
                                    "key": "member_number",
                                    "value": "007"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "The id of the membership type",
                                        "type": "text/plain"
                                    },
                                    "key": "membership_id",
                                    "value": "3"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Text search on the name of the membership type. * stands for any characters.",
                                        "type": "text/plain"
                                    },
                                    "key": "membership_name",
                                    "value": "Senior"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Active members only (true) or inactive only (false). Leave out for both.",
                                        "type": "text/plain"
                                    },
                                    "key": "active",
                                    "value": "true"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "",
                                        "type": "text/plain"
                                    },
                                    "key": "locked",
                                    "value": "false"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "",
                                        "type": "text/plain"
                                    },
                                    "key": "locked_login",
                                    "value": "false"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "",
                                        "type": "text/plain"
                                    },
                                    "key": "has_invalid_email_address",
                                    "value": "true"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Optional blocks, separated by commas. Each adds one key with the same name to every user. The last four need read access to the module users_sensitive.",
                                        "type": "text/plain"
                                    },
                                    "key": "include",
                                    "value": "email,phone"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Fields to leave out of every user, separated by commas. Only the fields a user always has can be named. A block is left out by not asking for it with include.",
                                        "type": "text/plain"
                                    },
                                    "key": "exclude",
                                    "value": "username,locked_login"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "How many items to return",
                                        "type": "text/plain"
                                    },
                                    "key": "limit",
                                    "value": "100"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "How many items to skip. The address of the next page is ready-made in links.next.",
                                        "type": "text/plain"
                                    },
                                    "key": "offset",
                                    "value": "0"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "true adds meta.total, the number of all items that match the filters. It costs an extra database query, so ask for it on the first page only.",
                                        "type": "text/plain"
                                    },
                                    "key": "include_total",
                                    "value": "false"
                                }
                            ],
                            "variable": []
                        },
                        "header": [
                            {
                                "disabled": true,
                                "description": {
                                    "content": "Your own id for the request, at most 64 printable characters. It is returned with the reply. If you send none, one is made for you.",
                                    "type": "text/plain"
                                },
                                "key": "Request-Id",
                                "value": "import-2026-10-05-0001"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            }
                        ],
                        "method": "GET",
                        "body": [],
                        "auth": null
                    },
                    "response": [],
                    "event": [],
                    "protocolProfileBehavior": {
                        "disableBodyPruning": true
                    }
                },
                {
                    "name": "Create a user",
                    "request": {
                        "name": "Create a user",
                        "description": {
                            "content": "Creates a member of the token's organization: a login and its membership, saved together or not at all. No password is set here. The new user sets one with \"Reset my password\" on the login page. Needs write access to the module users. The reply is the new user, with the blocks asked for with include and without the fields named in exclude.\n\n409 with code 10030 when the username, the member number or the KSAK member number is already in use (errors names the fields), and with code 10040 when a trial organization already has 5 active users.",
                            "type": "text/plain"
                        },
                        "url": {
                            "path": [
                                "users"
                            ],
                            "host": [
                                "{{baseUrl}}"
                            ],
                            "query": [
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Optional blocks, separated by commas. Each adds one key with the same name to every user. The last four need read access to the module users_sensitive.",
                                        "type": "text/plain"
                                    },
                                    "key": "include",
                                    "value": "email,phone"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Fields to leave out of every user, separated by commas. Only the fields a user always has can be named. A block is left out by not asking for it with include.",
                                        "type": "text/plain"
                                    },
                                    "key": "exclude",
                                    "value": "username,locked_login"
                                }
                            ],
                            "variable": []
                        },
                        "header": [
                            {
                                "disabled": true,
                                "description": {
                                    "content": "Your own id for the request, at most 64 printable characters. It is returned with the reply. If you send none, one is made for you.",
                                    "type": "text/plain"
                                },
                                "key": "Request-Id",
                                "value": "import-2026-10-05-0001"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            }
                        ],
                        "method": "POST",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n  \"username\": \"3-nils\",\n  \"first_name\": \"Nils\",\n  \"last_name\": \"Ny\",\n  \"membership_id\": 3,\n  \"user_groups\": [\n    7,\n    8\n  ],\n  \"email\": [\n    \"nils@example.com\"\n  ],\n  \"phone\": {\n    \"mobile\": {\n      \"country_code\": \"46\",\n      \"initial_number\": \"070\",\n      \"number\": \"0012345\"\n    }\n  }\n}",
                            "options": {
                                "raw": {
                                    "headerFamily": "json",
                                    "language": "json"
                                }
                            }
                        },
                        "auth": null
                    },
                    "response": [],
                    "event": [],
                    "protocolProfileBehavior": {
                        "disableBodyPruning": true
                    }
                },
                {
                    "name": "One user",
                    "request": {
                        "name": "One user",
                        "description": {
                            "content": "Needs read access to the module users. The blocks personal_identification_number, internal_notes, emergency_contact and access_card also need read access to the module users_sensitive.",
                            "type": "text/plain"
                        },
                        "url": {
                            "path": [
                                "users",
                                ":id"
                            ],
                            "host": [
                                "{{baseUrl}}"
                            ],
                            "query": [
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Optional blocks, separated by commas. Each adds one key with the same name to every user. The last four need read access to the module users_sensitive.",
                                        "type": "text/plain"
                                    },
                                    "key": "include",
                                    "value": "email,phone"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Fields to leave out of every user, separated by commas. Only the fields a user always has can be named. A block is left out by not asking for it with include.",
                                        "type": "text/plain"
                                    },
                                    "key": "exclude",
                                    "value": "username,locked_login"
                                }
                            ],
                            "variable": [
                                {
                                    "type": "any",
                                    "value": "5",
                                    "key": "id",
                                    "disabled": false,
                                    "description": {
                                        "content": "(Required) The id of the user",
                                        "type": "text/plain"
                                    }
                                }
                            ]
                        },
                        "header": [
                            {
                                "disabled": true,
                                "description": {
                                    "content": "Your own id for the request, at most 64 printable characters. It is returned with the reply. If you send none, one is made for you.",
                                    "type": "text/plain"
                                },
                                "key": "Request-Id",
                                "value": "import-2026-10-05-0001"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            }
                        ],
                        "method": "GET",
                        "body": [],
                        "auth": null
                    },
                    "response": [],
                    "event": [],
                    "protocolProfileBehavior": {
                        "disableBodyPruning": true
                    }
                },
                {
                    "name": "Change a user",
                    "request": {
                        "name": "Change a user",
                        "description": {
                            "content": "Changes the fields that are sent and leaves the others as they are. A field sent as null, or as an empty text, is emptied. A list (email, street_address) replaces the whole list the user has. Needs write access to the module users. The reply is the changed user, with the blocks asked for with include and without the fields named in exclude.\n\n400 with code 10105 when the body has no fields. 409 with code 10105 when name, address, email or phone is sent for a user whose login was not created by this organization, and with code 10040 when a user is made active in a trial organization that already has 5 active users.",
                            "type": "text/plain"
                        },
                        "url": {
                            "path": [
                                "users",
                                ":id"
                            ],
                            "host": [
                                "{{baseUrl}}"
                            ],
                            "query": [
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Optional blocks, separated by commas. Each adds one key with the same name to every user. The last four need read access to the module users_sensitive.",
                                        "type": "text/plain"
                                    },
                                    "key": "include",
                                    "value": "email,phone"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Fields to leave out of every user, separated by commas. Only the fields a user always has can be named. A block is left out by not asking for it with include.",
                                        "type": "text/plain"
                                    },
                                    "key": "exclude",
                                    "value": "username,locked_login"
                                }
                            ],
                            "variable": [
                                {
                                    "type": "any",
                                    "value": "5",
                                    "key": "id",
                                    "disabled": false,
                                    "description": {
                                        "content": "(Required) The id of the user",
                                        "type": "text/plain"
                                    }
                                }
                            ]
                        },
                        "header": [
                            {
                                "disabled": true,
                                "description": {
                                    "content": "Your own id for the request, at most 64 printable characters. It is returned with the reply. If you send none, one is made for you.",
                                    "type": "text/plain"
                                },
                                "key": "Request-Id",
                                "value": "import-2026-10-05-0001"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            }
                        ],
                        "method": "PATCH",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n  \"active\": false,\n  \"access_card\": {\n    \"number\": \"987654321\"\n  }\n}",
                            "options": {
                                "raw": {
                                    "headerFamily": "json",
                                    "language": "json"
                                }
                            }
                        },
                        "auth": null
                    },
                    "response": [],
                    "event": [],
                    "protocolProfileBehavior": {
                        "disableBodyPruning": true
                    }
                },
                {
                    "name": "Delete a user",
                    "request": {
                        "name": "Delete a user",
                        "description": {
                            "content": "Deletes the member the same way as the member admin on the website does. A deleted user cannot be brought back; a user can be made inactive instead, with PATCH and active false. Needs write access to the module users.\n\n409 with code 10105 when the user is an administrator, or when the balance of the user's account is not zero.",
                            "type": "text/plain"
                        },
                        "url": {
                            "path": [
                                "users",
                                ":id"
                            ],
                            "host": [
                                "{{baseUrl}}"
                            ],
                            "query": [],
                            "variable": [
                                {
                                    "type": "any",
                                    "value": "5",
                                    "key": "id",
                                    "disabled": false,
                                    "description": {
                                        "content": "(Required) The id of the user",
                                        "type": "text/plain"
                                    }
                                }
                            ]
                        },
                        "header": [
                            {
                                "disabled": true,
                                "description": {
                                    "content": "Your own id for the request, at most 64 printable characters. It is returned with the reply. If you send none, one is made for you.",
                                    "type": "text/plain"
                                },
                                "key": "Request-Id",
                                "value": "import-2026-10-05-0001"
                            },
                            {
                                "key": "Accept",
                                "value": "application/problem+json"
                            }
                        ],
                        "method": "DELETE",
                        "body": [],
                        "auth": null
                    },
                    "response": [],
                    "event": [],
                    "protocolProfileBehavior": {
                        "disableBodyPruning": true
                    }
                }
            ]
        },
        {
            "name": "Memberships",
            "description": "The organization's membership types",
            "item": [
                {
                    "name": "List memberships",
                    "request": {
                        "name": "List memberships",
                        "description": {
                            "content": "The organization's membership types, sorted by name. Needs read access to the module users.",
                            "type": "text/plain"
                        },
                        "url": {
                            "path": [
                                "memberships"
                            ],
                            "host": [
                                "{{baseUrl}}"
                            ],
                            "query": [
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Text search on the name. * stands for any characters.",
                                        "type": "text/plain"
                                    },
                                    "key": "name",
                                    "value": "Senior"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Optional block. users adds the list of users to each item.",
                                        "type": "text/plain"
                                    },
                                    "key": "include",
                                    "value": "users"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Fields to leave out of every item, separated by commas.",
                                        "type": "text/plain"
                                    },
                                    "key": "exclude",
                                    "value": "name"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "How many items to return",
                                        "type": "text/plain"
                                    },
                                    "key": "limit",
                                    "value": "100"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "How many items to skip. The address of the next page is ready-made in links.next.",
                                        "type": "text/plain"
                                    },
                                    "key": "offset",
                                    "value": "0"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "true adds meta.total, the number of all items that match the filters. It costs an extra database query, so ask for it on the first page only.",
                                        "type": "text/plain"
                                    },
                                    "key": "include_total",
                                    "value": "false"
                                }
                            ],
                            "variable": []
                        },
                        "header": [
                            {
                                "disabled": true,
                                "description": {
                                    "content": "Your own id for the request, at most 64 printable characters. It is returned with the reply. If you send none, one is made for you.",
                                    "type": "text/plain"
                                },
                                "key": "Request-Id",
                                "value": "import-2026-10-05-0001"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            }
                        ],
                        "method": "GET",
                        "body": [],
                        "auth": null
                    },
                    "response": [],
                    "event": [],
                    "protocolProfileBehavior": {
                        "disableBodyPruning": true
                    }
                },
                {
                    "name": "One membership",
                    "request": {
                        "name": "One membership",
                        "description": {
                            "content": "Needs read access to the module users.",
                            "type": "text/plain"
                        },
                        "url": {
                            "path": [
                                "memberships",
                                ":id"
                            ],
                            "host": [
                                "{{baseUrl}}"
                            ],
                            "query": [
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Optional block. users adds the list of users to each item.",
                                        "type": "text/plain"
                                    },
                                    "key": "include",
                                    "value": "users"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Fields to leave out of every item, separated by commas.",
                                        "type": "text/plain"
                                    },
                                    "key": "exclude",
                                    "value": "name"
                                }
                            ],
                            "variable": [
                                {
                                    "type": "any",
                                    "value": "5",
                                    "key": "id",
                                    "disabled": false,
                                    "description": {
                                        "content": "(Required) The id of the item",
                                        "type": "text/plain"
                                    }
                                }
                            ]
                        },
                        "header": [
                            {
                                "disabled": true,
                                "description": {
                                    "content": "Your own id for the request, at most 64 printable characters. It is returned with the reply. If you send none, one is made for you.",
                                    "type": "text/plain"
                                },
                                "key": "Request-Id",
                                "value": "import-2026-10-05-0001"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            }
                        ],
                        "method": "GET",
                        "body": [],
                        "auth": null
                    },
                    "response": [],
                    "event": [],
                    "protocolProfileBehavior": {
                        "disableBodyPruning": true
                    }
                }
            ]
        },
        {
            "name": "User groups",
            "description": "The organization's own groups of users",
            "item": [
                {
                    "name": "List user groups",
                    "request": {
                        "name": "List user groups",
                        "description": {
                            "content": "The organization's own groups of users, sorted by name. Needs read access to the module users.",
                            "type": "text/plain"
                        },
                        "url": {
                            "path": [
                                "user-groups"
                            ],
                            "host": [
                                "{{baseUrl}}"
                            ],
                            "query": [
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Text search on the name. * stands for any characters.",
                                        "type": "text/plain"
                                    },
                                    "key": "name",
                                    "value": "Pilots"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Optional block. users adds the list of users to each item.",
                                        "type": "text/plain"
                                    },
                                    "key": "include",
                                    "value": "users"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Fields to leave out of every item, separated by commas.",
                                        "type": "text/plain"
                                    },
                                    "key": "exclude",
                                    "value": "name"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "How many items to return",
                                        "type": "text/plain"
                                    },
                                    "key": "limit",
                                    "value": "100"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "How many items to skip. The address of the next page is ready-made in links.next.",
                                        "type": "text/plain"
                                    },
                                    "key": "offset",
                                    "value": "0"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "true adds meta.total, the number of all items that match the filters. It costs an extra database query, so ask for it on the first page only.",
                                        "type": "text/plain"
                                    },
                                    "key": "include_total",
                                    "value": "false"
                                }
                            ],
                            "variable": []
                        },
                        "header": [
                            {
                                "disabled": true,
                                "description": {
                                    "content": "Your own id for the request, at most 64 printable characters. It is returned with the reply. If you send none, one is made for you.",
                                    "type": "text/plain"
                                },
                                "key": "Request-Id",
                                "value": "import-2026-10-05-0001"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            }
                        ],
                        "method": "GET",
                        "body": [],
                        "auth": null
                    },
                    "response": [],
                    "event": [],
                    "protocolProfileBehavior": {
                        "disableBodyPruning": true
                    }
                },
                {
                    "name": "One user group",
                    "request": {
                        "name": "One user group",
                        "description": {
                            "content": "Needs read access to the module users.",
                            "type": "text/plain"
                        },
                        "url": {
                            "path": [
                                "user-groups",
                                ":id"
                            ],
                            "host": [
                                "{{baseUrl}}"
                            ],
                            "query": [
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Optional block. users adds the list of users to each item.",
                                        "type": "text/plain"
                                    },
                                    "key": "include",
                                    "value": "users"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Fields to leave out of every item, separated by commas.",
                                        "type": "text/plain"
                                    },
                                    "key": "exclude",
                                    "value": "name"
                                }
                            ],
                            "variable": [
                                {
                                    "type": "any",
                                    "value": "5",
                                    "key": "id",
                                    "disabled": false,
                                    "description": {
                                        "content": "(Required) The id of the item",
                                        "type": "text/plain"
                                    }
                                }
                            ]
                        },
                        "header": [
                            {
                                "disabled": true,
                                "description": {
                                    "content": "Your own id for the request, at most 64 printable characters. It is returned with the reply. If you send none, one is made for you.",
                                    "type": "text/plain"
                                },
                                "key": "Request-Id",
                                "value": "import-2026-10-05-0001"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            }
                        ],
                        "method": "GET",
                        "body": [],
                        "auth": null
                    },
                    "response": [],
                    "event": [],
                    "protocolProfileBehavior": {
                        "disableBodyPruning": true
                    }
                }
            ]
        },
        {
            "name": "Expiry dates",
            "description": "The organization's types of expiry date, such as a medical or a licence, and the users' dates of them",
            "item": [
                {
                    "name": "Every member's expiry dates",
                    "request": {
                        "name": "Every member's expiry dates",
                        "description": {
                            "content": "The dates of the organization's members, one item per date, the earliest date first: for reports and reminders. Only dates that exist are listed; a member who has no date of a type is not (GET /users?include=expiry_dates shows that). Needs read access to the module users.",
                            "type": "text/plain"
                        },
                        "url": {
                            "path": [
                                "expiry-dates"
                            ],
                            "host": [
                                "{{baseUrl}}"
                            ],
                            "query": [
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Only the dates of this expiry date type",
                                        "type": "text/plain"
                                    },
                                    "key": "type_id",
                                    "value": "12"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Only this user's dates",
                                        "type": "text/plain"
                                    },
                                    "key": "user_id",
                                    "value": "5"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Only the dates of active (true) or inactive (false) members",
                                        "type": "text/plain"
                                    },
                                    "key": "active",
                                    "value": "true"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Only dates that have passed (true) or have not (false)",
                                        "type": "text/plain"
                                    },
                                    "key": "expired",
                                    "value": "true"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Only dates on or after this day",
                                        "type": "text/plain"
                                    },
                                    "key": "expiry_date_from",
                                    "value": "2026-11-01"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Only dates on or before this day",
                                        "type": "text/plain"
                                    },
                                    "key": "expiry_date_to",
                                    "value": "2026-11-30"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Fields to leave out of every item, separated by commas.",
                                        "type": "text/plain"
                                    },
                                    "key": "exclude",
                                    "value": "image_required,has_image"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "How many items to return",
                                        "type": "text/plain"
                                    },
                                    "key": "limit",
                                    "value": "100"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "How many items to skip. The address of the next page is ready-made in links.next.",
                                        "type": "text/plain"
                                    },
                                    "key": "offset",
                                    "value": "0"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "true adds meta.total, the number of all items that match the filters. It costs an extra database query, so ask for it on the first page only.",
                                        "type": "text/plain"
                                    },
                                    "key": "include_total",
                                    "value": "false"
                                }
                            ],
                            "variable": []
                        },
                        "header": [
                            {
                                "disabled": true,
                                "description": {
                                    "content": "Your own id for the request, at most 64 printable characters. It is returned with the reply. If you send none, one is made for you.",
                                    "type": "text/plain"
                                },
                                "key": "Request-Id",
                                "value": "import-2026-10-05-0001"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            }
                        ],
                        "method": "GET",
                        "body": [],
                        "auth": null
                    },
                    "response": [],
                    "event": [],
                    "protocolProfileBehavior": {
                        "disableBodyPruning": true
                    }
                },
                {
                    "name": "A user's expiry dates",
                    "request": {
                        "name": "A user's expiry dates",
                        "description": {
                            "content": "Every expiry date type of the organization, with the user's date of it, or none (expiry_date null), as the member card shows them. Sorted by the name of the type. Needs read access to the module users.",
                            "type": "text/plain"
                        },
                        "url": {
                            "path": [
                                "users",
                                ":id",
                                "expiry-dates"
                            ],
                            "host": [
                                "{{baseUrl}}"
                            ],
                            "query": [
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Fields to leave out of every expiry date, separated by commas.",
                                        "type": "text/plain"
                                    },
                                    "key": "exclude",
                                    "value": "image_required,has_image"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "How many items to return",
                                        "type": "text/plain"
                                    },
                                    "key": "limit",
                                    "value": "100"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "How many items to skip. The address of the next page is ready-made in links.next.",
                                        "type": "text/plain"
                                    },
                                    "key": "offset",
                                    "value": "0"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "true adds meta.total, the number of all items that match the filters. It costs an extra database query, so ask for it on the first page only.",
                                        "type": "text/plain"
                                    },
                                    "key": "include_total",
                                    "value": "false"
                                }
                            ],
                            "variable": [
                                {
                                    "type": "any",
                                    "value": "5",
                                    "key": "id",
                                    "disabled": false,
                                    "description": {
                                        "content": "(Required) The id of the user",
                                        "type": "text/plain"
                                    }
                                }
                            ]
                        },
                        "header": [
                            {
                                "disabled": true,
                                "description": {
                                    "content": "Your own id for the request, at most 64 printable characters. It is returned with the reply. If you send none, one is made for you.",
                                    "type": "text/plain"
                                },
                                "key": "Request-Id",
                                "value": "import-2026-10-05-0001"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            }
                        ],
                        "method": "GET",
                        "body": [],
                        "auth": null
                    },
                    "response": [],
                    "event": [],
                    "protocolProfileBehavior": {
                        "disableBodyPruning": true
                    }
                },
                {
                    "name": "Set a user's expiry date",
                    "request": {
                        "name": "Set a user's expiry date",
                        "description": {
                            "content": "Sets the user's date of the type: creates it, or changes it. The same as saving the date on the member card: a changed date gets its reminder emails again, and its image (scanned copy) is removed, since it proved the old date. The same date again saves nothing. 2999-12-31 means \"never expires\" and is only accepted when the type has may_never_expire. A date that has passed is accepted. Needs write access to the module users. Whether members may change the date themselves (members_can_change) does not apply: the API works as the member card. The reply is always 200, also when the date is new.",
                            "type": "text/plain"
                        },
                        "url": {
                            "path": [
                                "users",
                                ":id",
                                "expiry-dates",
                                ":type_id"
                            ],
                            "host": [
                                "{{baseUrl}}"
                            ],
                            "query": [
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Fields to leave out of every expiry date, separated by commas.",
                                        "type": "text/plain"
                                    },
                                    "key": "exclude",
                                    "value": "image_required,has_image"
                                }
                            ],
                            "variable": [
                                {
                                    "type": "any",
                                    "value": "5",
                                    "key": "id",
                                    "disabled": false,
                                    "description": {
                                        "content": "(Required) The id of the user",
                                        "type": "text/plain"
                                    }
                                },
                                {
                                    "type": "any",
                                    "value": "12",
                                    "key": "type_id",
                                    "disabled": false,
                                    "description": {
                                        "content": "(Required) The id of the expiry date type",
                                        "type": "text/plain"
                                    }
                                }
                            ]
                        },
                        "header": [
                            {
                                "disabled": true,
                                "description": {
                                    "content": "Your own id for the request, at most 64 printable characters. It is returned with the reply. If you send none, one is made for you.",
                                    "type": "text/plain"
                                },
                                "key": "Request-Id",
                                "value": "import-2026-10-05-0001"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            }
                        ],
                        "method": "PUT",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n  \"expiry_date\": \"2027-03-31\"\n}",
                            "options": {
                                "raw": {
                                    "headerFamily": "json",
                                    "language": "json"
                                }
                            }
                        },
                        "auth": null
                    },
                    "response": [],
                    "event": [],
                    "protocolProfileBehavior": {
                        "disableBodyPruning": true
                    }
                },
                {
                    "name": "Remove a user's expiry date",
                    "request": {
                        "name": "Remove a user's expiry date",
                        "description": {
                            "content": "Removes the user's date of the type, and its image, as emptying the date on the member card does. 404 when the user has no date of the type. Needs write access to the module users.",
                            "type": "text/plain"
                        },
                        "url": {
                            "path": [
                                "users",
                                ":id",
                                "expiry-dates",
                                ":type_id"
                            ],
                            "host": [
                                "{{baseUrl}}"
                            ],
                            "query": [],
                            "variable": [
                                {
                                    "type": "any",
                                    "value": "5",
                                    "key": "id",
                                    "disabled": false,
                                    "description": {
                                        "content": "(Required) The id of the user",
                                        "type": "text/plain"
                                    }
                                },
                                {
                                    "type": "any",
                                    "value": "12",
                                    "key": "type_id",
                                    "disabled": false,
                                    "description": {
                                        "content": "(Required) The id of the expiry date type",
                                        "type": "text/plain"
                                    }
                                }
                            ]
                        },
                        "header": [
                            {
                                "disabled": true,
                                "description": {
                                    "content": "Your own id for the request, at most 64 printable characters. It is returned with the reply. If you send none, one is made for you.",
                                    "type": "text/plain"
                                },
                                "key": "Request-Id",
                                "value": "import-2026-10-05-0001"
                            },
                            {
                                "key": "Accept",
                                "value": "application/problem+json"
                            }
                        ],
                        "method": "DELETE",
                        "body": [],
                        "auth": null
                    },
                    "response": [],
                    "event": [],
                    "protocolProfileBehavior": {
                        "disableBodyPruning": true
                    }
                },
                {
                    "name": "List expiry date types",
                    "request": {
                        "name": "List expiry date types",
                        "description": {
                            "content": "The organization's types of expiry date, sorted by name. On the website they are set up under Settings, Expiry dates. Needs read access to the module organization_settings.",
                            "type": "text/plain"
                        },
                        "url": {
                            "path": [
                                "expiry-date-types"
                            ],
                            "host": [
                                "{{baseUrl}}"
                            ],
                            "query": [
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Text search on the name. * stands for any characters.",
                                        "type": "text/plain"
                                    },
                                    "key": "name",
                                    "value": "Medical*"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Fields to leave out of every expiry date type, separated by commas.",
                                        "type": "text/plain"
                                    },
                                    "key": "exclude",
                                    "value": "booking,reminders"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "How many items to return",
                                        "type": "text/plain"
                                    },
                                    "key": "limit",
                                    "value": "100"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "How many items to skip. The address of the next page is ready-made in links.next.",
                                        "type": "text/plain"
                                    },
                                    "key": "offset",
                                    "value": "0"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "true adds meta.total, the number of all items that match the filters. It costs an extra database query, so ask for it on the first page only.",
                                        "type": "text/plain"
                                    },
                                    "key": "include_total",
                                    "value": "false"
                                }
                            ],
                            "variable": []
                        },
                        "header": [
                            {
                                "disabled": true,
                                "description": {
                                    "content": "Your own id for the request, at most 64 printable characters. It is returned with the reply. If you send none, one is made for you.",
                                    "type": "text/plain"
                                },
                                "key": "Request-Id",
                                "value": "import-2026-10-05-0001"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            }
                        ],
                        "method": "GET",
                        "body": [],
                        "auth": null
                    },
                    "response": [],
                    "event": [],
                    "protocolProfileBehavior": {
                        "disableBodyPruning": true
                    }
                },
                {
                    "name": "Create an expiry date type",
                    "request": {
                        "name": "Create an expiry date type",
                        "description": {
                            "content": "A field that is left out gets what the website's empty form gives: false, no excluded objects, and reminders 30 days before the date. Needs write access to the module organization_settings.\n\n409 with code 10030 when another type of the organization has the same name, also written with other upper and lower case letters (errors names the field).",
                            "type": "text/plain"
                        },
                        "url": {
                            "path": [
                                "expiry-date-types"
                            ],
                            "host": [
                                "{{baseUrl}}"
                            ],
                            "query": [
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Fields to leave out of every expiry date type, separated by commas.",
                                        "type": "text/plain"
                                    },
                                    "key": "exclude",
                                    "value": "booking,reminders"
                                }
                            ],
                            "variable": []
                        },
                        "header": [
                            {
                                "disabled": true,
                                "description": {
                                    "content": "Your own id for the request, at most 64 printable characters. It is returned with the reply. If you send none, one is made for you.",
                                    "type": "text/plain"
                                },
                                "key": "Request-Id",
                                "value": "import-2026-10-05-0001"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            }
                        ],
                        "method": "POST",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n  \"name\": \"Medical class 2\",\n  \"image_required\": true,\n  \"booking\": {\n    \"required\": true,\n    \"excluded_object_ids\": [\n      26\n    ]\n  },\n  \"reminders\": {\n    \"at_login\": true,\n    \"days_before\": 60\n  }\n}",
                            "options": {
                                "raw": {
                                    "headerFamily": "json",
                                    "language": "json"
                                }
                            }
                        },
                        "auth": null
                    },
                    "response": [],
                    "event": [],
                    "protocolProfileBehavior": {
                        "disableBodyPruning": true
                    }
                },
                {
                    "name": "One expiry date type",
                    "request": {
                        "name": "One expiry date type",
                        "description": {
                            "content": "Needs read access to the module organization_settings.",
                            "type": "text/plain"
                        },
                        "url": {
                            "path": [
                                "expiry-date-types",
                                ":id"
                            ],
                            "host": [
                                "{{baseUrl}}"
                            ],
                            "query": [
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Fields to leave out of every expiry date type, separated by commas.",
                                        "type": "text/plain"
                                    },
                                    "key": "exclude",
                                    "value": "booking,reminders"
                                }
                            ],
                            "variable": [
                                {
                                    "type": "any",
                                    "value": "5",
                                    "key": "id",
                                    "disabled": false,
                                    "description": {
                                        "content": "(Required) The id of the item",
                                        "type": "text/plain"
                                    }
                                }
                            ]
                        },
                        "header": [
                            {
                                "disabled": true,
                                "description": {
                                    "content": "Your own id for the request, at most 64 printable characters. It is returned with the reply. If you send none, one is made for you.",
                                    "type": "text/plain"
                                },
                                "key": "Request-Id",
                                "value": "import-2026-10-05-0001"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            }
                        ],
                        "method": "GET",
                        "body": [],
                        "auth": null
                    },
                    "response": [],
                    "event": [],
                    "protocolProfileBehavior": {
                        "disableBodyPruning": true
                    }
                },
                {
                    "name": "Change an expiry date type",
                    "request": {
                        "name": "Change an expiry date type",
                        "description": {
                            "content": "Changes the settings that are sent and leaves the others as they are. The name cannot be changed, as on the website. excluded_object_ids replaces the whole list. Turning image_required on makes every member who has a date of the type but no image count as expired at once, as on the website. Needs write access to the module organization_settings.\n\n400 with code 10105 when the body has no fields.",
                            "type": "text/plain"
                        },
                        "url": {
                            "path": [
                                "expiry-date-types",
                                ":id"
                            ],
                            "host": [
                                "{{baseUrl}}"
                            ],
                            "query": [
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Fields to leave out of every expiry date type, separated by commas.",
                                        "type": "text/plain"
                                    },
                                    "key": "exclude",
                                    "value": "booking,reminders"
                                }
                            ],
                            "variable": [
                                {
                                    "type": "any",
                                    "value": "5",
                                    "key": "id",
                                    "disabled": false,
                                    "description": {
                                        "content": "(Required) The id of the item",
                                        "type": "text/plain"
                                    }
                                }
                            ]
                        },
                        "header": [
                            {
                                "disabled": true,
                                "description": {
                                    "content": "Your own id for the request, at most 64 printable characters. It is returned with the reply. If you send none, one is made for you.",
                                    "type": "text/plain"
                                },
                                "key": "Request-Id",
                                "value": "import-2026-10-05-0001"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            }
                        ],
                        "method": "PATCH",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n  \"booking\": {\n    \"warning_only\": true\n  },\n  \"reminders\": {\n    \"days_before\": 30\n  }\n}",
                            "options": {
                                "raw": {
                                    "headerFamily": "json",
                                    "language": "json"
                                }
                            }
                        },
                        "auth": null
                    },
                    "response": [],
                    "event": [],
                    "protocolProfileBehavior": {
                        "disableBodyPruning": true
                    }
                },
                {
                    "name": "Delete an expiry date type",
                    "request": {
                        "name": "Delete an expiry date type",
                        "description": {
                            "content": "The members' dates of the type, and their images, are deleted with it and cannot be brought back, as on the website. While members have dates of the type, it is only deleted with delete_dependents=true. Needs write access to the module organization_settings.\n\n409 with code 10106 when members have dates of the type and delete_dependents=true is not sent. dependents in the reply says how many (name user_expiry_dates); nothing is deleted.",
                            "type": "text/plain"
                        },
                        "url": {
                            "path": [
                                "expiry-date-types",
                                ":id"
                            ],
                            "host": [
                                "{{baseUrl}}"
                            ],
                            "query": [
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "true to delete the members' dates of the type (and their images) together with it. Without it, a type that members have dates of is not deleted (409, code 10106).",
                                        "type": "text/plain"
                                    },
                                    "key": "delete_dependents",
                                    "value": "true"
                                }
                            ],
                            "variable": [
                                {
                                    "type": "any",
                                    "value": "5",
                                    "key": "id",
                                    "disabled": false,
                                    "description": {
                                        "content": "(Required) The id of the item",
                                        "type": "text/plain"
                                    }
                                }
                            ]
                        },
                        "header": [
                            {
                                "disabled": true,
                                "description": {
                                    "content": "Your own id for the request, at most 64 printable characters. It is returned with the reply. If you send none, one is made for you.",
                                    "type": "text/plain"
                                },
                                "key": "Request-Id",
                                "value": "import-2026-10-05-0001"
                            },
                            {
                                "key": "Accept",
                                "value": "application/problem+json"
                            }
                        ],
                        "method": "DELETE",
                        "body": [],
                        "auth": null
                    },
                    "response": [],
                    "event": [],
                    "protocolProfileBehavior": {
                        "disableBodyPruning": true
                    }
                }
            ]
        },
        {
            "name": "Objects",
            "description": "Aircraft, equipment and premises that can be booked",
            "item": [
                {
                    "name": "List objects",
                    "request": {
                        "name": "List objects",
                        "description": {
                            "content": "What can be booked: the organization's own aircraft, equipment and premises, and the ones other organizations share with it. Sorted by category, then registration. Needs read access to the module objects.",
                            "type": "text/plain"
                        },
                        "url": {
                            "path": [
                                "objects"
                            ],
                            "host": [
                                "{{baseUrl}}"
                            ],
                            "query": [
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Text search on the registration (for equipment and premises, the name). * stands for any characters.",
                                        "type": "text/plain"
                                    },
                                    "key": "registration",
                                    "value": "SE-*"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Text search on the aircraft type designator. * stands for any characters.",
                                        "type": "text/plain"
                                    },
                                    "key": "type_designator",
                                    "value": "C172"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "0 = aircraft, 1 = equipment, 2 = premises",
                                        "type": "text/plain"
                                    },
                                    "key": "category_id",
                                    "value": "0"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "The id of the organization that owns the object",
                                        "type": "text/plain"
                                    },
                                    "key": "organization_id",
                                    "value": "3"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Text search on the name of the organization that owns the object. * stands for any characters.",
                                        "type": "text/plain"
                                    },
                                    "key": "organization_name",
                                    "value": "*FK"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Active objects only (true) or inactive only (false). Leave out for both.",
                                        "type": "text/plain"
                                    },
                                    "key": "active",
                                    "value": "true"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Optional blocks, separated by commas. Each adds one key with the same name to every object. status, active_remarks and time_summary are worked out the same way as on the website and take the longest to fetch.",
                                        "type": "text/plain"
                                    },
                                    "key": "include",
                                    "value": "status"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Fields to leave out of every object, separated by commas. Only the fields an object always has can be named. A block is left out by not asking for it with include.",
                                        "type": "text/plain"
                                    },
                                    "key": "exclude",
                                    "value": "type_name,comment"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "How many items to return",
                                        "type": "text/plain"
                                    },
                                    "key": "limit",
                                    "value": "100"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "How many items to skip. The address of the next page is ready-made in links.next.",
                                        "type": "text/plain"
                                    },
                                    "key": "offset",
                                    "value": "0"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "true adds meta.total, the number of all items that match the filters. It costs an extra database query, so ask for it on the first page only.",
                                        "type": "text/plain"
                                    },
                                    "key": "include_total",
                                    "value": "false"
                                }
                            ],
                            "variable": []
                        },
                        "header": [
                            {
                                "disabled": true,
                                "description": {
                                    "content": "Your own id for the request, at most 64 printable characters. It is returned with the reply. If you send none, one is made for you.",
                                    "type": "text/plain"
                                },
                                "key": "Request-Id",
                                "value": "import-2026-10-05-0001"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            }
                        ],
                        "method": "GET",
                        "body": [],
                        "auth": null
                    },
                    "response": [],
                    "event": [],
                    "protocolProfileBehavior": {
                        "disableBodyPruning": true
                    }
                },
                {
                    "name": "One object",
                    "request": {
                        "name": "One object",
                        "description": {
                            "content": "Needs read access to the module objects.",
                            "type": "text/plain"
                        },
                        "url": {
                            "path": [
                                "objects",
                                ":id"
                            ],
                            "host": [
                                "{{baseUrl}}"
                            ],
                            "query": [
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Optional blocks, separated by commas. Each adds one key with the same name to every object. status, active_remarks and time_summary are worked out the same way as on the website and take the longest to fetch.",
                                        "type": "text/plain"
                                    },
                                    "key": "include",
                                    "value": "status"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Fields to leave out of every object, separated by commas. Only the fields an object always has can be named. A block is left out by not asking for it with include.",
                                        "type": "text/plain"
                                    },
                                    "key": "exclude",
                                    "value": "type_name,comment"
                                }
                            ],
                            "variable": [
                                {
                                    "type": "any",
                                    "value": "5",
                                    "key": "id",
                                    "disabled": false,
                                    "description": {
                                        "content": "(Required) The id of the item",
                                        "type": "text/plain"
                                    }
                                }
                            ]
                        },
                        "header": [
                            {
                                "disabled": true,
                                "description": {
                                    "content": "Your own id for the request, at most 64 printable characters. It is returned with the reply. If you send none, one is made for you.",
                                    "type": "text/plain"
                                },
                                "key": "Request-Id",
                                "value": "import-2026-10-05-0001"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            }
                        ],
                        "method": "GET",
                        "body": [],
                        "auth": null
                    },
                    "response": [],
                    "event": [],
                    "protocolProfileBehavior": {
                        "disableBodyPruning": true
                    }
                }
            ]
        },
        {
            "name": "Bookings",
            "description": "Bookings of objects",
            "item": [
                {
                    "name": "List bookings",
                    "request": {
                        "name": "List bookings",
                        "description": {
                            "content": "The bookings of the organization's own objects and of the objects shared with it, sorted by start time. The email and mobile number of the booker and the student follow each member's own settings, as in the booking calendar: what a member has chosen not to show is null. Needs read access to the module bookings.",
                            "type": "text/plain"
                        },
                        "url": {
                            "path": [
                                "bookings"
                            ],
                            "host": [
                                "{{baseUrl}}"
                            ],
                            "query": [
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Bookings that end on this date or later (local date)",
                                        "type": "text/plain"
                                    },
                                    "key": "date_from",
                                    "value": "2026-10-01"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Bookings that start on this date or earlier (local date)",
                                        "type": "text/plain"
                                    },
                                    "key": "date_to",
                                    "value": "2026-10-31"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "",
                                        "type": "text/plain"
                                    },
                                    "key": "object_id",
                                    "value": "24"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Text search on the registration of the object. * stands for any characters.",
                                        "type": "text/plain"
                                    },
                                    "key": "object_registration",
                                    "value": "SE-ABC"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "The id of the organization that owns the object",
                                        "type": "text/plain"
                                    },
                                    "key": "object_organization_id",
                                    "value": "3"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "0 = aircraft, 1 = equipment, 2 = premises",
                                        "type": "text/plain"
                                    },
                                    "key": "object_category_id",
                                    "value": "0"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "The id of the booker",
                                        "type": "text/plain"
                                    },
                                    "key": "user_id",
                                    "value": "5"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Text search on the name of the booker. * stands for any characters.",
                                        "type": "text/plain"
                                    },
                                    "key": "user_name",
                                    "value": "Anna*"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "",
                                        "type": "text/plain"
                                    },
                                    "key": "student_id",
                                    "value": "9"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Text search on the name of the student. * stands for any characters.",
                                        "type": "text/plain"
                                    },
                                    "key": "student_name",
                                    "value": "Carl*"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Primary bookings only (true) or the others only (false). Leave out for both.",
                                        "type": "text/plain"
                                    },
                                    "key": "is_primary",
                                    "value": "true"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Fields to leave out of every booking, separated by commas.",
                                        "type": "text/plain"
                                    },
                                    "key": "exclude",
                                    "value": "student,comment"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "How many items to return",
                                        "type": "text/plain"
                                    },
                                    "key": "limit",
                                    "value": "100"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "How many items to skip. The address of the next page is ready-made in links.next.",
                                        "type": "text/plain"
                                    },
                                    "key": "offset",
                                    "value": "0"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "true adds meta.total, the number of all items that match the filters. It costs an extra database query, so ask for it on the first page only.",
                                        "type": "text/plain"
                                    },
                                    "key": "include_total",
                                    "value": "false"
                                }
                            ],
                            "variable": []
                        },
                        "header": [
                            {
                                "disabled": true,
                                "description": {
                                    "content": "Your own id for the request, at most 64 printable characters. It is returned with the reply. If you send none, one is made for you.",
                                    "type": "text/plain"
                                },
                                "key": "Request-Id",
                                "value": "import-2026-10-05-0001"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            }
                        ],
                        "method": "GET",
                        "body": [],
                        "auth": null
                    },
                    "response": [],
                    "event": [],
                    "protocolProfileBehavior": {
                        "disableBodyPruning": true
                    }
                },
                {
                    "name": "One booking",
                    "request": {
                        "name": "One booking",
                        "description": {
                            "content": "Needs read access to the module bookings.",
                            "type": "text/plain"
                        },
                        "url": {
                            "path": [
                                "bookings",
                                ":id"
                            ],
                            "host": [
                                "{{baseUrl}}"
                            ],
                            "query": [
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Fields to leave out of every booking, separated by commas.",
                                        "type": "text/plain"
                                    },
                                    "key": "exclude",
                                    "value": "student,comment"
                                }
                            ],
                            "variable": [
                                {
                                    "type": "any",
                                    "value": "5",
                                    "key": "id",
                                    "disabled": false,
                                    "description": {
                                        "content": "(Required) The id of the item",
                                        "type": "text/plain"
                                    }
                                }
                            ]
                        },
                        "header": [
                            {
                                "disabled": true,
                                "description": {
                                    "content": "Your own id for the request, at most 64 printable characters. It is returned with the reply. If you send none, one is made for you.",
                                    "type": "text/plain"
                                },
                                "key": "Request-Id",
                                "value": "import-2026-10-05-0001"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            }
                        ],
                        "method": "GET",
                        "body": [],
                        "auth": null
                    },
                    "response": [],
                    "event": [],
                    "protocolProfileBehavior": {
                        "disableBodyPruning": true
                    }
                }
            ]
        },
        {
            "name": "Flight log",
            "description": "Logged flights, flight types, and which flight types a user may log",
            "item": [
                {
                    "name": "The flight types a user may log",
                    "request": {
                        "name": "The flight types a user may log",
                        "description": {
                            "content": "The objects the user may log flights on, each with the flight types the user may use on it. The rules are the same as when the member logs a flight on the website. Needs read access to the module flightlogs.",
                            "type": "text/plain"
                        },
                        "url": {
                            "path": [
                                "users",
                                ":id",
                                "approved-flight-types"
                            ],
                            "host": [
                                "{{baseUrl}}"
                            ],
                            "query": [
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Fields to leave out of every item, separated by commas.",
                                        "type": "text/plain"
                                    },
                                    "key": "exclude",
                                    "value": "flight_types"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "How many items to return",
                                        "type": "text/plain"
                                    },
                                    "key": "limit",
                                    "value": "100"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "How many items to skip. The address of the next page is ready-made in links.next.",
                                        "type": "text/plain"
                                    },
                                    "key": "offset",
                                    "value": "0"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "true adds meta.total, the number of all items that match the filters. It costs an extra database query, so ask for it on the first page only.",
                                        "type": "text/plain"
                                    },
                                    "key": "include_total",
                                    "value": "false"
                                }
                            ],
                            "variable": [
                                {
                                    "type": "any",
                                    "value": "5",
                                    "key": "id",
                                    "disabled": false,
                                    "description": {
                                        "content": "(Required) The id of the user",
                                        "type": "text/plain"
                                    }
                                }
                            ]
                        },
                        "header": [
                            {
                                "disabled": true,
                                "description": {
                                    "content": "Your own id for the request, at most 64 printable characters. It is returned with the reply. If you send none, one is made for you.",
                                    "type": "text/plain"
                                },
                                "key": "Request-Id",
                                "value": "import-2026-10-05-0001"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            }
                        ],
                        "method": "GET",
                        "body": [],
                        "auth": null
                    },
                    "response": [],
                    "event": [],
                    "protocolProfileBehavior": {
                        "disableBodyPruning": true
                    }
                },
                {
                    "name": "List logged flights",
                    "request": {
                        "name": "List logged flights",
                        "description": {
                            "content": "The flights logged on the organization's own objects, oldest first. An organization can hide the pilot in its log. For such a flight crew_hidden is true, the pilot, instructor and scout are null, the crew filters never match it, and has_instructor counts it as a flight without an instructor. Needs read access to the module flightlogs.",
                            "type": "text/plain"
                        },
                        "url": {
                            "path": [
                                "flightlogs"
                            ],
                            "host": [
                                "{{baseUrl}}"
                            ],
                            "query": [
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Flights on this date or later",
                                        "type": "text/plain"
                                    },
                                    "key": "date_from",
                                    "value": "2026-10-01"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Flights on this date or earlier",
                                        "type": "text/plain"
                                    },
                                    "key": "date_to",
                                    "value": "2026-10-31"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "",
                                        "type": "text/plain"
                                    },
                                    "key": "object_id",
                                    "value": "24"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Text search on the registration of the object. * stands for any characters.",
                                        "type": "text/plain"
                                    },
                                    "key": "object_registration",
                                    "value": "SE-ABC"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "",
                                        "type": "text/plain"
                                    },
                                    "key": "object_organization_id",
                                    "value": "3"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Text search. * stands for any characters.",
                                        "type": "text/plain"
                                    },
                                    "key": "object_organization_name",
                                    "value": "*FK"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Text search on the ICAO code of the departure airport. * stands for any characters.",
                                        "type": "text/plain"
                                    },
                                    "key": "departure_icao",
                                    "value": "ESMS"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Text search on the ICAO code of the arrival airport. * stands for any characters.",
                                        "type": "text/plain"
                                    },
                                    "key": "arrival_icao",
                                    "value": "ESMK"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "",
                                        "type": "text/plain"
                                    },
                                    "key": "pilot_id",
                                    "value": "5"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Text search. * stands for any characters.",
                                        "type": "text/plain"
                                    },
                                    "key": "pilot_name",
                                    "value": "Anna*"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Text search. * stands for any characters.",
                                        "type": "text/plain"
                                    },
                                    "key": "pilot_member_number",
                                    "value": "007"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "",
                                        "type": "text/plain"
                                    },
                                    "key": "instructor_id",
                                    "value": "7"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Text search. * stands for any characters.",
                                        "type": "text/plain"
                                    },
                                    "key": "instructor_name",
                                    "value": "Eva*"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Text search. * stands for any characters.",
                                        "type": "text/plain"
                                    },
                                    "key": "instructor_member_number",
                                    "value": "101"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Flights with an instructor only (true) or without only (false). Leave out for both.",
                                        "type": "text/plain"
                                    },
                                    "key": "has_instructor",
                                    "value": "true"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "",
                                        "type": "text/plain"
                                    },
                                    "key": "scout_id",
                                    "value": "9"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Text search. * stands for any characters.",
                                        "type": "text/plain"
                                    },
                                    "key": "scout_name",
                                    "value": "Carl*"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Text search. * stands for any characters.",
                                        "type": "text/plain"
                                    },
                                    "key": "scout_member_number",
                                    "value": "103"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Flights with a remark only (true) or without only (false). Leave out for both.",
                                        "type": "text/plain"
                                    },
                                    "key": "has_remark",
                                    "value": "true"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "",
                                        "type": "text/plain"
                                    },
                                    "key": "remark_id",
                                    "value": "1"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Fields to leave out of every flight, separated by commas.",
                                        "type": "text/plain"
                                    },
                                    "key": "exclude",
                                    "value": "uplift,totals"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "How many items to return",
                                        "type": "text/plain"
                                    },
                                    "key": "limit",
                                    "value": "100"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "How many items to skip. The address of the next page is ready-made in links.next.",
                                        "type": "text/plain"
                                    },
                                    "key": "offset",
                                    "value": "0"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "true adds meta.total, the number of all items that match the filters. It costs an extra database query, so ask for it on the first page only.",
                                        "type": "text/plain"
                                    },
                                    "key": "include_total",
                                    "value": "false"
                                }
                            ],
                            "variable": []
                        },
                        "header": [
                            {
                                "disabled": true,
                                "description": {
                                    "content": "Your own id for the request, at most 64 printable characters. It is returned with the reply. If you send none, one is made for you.",
                                    "type": "text/plain"
                                },
                                "key": "Request-Id",
                                "value": "import-2026-10-05-0001"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            }
                        ],
                        "method": "GET",
                        "body": [],
                        "auth": null
                    },
                    "response": [],
                    "event": [],
                    "protocolProfileBehavior": {
                        "disableBodyPruning": true
                    }
                },
                {
                    "name": "One logged flight",
                    "request": {
                        "name": "One logged flight",
                        "description": {
                            "content": "Needs read access to the module flightlogs.",
                            "type": "text/plain"
                        },
                        "url": {
                            "path": [
                                "flightlogs",
                                ":id"
                            ],
                            "host": [
                                "{{baseUrl}}"
                            ],
                            "query": [
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Fields to leave out of every flight, separated by commas.",
                                        "type": "text/plain"
                                    },
                                    "key": "exclude",
                                    "value": "uplift,totals"
                                }
                            ],
                            "variable": [
                                {
                                    "type": "any",
                                    "value": "5",
                                    "key": "id",
                                    "disabled": false,
                                    "description": {
                                        "content": "(Required) The id of the item",
                                        "type": "text/plain"
                                    }
                                }
                            ]
                        },
                        "header": [
                            {
                                "disabled": true,
                                "description": {
                                    "content": "Your own id for the request, at most 64 printable characters. It is returned with the reply. If you send none, one is made for you.",
                                    "type": "text/plain"
                                },
                                "key": "Request-Id",
                                "value": "import-2026-10-05-0001"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            }
                        ],
                        "method": "GET",
                        "body": [],
                        "auth": null
                    },
                    "response": [],
                    "event": [],
                    "protocolProfileBehavior": {
                        "disableBodyPruning": true
                    }
                },
                {
                    "name": "List flight types",
                    "request": {
                        "name": "List flight types",
                        "description": {
                            "content": "The organization's kinds of flight, such as \"Private\" and \"School\", sorted by name. Needs read access to the module flightlogs.",
                            "type": "text/plain"
                        },
                        "url": {
                            "path": [
                                "flight-types"
                            ],
                            "host": [
                                "{{baseUrl}}"
                            ],
                            "query": [
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Fields to leave out of every item, separated by commas.",
                                        "type": "text/plain"
                                    },
                                    "key": "exclude",
                                    "value": "name"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "How many items to return",
                                        "type": "text/plain"
                                    },
                                    "key": "limit",
                                    "value": "100"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "How many items to skip. The address of the next page is ready-made in links.next.",
                                        "type": "text/plain"
                                    },
                                    "key": "offset",
                                    "value": "0"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "true adds meta.total, the number of all items that match the filters. It costs an extra database query, so ask for it on the first page only.",
                                        "type": "text/plain"
                                    },
                                    "key": "include_total",
                                    "value": "false"
                                }
                            ],
                            "variable": []
                        },
                        "header": [
                            {
                                "disabled": true,
                                "description": {
                                    "content": "Your own id for the request, at most 64 printable characters. It is returned with the reply. If you send none, one is made for you.",
                                    "type": "text/plain"
                                },
                                "key": "Request-Id",
                                "value": "import-2026-10-05-0001"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            }
                        ],
                        "method": "GET",
                        "body": [],
                        "auth": null
                    },
                    "response": [],
                    "event": [],
                    "protocolProfileBehavior": {
                        "disableBodyPruning": true
                    }
                }
            ]
        },
        {
            "name": "Transactions",
            "description": "Charges to and payments into the members' accounts",
            "item": [
                {
                    "name": "List transactions",
                    "request": {
                        "name": "List transactions",
                        "description": {
                            "content": "What has been charged to and paid into the members' accounts with the organization, newest first. A negative amount is a charge, a positive amount a payment. Needs read access to the module transactions (called Economy on the website).",
                            "type": "text/plain"
                        },
                        "url": {
                            "path": [
                                "transactions"
                            ],
                            "host": [
                                "{{baseUrl}}"
                            ],
                            "query": [
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "",
                                        "type": "text/plain"
                                    },
                                    "key": "user_id",
                                    "value": "5"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Text search on the member's full name. * stands for any characters.",
                                        "type": "text/plain"
                                    },
                                    "key": "user_name",
                                    "value": "Anna*"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Transactions on this date",
                                        "type": "text/plain"
                                    },
                                    "key": "date",
                                    "value": "2026-10-03"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Transactions on this date or later",
                                        "type": "text/plain"
                                    },
                                    "key": "date_from",
                                    "value": "2026-10-01"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Transactions on this date or earlier",
                                        "type": "text/plain"
                                    },
                                    "key": "date_to",
                                    "value": "2026-10-31"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "The exact amount, with at most two decimals",
                                        "type": "text/plain"
                                    },
                                    "key": "amount",
                                    "value": "-123.5"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Text search on the comment. * stands for any characters.",
                                        "type": "text/plain"
                                    },
                                    "key": "comment",
                                    "value": "Annual fee*"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Text search on the member's external customer number. * stands for any characters.",
                                        "type": "text/plain"
                                    },
                                    "key": "external_customer_number",
                                    "value": "K100"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Optional blocks, separated by commas. Each adds one key with the same name to every transaction, with how the transaction is booked on the organization's accounts.",
                                        "type": "text/plain"
                                    },
                                    "key": "include",
                                    "value": "account_rows"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Fields to leave out of every transaction, separated by commas. Only the fields a transaction always has can be named. A block is left out by not asking for it with include.",
                                        "type": "text/plain"
                                    },
                                    "key": "exclude",
                                    "value": "user,comment"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "How many items to return",
                                        "type": "text/plain"
                                    },
                                    "key": "limit",
                                    "value": "100"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "How many items to skip. The address of the next page is ready-made in links.next.",
                                        "type": "text/plain"
                                    },
                                    "key": "offset",
                                    "value": "0"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "true adds meta.total, the number of all items that match the filters. It costs an extra database query, so ask for it on the first page only.",
                                        "type": "text/plain"
                                    },
                                    "key": "include_total",
                                    "value": "false"
                                }
                            ],
                            "variable": []
                        },
                        "header": [
                            {
                                "disabled": true,
                                "description": {
                                    "content": "Your own id for the request, at most 64 printable characters. It is returned with the reply. If you send none, one is made for you.",
                                    "type": "text/plain"
                                },
                                "key": "Request-Id",
                                "value": "import-2026-10-05-0001"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            }
                        ],
                        "method": "GET",
                        "body": [],
                        "auth": null
                    },
                    "response": [],
                    "event": [],
                    "protocolProfileBehavior": {
                        "disableBodyPruning": true
                    }
                },
                {
                    "name": "Create a transaction",
                    "request": {
                        "name": "Create a transaction",
                        "description": {
                            "content": "Creates a transaction on a member's account. A negative amount is a charge, a positive amount a payment. It can be booked on one debit account and one credit account, with a cost center and a project (accounting). Needs write access to the module transactions (called Economy on the website). The reply is the new transaction, with the blocks asked for with include and without the fields named in exclude.\n\n409 with code 10150 when the date is before the organization's transaction lock date, and with code 10130 when the user already has a transaction with the same date, amount and comment.",
                            "type": "text/plain"
                        },
                        "url": {
                            "path": [
                                "transactions"
                            ],
                            "host": [
                                "{{baseUrl}}"
                            ],
                            "query": [
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Optional blocks, separated by commas. Each adds one key with the same name to every transaction, with how the transaction is booked on the organization's accounts.",
                                        "type": "text/plain"
                                    },
                                    "key": "include",
                                    "value": "account_rows"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Fields to leave out of every transaction, separated by commas. Only the fields a transaction always has can be named. A block is left out by not asking for it with include.",
                                        "type": "text/plain"
                                    },
                                    "key": "exclude",
                                    "value": "user,comment"
                                }
                            ],
                            "variable": []
                        },
                        "header": [
                            {
                                "disabled": true,
                                "description": {
                                    "content": "Your own id for the request, at most 64 printable characters. It is returned with the reply. If you send none, one is made for you.",
                                    "type": "text/plain"
                                },
                                "key": "Request-Id",
                                "value": "import-2026-10-05-0001"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            }
                        ],
                        "method": "POST",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n  \"user_id\": 5,\n  \"date\": \"2026-09-30\",\n  \"amount\": -500,\n  \"comment\": \"Fuel, September\",\n  \"accounting\": {\n    \"amount\": 500,\n    \"debit_account\": \"3011\",\n    \"credit_account\": \"1910\"\n  }\n}",
                            "options": {
                                "raw": {
                                    "headerFamily": "json",
                                    "language": "json"
                                }
                            }
                        },
                        "auth": null
                    },
                    "response": [],
                    "event": [],
                    "protocolProfileBehavior": {
                        "disableBodyPruning": true
                    }
                },
                {
                    "name": "One transaction",
                    "request": {
                        "name": "One transaction",
                        "description": {
                            "content": "Needs read access to the module transactions (called Economy on the website).",
                            "type": "text/plain"
                        },
                        "url": {
                            "path": [
                                "transactions",
                                ":id"
                            ],
                            "host": [
                                "{{baseUrl}}"
                            ],
                            "query": [
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Optional blocks, separated by commas. Each adds one key with the same name to every transaction, with how the transaction is booked on the organization's accounts.",
                                        "type": "text/plain"
                                    },
                                    "key": "include",
                                    "value": "account_rows"
                                },
                                {
                                    "disabled": true,
                                    "description": {
                                        "content": "Fields to leave out of every transaction, separated by commas. Only the fields a transaction always has can be named. A block is left out by not asking for it with include.",
                                        "type": "text/plain"
                                    },
                                    "key": "exclude",
                                    "value": "user,comment"
                                }
                            ],
                            "variable": [
                                {
                                    "type": "any",
                                    "value": "5",
                                    "key": "id",
                                    "disabled": false,
                                    "description": {
                                        "content": "(Required) The id of the item",
                                        "type": "text/plain"
                                    }
                                }
                            ]
                        },
                        "header": [
                            {
                                "disabled": true,
                                "description": {
                                    "content": "Your own id for the request, at most 64 printable characters. It is returned with the reply. If you send none, one is made for you.",
                                    "type": "text/plain"
                                },
                                "key": "Request-Id",
                                "value": "import-2026-10-05-0001"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            }
                        ],
                        "method": "GET",
                        "body": [],
                        "auth": null
                    },
                    "response": [],
                    "event": [],
                    "protocolProfileBehavior": {
                        "disableBodyPruning": true
                    }
                }
            ]
        },
        {
            "name": "Login checks",
            "description": "Lets an organization's own website check a member's username and password",
            "item": [
                {
                    "name": "Check a username and a password",
                    "request": {
                        "name": "Check a username and a password",
                        "description": {
                            "content": "For an organization's own website: tells whether a username and a password are the login of an active member of the token's organization. Needs read access to the module login_checks (called Login check on the website).\n\nThe reply is 200 both when the login is right and when it is wrong; valid says which. 401 only ever concerns the token. The check counts in the website's own limit on failed logins: after too many wrong passwords for a username, the reply is 429 with code 10012 until the time in Retry-After has passed.",
                            "type": "text/plain"
                        },
                        "url": {
                            "path": [
                                "login-checks"
                            ],
                            "host": [
                                "{{baseUrl}}"
                            ],
                            "query": [],
                            "variable": []
                        },
                        "header": [
                            {
                                "disabled": true,
                                "description": {
                                    "content": "Your own id for the request, at most 64 printable characters. It is returned with the reply. If you send none, one is made for you.",
                                    "type": "text/plain"
                                },
                                "key": "Request-Id",
                                "value": "import-2026-10-05-0001"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            }
                        ],
                        "method": "POST",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n  \"username\": \"3-anna\",\n  \"password\": \"string\"\n}",
                            "options": {
                                "raw": {
                                    "headerFamily": "json",
                                    "language": "json"
                                }
                            }
                        },
                        "auth": null
                    },
                    "response": [],
                    "event": [],
                    "protocolProfileBehavior": {
                        "disableBodyPruning": true
                    }
                }
            ]
        }
    ],
    "auth": {
        "type": "bearer",
        "bearer": [
            {
                "type": "any",
                "value": "{{bearerToken}}",
                "key": "token"
            }
        ]
    },
    "event": [],
    "variable": [
        {
            "key": "baseUrl",
            "value": "https://api.myweblog.se/main/v5"
        },
        {
            "key": "bearerToken",
            "value": ""
        }
    ],
    "info": {
        "name": "myWebLog Main API",
        "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
        "description": {
            "content": "The Main API of myWebLog, version 5. It has every function of version 4, in a new form.\n\nThe API is made for calls from a server. A token must never be put in a web page or an app.\n\nAn address never ends with a slash. A query parameter that the endpoint does not have gives 400, and so does a field in a JSON body that the endpoint does not have.\n\nA reply can be made larger and smaller. include adds optional blocks to each item, and exclude leaves out fields that an item otherwise always has. A field named in exclude is missing from the reply, also where a schema here lists it as required.\n\nIn a JSON body a value has the type it has in a reply: a member number or an account number is text, an id is a number, yes or no is true or false, and an amount is a number.",
            "type": "text/plain"
        }
    }
}
