{ "info": { "_postman_id": "3859bdc3-f5f6-46ee-90e3-2faece227ba3", "name": "Passwords for Nextcloud API", "description": "The passwords api allows clients to interact with the Passwords app for Nextcloud.\n\nThe full documentation can be found here:\n[https://git.mdns.eu/nextcloud/passwords/wikis/Developers](https://git.mdns.eu/nextcloud/passwords/wikis/Developers)\n\nYou can set the login data in the variables, as well as any session token if necessary.\n\nIf you're working with e2e, you can log in in the webapp and then use the session token and app token from that session.\n\nThe session token can be found in each request in the X-Api-Session header and the app token can be found in the html source of the page in the meta tag with the name \"pw-api-token\".", "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", "_exporter_id": "31790827", "_collection_link": "https://www.postman.com/itsmemarius/workspace/passwords-for-nextcloud/collection/31790827-3859bdc3-f5f6-46ee-90e3-2faece227ba3?action=share&source=collection_link&creator=31790827" }, "item": [ { "name": "Session API", "item": [ { "name": "Request", "request": { "method": "GET", "header": [ { "key": "X-API-SESSION", "value": "{{http_api_session}}", "type": "text" } ], "url": { "raw": "{{base_url}}/api/1.0/session/request", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "session", "request" ] }, "description": "# The request action\nThe [request action](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Session-Api#the-request-action) returns all requirements that the client must meet in order to open an authenticated session.\n\n#### Arguments\nThere are no arguments for this action.\n\n#### Return value\nThe success status code is `200 Ok`.\nThe returned object only contains a challenge or token if the user has set those up.\nIf nothing is required, the result is an empty object.\n\n| Argument | Type | Description |\n| --- | --- | --- |\n| challenge | object | An object with the [password challenge](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Encryption#password-challenge). The property `type` specifies the challenge type. |\n| token | array | An array with available [2FA token](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Token-Api). One of them must be used. |" }, "response": [] }, { "name": "Open", "request": { "method": "POST", "header": [ { "key": "X-API-SESSION", "value": "{{http_api_session}}", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n // \"challenge\": \"\"\n // \"token\": {\n // \"\": \"\"\n // }\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/api/1.0/session/open", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "session", "open" ] }, "description": "# The open action\nThe [open action](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Session-Api#the-open-action) will open an authenticated session with read and write access to all api endpoints.\n\n#### Arguments\nWhich arguments are required can be found out with the request action.\n\n| Argument | Type | Default | Required | Description |\n| --- | --- | --- | --- | --- |\n| challenge | string | - | yes (if enabled) | The solution of the [password challenge](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Encryption#password-challenge) |\n| token | object | - | yes (if enabled) | An object with the id of the token as property and the token as value |" }, "response": [] }, { "name": "Close", "request": { "method": "GET", "header": [ { "key": "X-API-SESSION", "value": "{{http_api_session}}", "type": "text" } ], "url": { "raw": "{{base_url}}/api/1.0/session/close", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "session", "close" ] }, "description": "# The close action\nThe [close action](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Session-Api#the-close-action) will close the current session.\n\n#### Arguments\nThere are no arguments for this action.\n\n#### Return value\nThe success status code is `200 Ok`.\nThe action will return an object with the property `success` with the value `true`." }, "response": [] }, { "name": "Keepalive", "request": { "method": "GET", "header": [ { "key": "X-API-SESSION", "value": "{{http_api_session}}", "type": "text" } ], "url": { "raw": "{{base_url}}/api/1.0/session/keepalive", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "session", "keepalive" ] }, "description": "# The keepalive action\nThe [keepalive action](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Session-Api#the-keepalive-action) will prevent the session from being closed.\n\n#### Arguments\nThere are no arguments for this action.\n\n#### Return value\nThe success status code is `200 Ok`.\nThe action will return an object with the property `success` with the value `true`.\n\n#### Notes\n - The setting `user.session.lifetime` determines the session lifetime\n\n\n# Session ID\nUsually, the session cookies provided by Nextcloud are sufficient to use sessions.\nIf for some reason your client is unable to use cookies, the special header `X-API-SESSION` can be used to exchange session ids.\nThe api will include the header in each response and will accept it in each request." }, "response": [] } ], "description": "# The session api\nThe [session api](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Session-Api) allows clients to use an authorized session which is a requirement for client-side encryption.\n\n## Backwards compatibility\nTo remain compatible with older clients which do neither support encryption nor sessions, the api does currently not require an authorized session if the user does not use encryption.\n\nThis will change by the end of 2020.\n\n\n## Client deauthorization\nIf a client tries to open an authorized session with invalid credentials more than five times, it will be blocked.\n\nIf the client used an app or device token to access the api, the token will be deleted.\nIf the client used the password to access the api, the api will no longer accept password authentication.\n\nThe user will receive a notification about the incident." }, { "name": "Password API", "item": [ { "name": "List", "request": { "method": "GET", "header": [ { "key": "X-API-SESSION", "value": "{{http_api_session}}", "type": "text" } ], "url": { "raw": "{{base_url}}/api/1.0/password/list", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "password", "list" ] }, "description": "# The list action\nThe [list action](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Password-Api#the-list-action) lists all passwords of the user except those in trash and the hidden ones.\n\n#### Arguments\n| Argument | Type | Default | Required | Description |\n| --- | --- | --- | --- | --- |\n| [details](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Password-Api#detail-levels) | string | \"model\" | no | The detail level of the returned password objects |\n\n#### Return value\nThe success status code is `200 Ok`\nThe return value is a list of password objects with the given detail level\n\n#### Notes\n - The list will not include trashed passwords\n - The list will not include hidden passwords\n - The list will not include suspended passwords where the folder or a parent folder is in the trash" }, "response": [] }, { "name": "List (Details)", "request": { "method": "POST", "header": [ { "key": "X-API-SESSION", "value": "{{http_api_session}}", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"details\": \"model+revisions+folder+tags+shares\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/api/1.0/password/list", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "password", "list" ] }, "description": "# The list action\nThe [list action](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Password-Api#the-list-action) lists all passwords of the user except those in trash and the hidden ones.\n\n#### Arguments\n| Argument | Type | Default | Required | Description |\n| --- | --- | --- | --- | --- |\n| [details](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Password-Api#detail-levels) | string | \"model\" | no | The detail level of the returned password objects |\n\n#### Return value\nThe success status code is `200 Ok`\nThe return value is a list of password objects with the given detail level\n\n#### Notes\n - The list will not include trashed passwords\n - The list will not include hidden passwords\n - The list will not include suspended passwords where the folder or a parent folder is in the trash" }, "response": [] }, { "name": "Show", "request": { "method": "POST", "header": [ { "key": "X-API-SESSION", "value": "{{http_api_session}}", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"id\" : \"{{password_id}}\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/api/1.0/password/show", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "password", "show" ] }, "description": "# The show action\nThe [show action](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Password-Api#the-show-action) lists the properties of a single password.\n\n#### Arguments\n| Argument | Type | Default | Required | Description |\n| --- | --- | --- | --- | --- |\n| id | string | - | yes | The id of the password |\n| [details](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Password-Api#detail-levels) | string | \"model\" | no | The detail level of the returned password object |\n\n#### Return value\nThe success status code is `200 Ok`\nThe return value is a password object with the given detail level\n\n#### Notes\n - This is the only action that can access hidden passwords" }, "response": [] }, { "name": "Show (Details)", "request": { "method": "POST", "header": [ { "key": "X-API-SESSION", "value": "{{http_api_session}}", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"id\" : \"{{password_id}}\",\n \"details\": \"model+revisions+folder+tags+shares\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/api/1.0/password/show", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "password", "show" ] }, "description": "# The show action\nThe [show action](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Password-Api#the-show-action) lists the properties of a single password.\n\n#### Arguments\n| Argument | Type | Default | Required | Description |\n| --- | --- | --- | --- | --- |\n| id | string | - | yes | The id of the password |\n| [details](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Password-Api#detail-levels) | string | \"model\" | no | The detail level of the returned password object |\n\n#### Return value\nThe success status code is `200 Ok`\nThe return value is a password object with the given detail level\n\n#### Notes\n - This is the only action that can access hidden passwords" }, "response": [] }, { "name": "Find", "request": { "method": "POST", "header": [ { "key": "X-API-SESSION", "value": "{{http_api_session}}", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"trashed\": true\n}\n", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/api/1.0/password/find", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "password", "find" ] }, "description": "# The find action\nThe [find action](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Password-Api#the-find-action) can be used to find all passwords matching the given search criteria.\nOnly a specific set of fields is allowed in the criteria.\nHow the criteria array works is explained on the [object search page](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Object-Search).\n\n#### Arguments\n| Argument | Type | Default | Required | Description |\n| --- | --- | --- | --- | --- |\n| criteria | array | [] | no | The search criteria |\n| details | string | \"model\" | no | The detail level of the returned password objects |\n\n#### Allowed search fields\n| Field | Type | Description |\n| --- | --- | --- |\n| created | int | Unix timestamp when the password was created |\n| updated | int | Unix timestamp when the password was updated |\n| edited | int | Unix timestamp when the user last changed the password |\n| cseType | string | The client side encryption type |\n| sseType | string | The server side encryption type |\n| status | int | The server side detected security status |\n| trashed | bool | Whether or not the password is in the trash |\n| favorite | bool | Whether or not the user has marked the password as favorite |\n\n#### Return value\nThe success status code is `200 Ok`\nThe return value is a list of password objects that match the criteria with the given detail level\n\n#### Notes\n - The property `trashed` will be set to `false` if not present\n - The list will not include hidden passwords\n - The list will not include suspended passwords where the folder or a parent folder is in the trash" }, "response": [] }, { "name": "Find (Details)", "request": { "method": "POST", "header": [ { "key": "X-API-SESSION", "value": "{{http_api_session}}", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"trashed\": true,\n \"details\": \"model+revisions+folder+tags+shares\"\n}\n", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/api/1.0/password/find", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "password", "find" ] }, "description": "# The find action\nThe [find action](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Password-Api#the-find-action) can be used to find all passwords matching the given search criteria.\nOnly a specific set of fields is allowed in the criteria.\nHow the criteria array works is explained on the [object search page](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Object-Search).\n\n#### Arguments\n| Argument | Type | Default | Required | Description |\n| --- | --- | --- | --- | --- |\n| criteria | array | [] | no | The search criteria |\n| details | string | \"model\" | no | The detail level of the returned password objects |\n\n#### Allowed search fields\n| Field | Type | Description |\n| --- | --- | --- |\n| created | int | Unix timestamp when the password was created |\n| updated | int | Unix timestamp when the password was updated |\n| edited | int | Unix timestamp when the user last changed the password |\n| cseType | string | The client side encryption type |\n| sseType | string | The server side encryption type |\n| status | int | The server side detected security status |\n| trashed | bool | Whether or not the password is in the trash |\n| favorite | bool | Whether or not the user has marked the password as favorite |\n\n#### Return value\nThe success status code is `200 Ok`\nThe return value is a list of password objects that match the criteria with the given detail level\n\n#### Notes\n - The property `trashed` will be set to `false` if not present\n - The list will not include hidden passwords\n - The list will not include suspended passwords where the folder or a parent folder is in the trash" }, "response": [] }, { "name": "Create", "request": { "method": "POST", "header": [ { "key": "X-API-SESSION", "value": "{{http_api_session}}", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"password\": \"HumanistischerAngelgelegenheiten\",\n \"label\": \"Nextcloud\",\n \"username\": \"files\",\n \"url\": \"https://nextcloud.com/\",\n \"notes\": \"Nextcloud ist eine freie Software für das Speichern von Daten (Filehosting) auf einem eigenen Server. Bei Einsatz eines Clients wird der Server automatisch mit einem lokalen Verzeichnis synchronisiert. Dadurch kann von mehreren Rechnern, aber auch über eine Weboberfläche, auf einen konsistenten Datenbestand zugegriffen werden. Im Gegensatz zu kommerziellen Speicherdiensten wie Dropbox oder OneDrive kann Nextcloud auf einem privaten Server oder Webspace ohne Zusatzkosten installiert werden. Dadurch behält man die vollständige Kontrolle über seine Daten und die Bedenken gegenüber einem Datenmissbrauch werden minimiert. \",\n \"customFields\": \"[{\\\"label\\\":\\\"Forum\\\",\\\"type\\\":\\\"url\\\",\\\"value\\\":\\\"https:\\\\/\\\\/help.nextcloud.com\\\"}]\",\n \"hash\": \"0779e1cf0285f89f0985fc1c2c05b75e91e342f6\",\n \"cseType\": \"none\",\n \"cseKey\": \"\",\n \"folder\": \"7575ef5e-68ef-4bdb-bdb5-442accf73499\",\n \"edited\": 1506372074,\n \"hidden\": false,\n \"favorite\": true,\n \"tags\": []\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/api/1.0/password/create", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "password", "create" ] }, "description": "# The create action\nThe [create action](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Password-Api#the-create-action) creates a new password with the given attributes.\n\n#### Arguments\n| Argument | Type | Default | Required | Description |\n| --- | --- | --- | --- | --- |\n| password | string | - | yes | The password |\n| label | string | - | yes | The label of the password |\n| username | string | empty | no | The username associated with the password |\n| url | string | empty | no | The url of the associated website |\n| notes | string | empty | no | The users notes |\n| customFields| string | empty | no | The custom fields defined by the user |\n| hash | string | empty | yes | The SHA1 hash of the password |\n| cseType | string | \"none\" | no | The client side encryption type |\n| cseKey | string | \"\" | no | The UUID of the key used for client side encryption. Required if `cseType` not \"none\" |\n| folder | string | Base folder | no | The current folder of the password |\n| edited | int | 0 | no | Unix timestamp when the user has last changed the actual password |\n| hidden | bool | false | no | Whether or not the password should be hidden |\n| favorite | bool | false | no | Whether or not the user has marked this password as favorite |\n| tags | array | empty | no | The id of all tags associated with this passwords |\n\n#### Return value\nThe success status code is `201 Created`\n\n| Argument | Type | Description |\n| --- | --- | --- |\n| id | string | The UUID of the password |\n| revision | string | The UUID of the revision |\n\n#### Notes\n - If the password is not hidden and should be created in a hidden folder, it will be created in the base folder instead\n - If the folder uuid is invalid or does not exist, the base folder uuid will be used instead\n - If the `edited` argument is \"0\" or missing, the current time will be used\n - If the `edited` time is in the future, the current time will be used\n - If the `cseType` is set to \"none\", the `hash` will be calculated on the server\n - If the `tags` argument contains invalid tag ids, they will be ignored\n - You can assign hidden tags to a not hidden password, but they will not be visible.\n Therefore another client might remove the tag by accident" }, "response": [] }, { "name": "Update", "request": { "method": "PATCH", "header": [ { "key": "X-API-SESSION", "value": "{{http_api_session}}", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"id\" : \"{{password_id}}\",\n //\"revision\": \"{{password_revision}}\",\n \"password\": \"HumanistischerAngelgelegenheiten\",\n \"label\": \"Nextcloud\",\n \"username\": \"files\",\n \"url\": \"https://nextcloud.com/\",\n \"notes\": \"Nextcloud ist eine freie Software für das Speichern von Daten (Filehosting) auf einem eigenen Server. Bei Einsatz eines Clients wird der Server automatisch mit einem lokalen Verzeichnis synchronisiert. Dadurch kann von mehreren Rechnern, aber auch über eine Weboberfläche, auf einen konsistenten Datenbestand zugegriffen werden. Im Gegensatz zu kommerziellen Speicherdiensten wie Dropbox oder OneDrive kann Nextcloud auf einem privaten Server oder Webspace ohne Zusatzkosten installiert werden. Dadurch behält man die vollständige Kontrolle über seine Daten und die Bedenken gegenüber einem Datenmissbrauch werden minimiert. \",\n \"customFields\": \"[{\\\"label\\\":\\\"Forum\\\",\\\"type\\\":\\\"url\\\",\\\"value\\\":\\\"https:\\\\/\\\\/help.nextcloud.com\\\"}]\",\n \"hash\": \"0779e1cf0285f89f0985fc1c2c05b75e91e342f6\",\n \"cseType\": \"none\",\n \"cseKey\": \"\",\n \"folder\": \"7575ef5e-68ef-4bdb-bdb5-442accf73499\",\n \"edited\": 1506372074,\n \"hidden\": false,\n \"favorite\": true,\n \"tags\": []\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/api/1.0/password/update", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "password", "update" ] }, "description": "# The update action\nThe [update action](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Password-Api#the-update-action) creates a new revision of a password with an updated set of attributes.\n\n#### Arguments\n| Argument | Type | Default | Required | Description |\n| --- | --- | --- | --- | --- |\n| id | string | - | yes | The id of the password object |\n| password | string | - | yes | The password |\n| revision | string | - | no | The current revision of the client. If this is not the latest revision, the request will fail. |\n| label | string | - | yes | The label of the password |\n| username | string | empty | no | The username associated with the password |\n| url | string | empty | no | The url of the associated website |\n| notes | string | empty | no | The users notes |\n| customFields| string | empty | no | The custom fields defined by the user |\n| hash | string | empty | yes | The SHA1 hash of the password |\n| cseType | string | \"none\" | no | The client side encryption type |\n| cseKey | string | \"\" | no | The UUID of the key used for client side encryption. Required if `cseType` not \"none\" |\n| folder | string | Base folder | no | The current folder of the password |\n| edited | int | 0 | no | Unix timestamp when the user has last changed the actual password |\n| hidden | bool | false | no | Whether or not the password should be hidden |\n| favorite | bool | false | no | Whether or not the user has marked this password as favorite |\n| tags | array | empty | no | The id of all tags associated with this password |\n\n#### Return value\nThe success status code is `200 Ok`\n\n| Argument | Type | Description |\n| --- | --- | --- |\n| id | string | The UUID of the password |\n| revision | string | The UUID of the new revision |\n\n#### Notes\n - If the password is not editable any change to the encrypted properties, the cseType and the hash will be ignored.\n - If the password is shared you can only use cse types which support sharing\n - If the password is shared you can not hide the password\n - If the password is not hidden and should be moved to a hidden folder, it will be moved to the base folder instead\n - If the password has tags and you want to remove all tags, you need to submit an array with one invalid tag id\n - If the folder uuid is invalid or does not exist, the base folder uuid will be used instead\n - If the `revision` argument is present, the value must match the latest revision or the action will fail with an error.\n This prevents the client from overwriting a more recent revision on the server with old data.\n - If the `edited` argument is \"0\" or missing, the timestamp from the last revision will be used\n - If the `edited` time is in the future, the current time will be used\n - If the `hash` has not changed, the `edited` field from the last revision will be used\n - If the `cseType` is set to \"none\", the `hash` will be calculated on the server\n - If the `tags` argument is empty or missing, no changes will be made\n - If the `tags` argument contains invalid tag ids, they will be ignored\n - You can assign hidden tags to a not hidden password, but they will not be visible.\n Therefore another client might remove the tag by accident" }, "response": [] }, { "name": "Delete", "request": { "method": "DELETE", "header": [ { "key": "X-API-SESSION", "value": "{{http_api_session}}", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"id\" : \"{{password_id}}\"\n //,\n //\"revision\": \"{{password_revision}}\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/api/1.0/password/delete", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "password", "delete" ] }, "description": "# The delete action\nThe [delete action](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Password-Api#the-delete-action) moves a password to the trash or deletes it completely if it is already in the trash.\n\n#### Arguments\n| Arguments | Type | Default | Required | Description |\n| --- | --- | --- | --- | --- |\n| id | string | - | yes | The id of the password |\n| revision | string | - | no | Assumed current revision of the password (Since 2019.6.0) |\n\n#### Return value\nThe success status code is `200 Ok`\n\n| Argument | Type | Description |\n| --- | --- | --- |\n| id | string | The UUID of the password |\n| revision | string | The UUID of the new revision. Only if the password was moved to the trash |\n\n#### Notes\n - If a password is moved to the trash, the relations to tags will be hidden from the tag, but not the password.\n - If the `revision` is set, the password will only be deleted if that revision is the current revision.\n Otherwise an \"Outdated revision id\" error is returned.\n This way, a password is not accidentally deleted instead of trashed if the client is out of sync." }, "response": [] }, { "name": "Restore", "request": { "method": "PATCH", "header": [ { "key": "X-API-SESSION", "value": "{{http_api_session}}", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"id\" : \"{{password_id}}\"\n //,\n //\"revision\": \"{{password_revision}}\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/api/1.0/password/restore", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "password", "restore" ] }, "description": "# The restore action\nThe [restore action](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Password-Api#the-restore-action) can restore an earlier state of a password.\n\n#### Arguments\n| Arguments | Type | Default | Required | Description |\n| --- | --- | --- | --- | --- |\n| id | string | - | yes | The id of the password |\n| revision | string | - | no | The id of the revision |\n\n#### Return value\nThe success status code is `200 Ok`\n\n| Argument | Type | Description |\n| --- | --- | --- |\n| id | string | The UUID of the password |\n| revision | string | The UUID of the new revision |\n\n#### Notes\n - If no revision is given and the password is in trash, it will be removed from trash\n - If no revision is given and the password is not in trash, nothing is done\n - If a revision is given and the revision is marked as in trash, it will be removed from trash\n - If a revision is given that does not belong to the model, an \"Invalid revision id\" error will be returned.\n - The action will fail if the password is shared but the revision to restore does not meet the requirements for sharing\n - This action will always create a new revision\n - The server side encryption type may change\n - If the folder does not exist anymore, it will be moved to the base folder\n - Tag relations can not be restored\n - Deleted passwords can not be restored" }, "response": [] } ], "description": "# The passwords api\nThe [passwords api](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Password-Api) allows listing, creating, updating and deleting password entries.\n\n# The Password Object\n| Property | Type | Writable | Encrypted | Versioned | Length | Description |\n| --- | --- | --- | --- | --- | --- | --- |\n| id | string | no | no | no | 36 | The UUID of the password |\n| label | string | yes | yes | yes | 64 | User defined label of the password |\n| username | string | yes | yes | yes | 64 | Username associated with the password |\n| password | string | yes | yes | yes | 256 | The actual password |\n| url | string | yes | yes | yes | 2048 | Url of the website |\n| notes | string | yes | yes | yes | 4096 | Notes for the password. Can be formatted with Markdown |\n| customFields | string | yes | yes | yes | 8192 | Custom fields created by the user. (See [custom fields](#custom-fields)) |\n| status | int | no | no | yes | 1 | Security status level of the password (0 = ok, 1 = user rules violated, 2 = breached) |\n| statusCode | string | no | no | yes | 12 | Specific code for the current security status (GOOD, OUTDATED, DUPLICATE, BREACHED) |\n| hash | string | yes | no | yes | 40 | SHA1 hash of the password |\n| folder | string | yes | no | yes | 36 | UUID of the current folder of the password |\n| revision | string | no | no | yes | 36 | UUID of the current revision |\n| share | string / null | no | no | no | 36 | UUID of the share if the password was shared by someone else with the user |\n| shared | bool | no | no | no | 1 | True if the password is shared with other users |\n| cseType | string | yes | no | yes | 10 | Type of the used client side encryption |\n| cseKey | string | yes | no | yes | 36 | UUID of the key used for client side encryption |\n| sseType | string | no | no | yes | 10 | Type of the used server side encryption |\n| client | string | no | no | yes | 256 | Name of the client which created this revision |\n| hidden | bool | yes | no | yes | 1 | Hides the password in list / find actions |\n| trashed | bool | no | no | yes | 1 | True if the password is in the trash |\n| favorite | bool | yes | no | yes | 1 | True if the user has marked the password as favorite |\n| editable | bool | no | no | no | 1 | Specifies if the encrypted properties can be changed. Might be false for shared passwords |\n| edited | int | yes | no | yes | 12 | Unix timestamp when the user last changed the password |\n| created | int | no | no | no | 12 | Unix timestamp when the password was created |\n| updated | int | no | no | yes | 12 | Unix timestamp when the password was updated |\n\n#### Detail Levels\n| Level | Description |\n| --- | --- |\n| model | Returns the base model |\n| +revisions | Adds the revisions property which contains all revisions. A revision consists of all properties marked as versioned and its own created property |\n| +folder | Fills the folder property with the base model of the folder. If the password is not hidden but the folder is, the base folder will be used |\n| +tags | Adds the tags property filled with the base model of all tags. Hidden tags are not included in this list if the password is not hidden |\n| +tag-ids | Adds the tags property filled with the ids of all tags. Hidden tags are not included in this list if the password is not hidden. Can not be used with `+tags` |\n| +shares | Adds the shares property filled with the base model of all shares with other users. Fills the share property with the base model of the original share if available |\n\n#### Notes\n - Since the status check is done once per day server side, the DUPLICATE status may take some time to be applied to all affected passwords\n - The difference between `updated` and `edited` is that updated is always set by the server when the password is changed and edited has to be set by the client." }, { "name": "Folder API", "item": [ { "name": "List", "request": { "method": "GET", "header": [ { "key": "X-API-SESSION", "value": "{{http_api_session}}", "type": "text" } ], "url": { "raw": "{{base_url}}/api/1.0/folder/list", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "folder", "list" ] }, "description": "# The list action\nThe [list action](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Folder-Api#the-list-action) lists all folders of the user except those in trash and the hidden ones.\n\n#### Arguments\n| Argument | Type | Default | Required | Description |\n| --- | --- | --- | --- | --- |\n| details | string | \"model\" | no | The detail level of the returned folder objects |\n\n#### Return value\nThe success status code is `200 Ok`\nThe return value is a list of folder objects with the given detail level\n\n#### Notes\n - The list will not include trashed folders\n - The list will not include hidden folders\n - The list will not include suspended folders where a parent folder is in the trash" }, "response": [] }, { "name": "List (Details)", "request": { "method": "POST", "header": [ { "key": "X-API-SESSION", "value": "{{http_api_session}}", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"details\": \"model+revisions+parent+folders+passwords\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/api/1.0/folder/list", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "folder", "list" ] }, "description": "# The list action\nThe [list action](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Folder-Api#the-list-action) lists all folders of the user except those in trash and the hidden ones.\n\n#### Arguments\n| Argument | Type | Default | Required | Description |\n| --- | --- | --- | --- | --- |\n| details | string | \"model\" | no | The detail level of the returned folder objects |\n\n#### Return value\nThe success status code is `200 Ok`\nThe return value is a list of folder objects with the given detail level\n\n#### Notes\n - The list will not include trashed folders\n - The list will not include hidden folders\n - The list will not include suspended folders where a parent folder is in the trash" }, "response": [] }, { "name": "Show", "request": { "method": "POST", "header": [ { "key": "X-API-SESSION", "value": "{{http_api_session}}", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"id\" : \"{{folder_id}}\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/api/1.0/folder/show", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "folder", "show" ] }, "description": "# The show action\nThe [show action](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Folder-Api#the-show-action) lists the properties of a single folder.\n\n#### Arguments\n| Argument | Type | Default | Required | Description |\n| --- | --- | --- | --- | --- |\n| id | string | - | yes | The id of the folder |\n| details | string | \"model\" | no | The detail level of the returned folder object |\n\n#### Return value\nThe success status code is `200 Ok`\nThe return value is a folder object with the given detail level\n\n#### Notes\n - This is the only action that can access hidden folders" }, "response": [] }, { "name": "Show (Details)", "request": { "method": "POST", "header": [ { "key": "X-API-SESSION", "value": "{{http_api_session}}", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"id\" : \"{{folder_id}}\",\n \"details\": \"model+revisions+parent+folders+passwords\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/api/1.0/folder/show", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "folder", "show" ] }, "description": "# The show action\nThe [show action](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Folder-Api#the-show-action) lists the properties of a single folder.\n\n#### Arguments\n| Argument | Type | Default | Required | Description |\n| --- | --- | --- | --- | --- |\n| id | string | - | yes | The id of the folder |\n| details | string | \"model\" | no | The detail level of the returned folder object |\n\n#### Return value\nThe success status code is `200 Ok`\nThe return value is a folder object with the given detail level\n\n#### Notes\n - This is the only action that can access hidden folders" }, "response": [] }, { "name": "Find", "request": { "method": "POST", "header": [ { "key": "X-API-SESSION", "value": "{{http_api_session}}", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"trashed\": true\n}\n", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/api/1.0/folder/find", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "folder", "find" ] }, "description": "# The find action\nThe [find action](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Folder-Api#the-find-action) can be used to find all folders matching the given search criteria.\nOnly a specific set of fields is allowed in the criteria.\nHow the criteria array works is explained on the [object search page](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Object-Search.md).\n\n#### Arguments\n| Argument | Type | Default | Required | Description |\n| --- | --- | --- | --- | --- |\n| criteria | array | [] | no | The search criteria |\n| details | string | \"model\" | no | The detail level of the returned folder objects |\n\n#### Allowed search fields\n| Field | Type | Description |\n| --- | --- | --- |\n| created | int | Unix timestamp when the folder was created |\n| updated | int | Unix timestamp when the folder was updated |\n| edited | int | Unix timestamp when the user last renamed the folder |\n| cseType | string | The client side encryption type |\n| sseType | string | The server side encryption type |\n| parent | string | The id of the parent folder |\n| trashed | bool | Whether or not the folder is in the trash |\n| favorite | bool | Whether or not the user has marked the folder as favorite |\n\n#### Return value\nThe success status code is `200 Ok`\nThe return value is a list of folder objects that match the criteria with the given detail level\n\n#### Notes\n - The property `trashed` will be set to `false` if not present\n - The property `parent` is only supported in 2019.5.0 and later\n - The list will not include hidden folders\n - The list will not include suspended folders where a parent folder is in the trash" }, "response": [] }, { "name": "Find (Details)", "request": { "method": "POST", "header": [ { "key": "X-API-SESSION", "value": "{{http_api_session}}", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"trashed\": true,\n \"details\": \"model+revisions+parent+folders+passwords\"\n}\n", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/api/1.0/folder/find", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "folder", "find" ] }, "description": "# The find action\nThe [find action](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Folder-Api#the-find-action) can be used to find all folders matching the given search criteria.\nOnly a specific set of fields is allowed in the criteria.\nHow the criteria array works is explained on the [object search page](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Object-Search.md).\n\n#### Arguments\n| Argument | Type | Default | Required | Description |\n| --- | --- | --- | --- | --- |\n| criteria | array | [] | no | The search criteria |\n| details | string | \"model\" | no | The detail level of the returned folder objects |\n\n#### Allowed search fields\n| Field | Type | Description |\n| --- | --- | --- |\n| created | int | Unix timestamp when the folder was created |\n| updated | int | Unix timestamp when the folder was updated |\n| edited | int | Unix timestamp when the user last renamed the folder |\n| cseType | string | The client side encryption type |\n| sseType | string | The server side encryption type |\n| parent | string | The id of the parent folder |\n| trashed | bool | Whether or not the folder is in the trash |\n| favorite | bool | Whether or not the user has marked the folder as favorite |\n\n#### Return value\nThe success status code is `200 Ok`\nThe return value is a list of folder objects that match the criteria with the given detail level\n\n#### Notes\n - The property `trashed` will be set to `false` if not present\n - The property `parent` is only supported in 2019.5.0 and later\n - The list will not include hidden folders\n - The list will not include suspended folders where a parent folder is in the trash" }, "response": [] }, { "name": "Create", "request": { "method": "POST", "header": [ { "key": "X-API-SESSION", "value": "{{http_api_session}}", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"label\": \"Work\",\n \"edited\": 1518640874,\n \"parent\": \"00000000-0000-0000-0000-000000000000\",\n \"cseKey\": \"\",\n \"cseType\": \"none\",\n \"hidden\": false,\n \"favorite\": false\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/api/1.0/folder/create", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "folder", "create" ] }, "description": "# The create action\nThe [create action](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Folder-Api#the-create-action) creates a new folder with the given attributes.\n\n#### Arguments\n| Argument | Type | Default | Required | Description |\n| --- | --- | --- | --- | --- |\n| label | string | - | yes | The label of the folder |\n| parent | string | Base folder | no | The current parent folder |\n| cseType | string | \"none\" | no | The client side encryption type |\n| cseKey | string | \"\" | no | The UUID of the key used for client side encryption. Required if `cseType` not \"none\" |\n| edited | int | 0 | no | Unix timestamp when the user has last renamed the folder |\n| hidden | bool | false | no | Whether or not the folder should be hidden |\n| favorite | bool | false | no | Whether or not the user has marked this folder as favorite |\n\n#### Return value\nThe success status code is `201 Created`\n\n| Argument | Type | Description |\n| --- | --- | --- |\n| id | string | The UUID of the folder |\n| revision | string | The UUID of the revision |\n\n#### Notes\n - If the uuid of the parent folder is invalid or does not exist, the base folder uuid will be used instead\n - If the folder is not hidden and should be created in a hidden folder, it will be created in the base folder instead\n - If the `edited` argument is \"0\", missing or in the future, the current time will be used" }, "response": [] }, { "name": "Update", "request": { "method": "PATCH", "header": [ { "key": "X-API-SESSION", "value": "{{http_api_session}}", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"id\" : \"{{folder_id}}\",\n //\"revision\": \"{{folder_revision}}\",\n \"label\": \"Work\",\n \"edited\": 1518640874,\n \"parent\": \"00000000-0000-0000-0000-000000000000\",\n \"cseKey\": \"\",\n \"cseType\": \"none\",\n \"hidden\": false,\n \"favorite\": false\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/api/1.0/folder/update", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "folder", "update" ] }, "description": "# The update action\nThe [update action](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Folder-Api#the-update-action) creates a new revision of a folder with an updated set of attributes.\n\n#### Arguments\n| Argument | Type | Default | Required | Description |\n| --- | --- | --- | --- | --- |\n| id | string | - | yes | The id of the folder |\n| revision | string | - | no | The current revision known to the client. If not the latest revision, the request will fail. |\n| label | string | - | yes | The label of the folder |\n| parent | string | Base folder | no | The current parent folder |\n| cseType | string | \"none\" | no | The client side encryption type |\n| cseKey | string | \"\" | no | The UUID of the key used for client side encryption. Required if `cseType` not \"none\" |\n| edited | int | 0 | no | Unix timestamp when the user has last renamed the folder |\n| hidden | bool | false | no | Whether or not the folder should be hidden |\n| favorite | bool | false | no | Whether or not the user has marked this folder as favorite |\n\n#### Return value\nThe success status code is `200 Ok`\n\n| Argument | Type | Description |\n| --- | --- | --- |\n| id | string | The UUID of the folder |\n| revision | string | The UUID of the new revision |\n\n#### Notes\n - If the uuid of the parent folder is invalid or does not exist, the base folder uuid will be used instead\n - If the folder is not hidden and should be moved to a hidden parent folder, it will be moved to the base folder instead\n - If hou hide a folder, all folders and passwords in it will be hidden as well\n - If you unhide a folder no change to the folders and passwords in it will be made and they will remain hidden\n - If the `revision` argument is present, the value must match the latest revision or the action will fail with an error.\n This prevents the client from overwriting a more recent revision on the server with old data.\n - If the `edited` argument is \"0\" or missing, the timestamp from the last revision will be used\n - If the `edited` time is in the future, the current time will be used" }, "response": [] }, { "name": "Delete", "request": { "method": "DELETE", "header": [ { "key": "X-API-SESSION", "value": "{{http_api_session}}", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"id\" : \"{{folder_id}}\"\n //,\n //\"revision\": \"{{folder_revision}}\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/api/1.0/folder/delete", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "folder", "delete" ] }, "description": "# The delete action\nThe [delete action](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Folder-Api#the-delete-action) moves a folder and its content to the trash or deletes it completely if it is already in the trash.\n\n#### Arguments\n| Arguments | Type | Default | Required | Description |\n| --- | --- | --- | --- | --- |\n| id | string | - | yes | The id of the folder |\n| revision | string | - | no | Assumed current revision of the folder (Since 2019.6.0) |\n\n#### Return value\nThe success status code is `200 Ok`\n\n| Argument | Type | Description |\n| --- | --- | --- |\n| id | string | The UUID of the folder |\n| revision | string | The UUID of the new revision. Only if the folder was moved to the trash |\n\n#### Notes\n - If a folder is moved to the trash, all passwords and folders in it will be suspended and hidden from list and find actions\n - If a folder is moved to the trash, the relations between tags and passwords in the folder will be hidden from the tag, but not the password\n - If a folder is deleted, all passwords and folders in it will be deleted as well\n - If the `revision` is set, the folder will only be deleted if that revision is the current revision. \n This way, a folder is not accidentally deleted instead of trashed if the client is out of sync." }, "response": [] }, { "name": "Restore", "request": { "method": "PATCH", "header": [ { "key": "X-API-SESSION", "value": "{{http_api_session}}", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"id\" : \"{{folder_id}}\"\n //,\n //\"revision\": \"{{folder_revision}}\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/api/1.0/folder/restore", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "folder", "restore" ] }, "description": "# The restore action\nThe [restore action](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Folder-Api#the-restore-action) can restore an earlier state of a folder.\n\n#### Arguments\n| Arguments | Type | Default | Required | Description |\n| --- | --- | --- | --- | --- |\n| id | string | - | yes | The id of the folder |\n| revision | string | - | no | The id of the revision |\n\n#### Return value\nThe success status code is `200 Ok`\n\n| Argument | Type | Description |\n| --- | --- | --- |\n| id | string | The UUID of the folder |\n| revision | string | The UUID of the new revision |\n\n#### Notes\n - If no revision is given and the folder is in trash, it will be removed from trash\n - If no revision is given and the folder is not in trash, nothing is done\n - If a revision is given and the revision is marked as in trash, it will be removed from trash\n - This action will always create a new revision\n - The server side encryption type may change\n - If the parent folder does not exist anymore, it will be moved to the base folder\n - Deleted folders can not be restored" }, "response": [] } ], "description": "# The folder api\nThe [folder api](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Folder-Api) allows listing, creating, updating and deleting folders.\n\n# The Folder Object\n| Property | Type | Writable | Encrypted | Versioned | Length | Description |\n| --- | --- | --- | --- | --- | --- | --- |\n| id | string | no | no | no | 36 | The UUID of the folder |\n| label | string | yes | yes | yes | 48 | User defined label of the folder |\n| parent | string | yes | no | yes | 36 | UUID of the parent folder |\n| revision | string | no | no | yes | 36 | UUID of the current revision |\n| cseType | string | yes | no | yes | 10 | Type of the used client side encryption |\n| cseKey | string | yes | no | yes | 36 | UUID of the key used for client side encryption |\n| sseType | string | no | no | yes | 10 | Type of the used server side encryption |\n| client | string | no | no | yes | 256 | Name of the client which created this revision |\n| hidden | bool | yes | no | yes | 1 | Hides the folder in list / find actions |\n| trashed | bool | no | no | yes | 1 | True if the folder is in the trash |\n| favorite | bool | yes | no | yes | 1 | True if the user has marked the folder as favorite |\n| created | int | no | no | no | 12 | Unix timestamp when the folder was created |\n| updated | int | no | no | yes | 12 | Unix timestamp when the folder was updated |\n| edited | int | yes | no | yes | 12 | Unix timestamp when the user last changed the folder name |\n\n#### Detail Levels\n| Level | Description |\n| --- | --- |\n| model | Returns the base model |\n| +revisions | Adds the revisions property which contains all revisions. A revision consists of all properties marked as versioned and its own created property |\n| +parent | Fills the parent property with the base model of the parent folder |\n| +folders | Adds the folders property with the base model of all folders in this folder |\n| +folder-ids | Adds the folders property with the ids of all folders in this folder. Can not be used with `+folders` |\n| +passwords | Adds the passwords property with the base model of all passwords in this folder |\n| +password-ids | Adds the passwords property with the ids of all passwords in this folder. Can not be used with `+passwords` |\n| +password-tags | Loads the tags for all passwords in this folder in their respective model. Can only be used with `+passwords` |\n| +tags | Not implemented but reserved |" }, { "name": "Tag API", "item": [ { "name": "List", "request": { "method": "GET", "header": [ { "key": "X-API-SESSION", "value": "{{http_api_session}}", "type": "text" } ], "url": { "raw": "{{base_url}}/api/1.0/tag/list", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "tag", "list" ] }, "description": "# The list action\nThe [list action](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Tag-Api#the-list-action) lists all tags of the user except those in trash and the hidden ones.\n\n#### Arguments\n| Argument | Type | Default | Required | Description |\n| --- | --- | --- | --- | --- |\n| details | string | \"model\" | no | The detail level of the returned tag objects |\n\n#### Return value\nThe success status code is `200 Ok`\nThe return value is a list of tag objects with the given detail level\n\n#### Notes\n - The list will not include trashed tags\n - The list will not include hidden tags" }, "response": [] }, { "name": "List (Details)", "request": { "method": "POST", "header": [ { "key": "X-API-SESSION", "value": "{{http_api_session}}", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"details\": \"model+revisions+passwords\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/api/1.0/tag/list", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "tag", "list" ] }, "description": "# The list action\nThe [list action](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Tag-Api#the-list-action) lists all tags of the user except those in trash and the hidden ones.\n\n#### Arguments\n| Argument | Type | Default | Required | Description |\n| --- | --- | --- | --- | --- |\n| details | string | \"model\" | no | The detail level of the returned tag objects |\n\n#### Return value\nThe success status code is `200 Ok`\nThe return value is a list of tag objects with the given detail level\n\n#### Notes\n - The list will not include trashed tags\n - The list will not include hidden tags" }, "response": [] }, { "name": "Show", "request": { "method": "POST", "header": [ { "key": "X-API-SESSION", "value": "{{http_api_session}}", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"id\" : \"{{tag_id}}\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/api/1.0/tag/show", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "tag", "show" ] }, "description": "# The show action\nThe [show action](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Tag-Api#the-show-action) lists the properties of a single tag.\n\n#### Arguments\n| Argument | Type | Default | Required | Description |\n| --- | --- | --- | --- | --- |\n| id | string | - | yes | The id of the tag |\n| details | string | \"model\" | no | The detail level of the returned tag object |\n\n#### Return value\nThe success status code is `200 Ok`\nThe return value is a tag object with the given detail level\n\n#### Notes\n - This is the only action that can access hidden tags" }, "response": [] }, { "name": "Show (Details)", "request": { "method": "POST", "header": [ { "key": "X-API-SESSION", "value": "{{http_api_session}}", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"id\" : \"{{tag_id}}\",\n \"details\": \"model+revisions+passwords\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/api/1.0/tag/show", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "tag", "show" ] }, "description": "# The show action\nThe [show action](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Tag-Api#the-show-action) lists the properties of a single tag.\n\n#### Arguments\n| Argument | Type | Default | Required | Description |\n| --- | --- | --- | --- | --- |\n| id | string | - | yes | The id of the tag |\n| details | string | \"model\" | no | The detail level of the returned tag object |\n\n#### Return value\nThe success status code is `200 Ok`\nThe return value is a tag object with the given detail level\n\n#### Notes\n - This is the only action that can access hidden tags" }, "response": [] }, { "name": "Find", "request": { "method": "POST", "header": [ { "key": "X-API-SESSION", "value": "{{http_api_session}}", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"trashed\": true\n}\n", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/api/1.0/tag/find", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "tag", "find" ] }, "description": "# The find action\nThe [find action](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Tag-Api#the-find-action) can be used to find all tags matching the given search criteria.\nOnly a specific set of fields is allowed in the criteria.\nHow the criteria array works is explained on the [object search page](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Object-Search.md).\n\n#### Arguments\n| Argument | Type | Default | Required | Description |\n| --- | --- | --- | --- | --- |\n| criteria | array | [] | no | The search criteria |\n| details | string | \"model\" | no | The detail level of the returned tag objects |\n\n#### Allowed search fields\n| Field | Type | Description |\n| --- | --- | --- |\n| created | int | Unix timestamp when the tag was created |\n| updated | int | Unix timestamp when the tag was updated |\n| edited | int | Unix timestamp when the user last renamed the tag |\n| cseType | string | The client side encryption type |\n| sseType | string | The server side encryption type |\n| trashed | bool | Whether or not the tag is in the trash |\n| favorite | bool | Whether or not the user has marked the tag as favorite |\n\n#### Return value\nThe success status code is `200 Ok`\nThe return value is a list of tag objects that match the criteria with the given detail level\n\n#### Notes\n - The property `trashed` will be set to `false` if not present\n - The list will not include hidden tags" }, "response": [] }, { "name": "Find (Details)", "request": { "method": "POST", "header": [ { "key": "X-API-SESSION", "value": "{{http_api_session}}", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"trashed\": true,\n \"details\": \"model+revisions+passwords\"\n}\n", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/api/1.0/tag/find", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "tag", "find" ] }, "description": "# The find action\nThe [find action](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Tag-Api#the-find-action) can be used to find all tags matching the given search criteria.\nOnly a specific set of fields is allowed in the criteria.\nHow the criteria array works is explained on the [object search page](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Object-Search.md).\n\n#### Arguments\n| Argument | Type | Default | Required | Description |\n| --- | --- | --- | --- | --- |\n| criteria | array | [] | no | The search criteria |\n| details | string | \"model\" | no | The detail level of the returned tag objects |\n\n#### Allowed search fields\n| Field | Type | Description |\n| --- | --- | --- |\n| created | int | Unix timestamp when the tag was created |\n| updated | int | Unix timestamp when the tag was updated |\n| edited | int | Unix timestamp when the user last renamed the tag |\n| cseType | string | The client side encryption type |\n| sseType | string | The server side encryption type |\n| trashed | bool | Whether or not the tag is in the trash |\n| favorite | bool | Whether or not the user has marked the tag as favorite |\n\n#### Return value\nThe success status code is `200 Ok`\nThe return value is a list of tag objects that match the criteria with the given detail level\n\n#### Notes\n - The property `trashed` will be set to `false` if not present\n - The list will not include hidden tags" }, "response": [] }, { "name": "Create", "request": { "method": "POST", "header": [ { "key": "X-API-SESSION", "value": "{{http_api_session}}", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"label\": \"Cloud Services\",\n \"color\": \"#2196f3\",\n \"edited\": 1520164982,\n \"cseKey\": \"\",\n \"cseType\": \"none\",\n \"hidden\": false,\n \"trashed\": false,\n \"favorite\": false\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/api/1.0/tag/create", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "tag", "create" ] }, "description": "# The create action\nThe [create action](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Tag-Api#the-create-action) creates a new tag with the given attributes.\n\n#### Arguments\n| Argument | Type | Default | Required | Description |\n| --- | --- | --- | --- | --- |\n| label | string | - | yes | The label of the tag |\n| color | string | - | yes | The color of the tag |\n| cseType | string | \"none\" | no | The client side encryption type |\n| cseKey | string | \"\" | no | The UUID of the key used for client side encryption. Required if `cseType` not \"none\" |\n| edited | int | 0 | no | Unix timestamp when the user has last edited the tag |\n| hidden | bool | false | no | Whether or not the tag should be hidden |\n| favorite | bool | false | no | Whether or not the user has marked this tag as favorite |\n\n#### Return value\nThe success status code is `201 Created`\n\n| Argument | Type | Description |\n| --- | --- | --- |\n| id | string | The UUID of the tag |\n| revision | string | The UUID of the revision |\n\n#### Notes\n - If the `edited` argument is \"0\", missing or in the future, the current time will be used" }, "response": [] }, { "name": "Update", "request": { "method": "PATCH", "header": [ { "key": "X-API-SESSION", "value": "{{http_api_session}}", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"id\" : \"{{password_id}}\",\n //\"revision\": \"{{password_revision}}\",\n \"label\": \"Cloud Services\",\n \"color\": \"#2196f3\",\n \"edited\": 1520164982,\n \"cseKey\": \"\",\n \"cseType\": \"none\",\n \"hidden\": false,\n \"trashed\": false,\n \"favorite\": false\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/api/1.0/tag/update", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "tag", "update" ] }, "description": "# The update action\nThe [update action](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Tag-Api#the-update-action) creates a new revision of a tag with an updated set of attributes.\n\n#### Arguments\n| Argument | Type | Default | Required | Description |\n| --- | --- | --- | --- | --- |\n| id | string | - | yes | The id of the tag |\n| revision | string | - | no | The current revision known to the client. If not the latest revision, the request will fail. |\n| label | string | - | yes | The label of the tag |\n| color | string | - | yes | The color of the tag |\n| cseType | string | \"none\" | no | The client side encryption type |\n| cseKey | string | \"\" | no | The UUID of the key used for client side encryption. Required if `cseType` not \"none\" |\n| edited | int | 0 | no | Unix timestamp when the user has last edited the tag |\n| hidden | bool | false | no | Whether or not the tag should be hidden |\n| favorite | bool | false | no | Whether or not the user has marked this tag as favorite |\n\n#### Return value\nThe success status code is `200 Ok`\n\n| Argument | Type | Description |\n| --- | --- | --- |\n| id | string | The UUID of the tag |\n| revision | string | The UUID of the new revision |\n\n#### Notes\n - If hou hide a tag, the tag will be no longer visible in passwords which are not hidden, but the passwords will be visible in the tag\n - If the `revision` argument is present, the value must match the latest revision or the action will fail with an error.\n This prevents the client from overwriting a more recent revision on the server with old data.\n - If the `edited` argument is \"0\" or missing, the timestamp from the last revision will be used\n - If the `edited` time is in the future, the current time will be used" }, "response": [] }, { "name": "Delete", "request": { "method": "DELETE", "header": [ { "key": "X-API-SESSION", "value": "{{http_api_session}}", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"id\" : \"{{tag_id}}\"\n //,\n //\"revision\": \"{{tag_revision}}\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/api/1.0/tag/delete", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "tag", "delete" ] }, "description": "# The delete action\nThe [delete action](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Tag-Api#the-delete-action) moves a tag to the trash or deletes it completely if it is already in the trash.\n\n#### Arguments\n| Arguments | Type | Default | Required | Description |\n| --- | --- | --- | --- | --- |\n| id | string | - | yes | The id of the tag |\n| revision | string | - | no | Assumed current revision of the tag (Since 2019.6.0) |\n\n#### Return value\nThe success status code is `200 Ok`\n\n| Argument | Type | Description |\n| --- | --- | --- |\n| id | string | The UUID of the tag |\n| revision | string | The UUID of the new revision. Only if the tag was moved to the trash |\n\n#### Notes\n - If a tag is moved to the trash, the relation to all passwords which are not in trash will be hidden from the password\n - If a tag is deleted, all relations to passwords are deleted\n - If the `revision` is set, the tag will only be deleted if that revision is the current revision. \n This way, a tag is not accidentally deleted instead of trashed if the client is out of sync." }, "response": [] }, { "name": "Restore", "request": { "method": "PATCH", "header": [ { "key": "X-API-SESSION", "value": "{{http_api_session}}", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"id\" : \"{{tag_id}}\"\n //,\n //\"revision\": \"{{tag_revision}}\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/api/1.0/tag/restore", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "tag", "restore" ] }, "description": "# The restore action\nThe [restore action](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Tag-Api#the-restore-action) can restore an earlier state of a tag.\n\n#### Arguments\n| Arguments | Type | Default | Required | Description |\n| --- | --- | --- | --- | --- |\n| id | string | - | yes | The id of the tag |\n| revision | string | - | no | The id of the revision |\n\n#### Return value\nThe success status code is `200 Ok`\n\n| Argument | Type | Description |\n| --- | --- | --- |\n| id | string | The UUID of the tag |\n| revision | string | The UUID of the new revision |\n\n#### Notes\n - If no revision is given and the tag is in trash, it will be removed from trash\n - If no revision is given and the tag is not in trash, nothing is done\n - If a revision is given and the revision is marked as in trash, it will be removed from trash\n - This action will always create a new revision\n - The server side encryption type may change\n - Deleted tags can not be restored" }, "response": [] } ], "description": "# The tag api\nThe [tag api](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Tag-Api) allows listing, creating, updating and deleting tags.\n\n# The Tag Object\n| Property | Type | Writable | Encrypted | Versioned | Length | Description |\n| --- | --- | --- | --- | --- | --- | --- |\n| id | string | no | no | no | 36 | The UUID of the tag |\n| label | string | yes | yes | yes | 48 | User defined label of the tag |\n| color | string | yes | yes | yes | 8 | The color of the tag. Any valid CSSv3 color is accepted. |\n| revision | string | no | no | yes | 36 | UUID of the current revision |\n| cseType | string | yes | no | yes | 10 | Type of the used client side encryption |\n| cseKey | string | yes | no | yes | 36 | UUID of the key used for client side encryption |\n| sseType | string | no | no | yes | 10 | Type of the used server side encryption |\n| client | string | no | no | yes | 256 | Name of the client which created this revision |\n| hidden | bool | yes | no | yes | 1 | Hides the tag in list / find actions |\n| trashed | bool | no | no | yes | 1 | True if the tag is in the trash |\n| favorite | bool | yes | no | yes | 1 | True if the user has marked the tag as favorite |\n| created | int | no | no | no | 12 | Unix timestamp when the tag was created |\n| updated | int | no | no | yes | 12 | Unix timestamp when the tag was updated |\n| edited | int | yes | no | yes | 12 | Unix timestamp when the user last edited the tag name or color |\n\n#### Detail Levels\n| Level | Description |\n| --- | --- |\n| model | Returns the base model |\n| +revisions | Adds the revisions property which contains all revisions. A revision consists of all properties marked as versioned and its own created property |\n| +passwords | Adds the passwords property with the base model of all passwords in this tag |\n| +password-ids | Adds the passwords property with the ids of all passwords in this tag. Can not be used with `+passwords` |\n| +password-tags | Loads the tags for all passwords in this tag in their respective model. Can only be used with `+passwords` |" }, { "name": "Share API", "item": [ { "name": "List", "request": { "method": "GET", "header": [ { "key": "X-API-SESSION", "value": "{{http_api_session}}", "type": "text" } ], "url": { "raw": "{{base_url}}/api/1.0/share/list", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "share", "list" ] }, "description": "# The list action\nThe [list action](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Share-Api#the-list-action) lists all shares with the user as owner or receiver.\n\n#### Arguments\n| Argument | Type | Default | Required | Description |\n| --- | --- | --- | --- | --- |\n| details | string | \"model\" | no | The detail level of the returned share objects |\n\n#### Return value\nThe success status code is `200 Ok`\nThe return value is a list of share objects with the given detail level\n\n#### Notes\n - This action still works if sharing has been disabled" }, "response": [] }, { "name": "List (Details)", "request": { "method": "POST", "header": [ { "key": "X-API-SESSION", "value": "{{http_api_session}}", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"details\": \"model+password\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/api/1.0/share/list", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "share", "list" ] }, "description": "# The list action\nThe [list action](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Share-Api#the-list-action) lists all shares with the user as owner or receiver.\n\n#### Arguments\n| Argument | Type | Default | Required | Description |\n| --- | --- | --- | --- | --- |\n| details | string | \"model\" | no | The detail level of the returned share objects |\n\n#### Return value\nThe success status code is `200 Ok`\nThe return value is a list of share objects with the given detail level\n\n#### Notes\n - This action still works if sharing has been disabled" }, "response": [] }, { "name": "Show", "request": { "method": "POST", "header": [ { "key": "X-API-SESSION", "value": "{{http_api_session}}", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"id\" : \"{{share_id}}\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/api/1.0/share/show", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "share", "show" ] }, "description": "# The show action\nThe [show action](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Share-Api#the-show-action) lists the properties of a single share.\n\n#### Arguments\n| Argument | Type | Default | Required | Description |\n| --- | --- | --- | --- | --- |\n| id | string | - | yes | The id of the share |\n| details | string | \"model\" | no | The detail level of the returned share object |\n\n#### Return value\nThe success status code is `200 Ok`\nThe return value is a share object with the given detail level\n\n#### Notes\n - This action still works if sharing has been disabled" }, "response": [] }, { "name": "Show (Details)", "request": { "method": "POST", "header": [ { "key": "X-API-SESSION", "value": "{{http_api_session}}", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"id\" : \"{{share_id}}\",\n \"details\": \"model+password\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/api/1.0/share/show", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "share", "show" ] }, "description": "# The show action\nThe [show action](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Share-Api#the-show-action) lists the properties of a single share.\n\n#### Arguments\n| Argument | Type | Default | Required | Description |\n| --- | --- | --- | --- | --- |\n| id | string | - | yes | The id of the share |\n| details | string | \"model\" | no | The detail level of the returned share object |\n\n#### Return value\nThe success status code is `200 Ok`\nThe return value is a share object with the given detail level\n\n#### Notes\n - This action still works if sharing has been disabled" }, "response": [] }, { "name": "Find", "request": { "method": "POST", "header": [ { "key": "X-API-SESSION", "value": "{{http_api_session}}", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"receiver\": \"max\"\n}\n", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/api/1.0/share/find", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "share", "find" ] }, "description": "# The find action\nThe [find action](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Share-Api#the-find-action) can be used to find all shares matching the given search criteria.\nOnly a specific set of fields is allowed in the criteria.\nHow the criteria array works is explained on the [object search page](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Object-Search.md).\n\n#### Arguments\n| Argument | Type | Default | Required | Description |\n| --- | --- | --- | --- | --- |\n| criteria | array | [] | no | The search criteria |\n| details | string | \"model\" | no | The detail level of the returned share objects |\n\n#### Allowed search fields\n| Field | Type | Description |\n| --- | --- | --- |\n| created | int | Unix timestamp when the share was created |\n| updated | int | Unix timestamp when the share was updated |\n| owner | string | User id of the owner of the share |\n| receiver | string | User id of the receiver of the share |\n| expires | int / null | Unix timestamp when the share will expire |\n| editable | bool | Whether or not the receiver can edit the password |\n| shareable | bool | Whether or not the receiver can share the password |\n\n#### Return value\nThe success status code is `200 Ok`\nThe return value is a list of shares objects that match the criteria with the given detail level\n\n#### Notes\n - The `owner` and `receiver` fields allow the special value `_self` which is replaced with the users id\n - This action still works if sharing has been disabled" }, "response": [] }, { "name": "Find (Details)", "request": { "method": "POST", "header": [ { "key": "X-API-SESSION", "value": "{{http_api_session}}", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"receiver\": \"max\",\n \"details\": \"model+password\"\n}\n", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/api/1.0/share/find", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "share", "find" ] }, "description": "# The find action\nThe [find action](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Share-Api#the-find-action) can be used to find all shares matching the given search criteria.\nOnly a specific set of fields is allowed in the criteria.\nHow the criteria array works is explained on the [object search page](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Object-Search.md).\n\n#### Arguments\n| Argument | Type | Default | Required | Description |\n| --- | --- | --- | --- | --- |\n| criteria | array | [] | no | The search criteria |\n| details | string | \"model\" | no | The detail level of the returned share objects |\n\n#### Allowed search fields\n| Field | Type | Description |\n| --- | --- | --- |\n| created | int | Unix timestamp when the share was created |\n| updated | int | Unix timestamp when the share was updated |\n| owner | string | User id of the owner of the share |\n| receiver | string | User id of the receiver of the share |\n| expires | int / null | Unix timestamp when the share will expire |\n| editable | bool | Whether or not the receiver can edit the password |\n| shareable | bool | Whether or not the receiver can share the password |\n\n#### Return value\nThe success status code is `200 Ok`\nThe return value is a list of shares objects that match the criteria with the given detail level\n\n#### Notes\n - The `owner` and `receiver` fields allow the special value `_self` which is replaced with the users id\n - This action still works if sharing has been disabled" }, "response": [] }, { "name": "Create", "request": { "method": "POST", "header": [ { "key": "X-API-SESSION", "value": "{{http_api_session}}", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"password\": \"{{password_id}}\",\n \"receiver\": \"max\",\n \"type\": \"user\",\n \"expires\": null,\n \"editable\": false,\n \"shareable\": false\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/api/1.0/share/create", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "share", "create" ] }, "description": "# The create action\nThe [create action](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Share-Api#the-create-action) creates a new share with the given attributes.\n\n#### Arguments\n| Argument | Type | Default | Required | Description |\n| --- | --- | --- | --- | --- |\n| password | string | - | yes | The UUID of the password |\n| receiver | string | - | yes | The user id of the user which the password should be shared with |\n| type | string | \"user\" | no | The type of the share |\n| expires | int / null | null | no | Unix timestamp when the share will expire |\n| editable | bool | false | no | Whether or not the receiver can edit the password |\n| shareable | bool | false | no | Whether or not the receiver can share the password |\n\n#### Return value\nThe success status code is `201 Created`\n\n| Argument | Type | Description |\n| --- | --- | --- |\n| id | string | The UUID of the share |\n\n#### Notes\n - This action will fail if the password is hidden or the CSE does not support sharing\n - You can not share a password with the same user more than once\n - This command will fail if sharing is disabled" }, "response": [] }, { "name": "Update", "request": { "method": "PATCH", "header": [ { "key": "X-API-SESSION", "value": "{{http_api_session}}", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"id\" : \"{{share_id}}\",\n \"expires\": null,\n \"editable\": false,\n \"shareable\": false\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/api/1.0/share/update", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "share", "update" ] }, "description": "# The update action\nThe [update action](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Share-Api#the-update-action) changes the properties of an existing share.\n\n#### Arguments\n| Argument | Type | Default | Required | Description |\n| --- | --- | --- | --- | --- |\n| id | string | - | yes | The UUID of the share |\n| expires | int / null | null | no | Unix timestamp when the share will expire |\n| editable | bool | false | no | Whether or not the receiver can edit the password |\n| shareable | bool | false | no | Whether or not the receiver can share the password |\n\n#### Return value\nThe success status code is `200 Ok`\n\n| Argument | Type | Description |\n| --- | --- | --- |\n| id | string | The UUID of the share |\n\n#### Notes\n - You can only edit a share if it is owned by the user\n - This command will fail if sharing is disabled" }, "response": [] }, { "name": "Delete", "request": { "method": "DELETE", "header": [ { "key": "X-API-SESSION", "value": "{{http_api_session}}", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"id\" : \"{{share_id}}\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/api/1.0/share/delete", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "share", "delete" ] }, "description": "# The delete action\nThe [delete action](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Share-Api#the-delete-action) deletes a share.\n\n#### Arguments\n| Arguments | Type | Default | Required | Description |\n| --- | --- | --- | --- | --- |\n| id | string | - | yes | The id of the share |\n\n#### Return value\nThe success status code is `200 Ok`\n\n| Argument | Type | Description |\n| --- | --- | --- |\n| id | string | The UUID of the share |\n\n#### Notes\n - You can only delete shares owned by the user.\n - If you want to delete a share where the current user is the receiver, you need to delete the password instead\n - This action still works if sharing has been disabled" }, "response": [] }, { "name": "Partners", "request": { "method": "GET", "header": [ { "key": "X-API-SESSION", "value": "{{http_api_session}}", "type": "text" } ], "url": { "raw": "{{base_url}}/api/1.0/share/partners", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "share", "partners" ] }, "description": "# The partners action\nThis [partners action](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Share-Api#the-partners-action) returns an array of users that the current user can share with.\n\n#### Arguments\n| Argument | Type | Default | Required | Description |\n| --- | --- | --- | --- | --- |\n| search | string | - | no | Find users containing the search string |\n| limit | int | 5 | no | The maximum amount of matches to return |\n\n#### Return value\nThe success status code is `200 Ok`.\nThe return value is an array with the user id as key and the user display name as value.\nThe array is at maximum around 256 entries long.\nIf the autocompletion is disabled by the administrator the result is an empty array\n\n#### Notes\n - This command will fail if sharing is disabled\n - The `limit` can not be less than 5 or more than 256\n - This api endpoint has a rate limit of 45 requests per minute" }, "response": [] }, { "name": "Partners Copy", "request": { "method": "POST", "header": [ { "key": "X-API-SESSION", "value": "{{http_api_session}}", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"search\": \"mus\",\n \"limit\" : 5\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/api/1.0/share/partners", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "share", "partners" ] }, "description": "# The partners action\nThis [partners action](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Share-Api#the-partners-action) returns an array of users that the current user can share with.\n\n#### Arguments\n| Argument | Type | Default | Required | Description |\n| --- | --- | --- | --- | --- |\n| search | string | - | no | Find users containing the search string |\n| limit | int | 5 | no | The maximum amount of matches to return |\n\n#### Return value\nThe success status code is `200 Ok`.\nThe return value is an array with the user id as key and the user display name as value.\nThe array is at maximum around 256 entries long.\nIf the autocompletion is disabled by the administrator the result is an empty array\n\n#### Notes\n - This command will fail if sharing is disabled\n - The `limit` can not be less than 5 or more than 256\n - This api endpoint has a rate limit of 45 requests per minute" }, "response": [] } ], "description": "# The share api\nThe [share api](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Share-Api) provides functionality to share passwords with other users on the same server.\nThis api is restricted by the sharing settings of the server, so the [related server.sharing.* settings](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Settings-Api#scopes-and-settings) should be checked before using it.\n\n\n## The Share Object\n| Property | Type | Writable | Description |\n| --- | --- | --- | --- |\n| id | string | no | The UUID of the share |\n| created | int | no | Unix timestamp when the share was created |\n| updated | int | no | Unix timestamp when the share was updated |\n| expires | int / null | yes | Unix timestamp when the share will expire |\n| editable | bool | yes | Whether or not the receiving user can edit the password |\n| shareable | bool | yes | Whether or not the receiving user can share the password again |\n| updatePending | bool | no | Whether or not data changes for this share are in queue |\n| password | string | yes | The UUID of the password |\n| owner | object | yes | Object with the id and the full name of the owner |\n| receiver | object | yes | Object with the id and the full name of the receiver |\n\n#### Detail Levels\n| Level | Description |\n| --- | --- |\n| model | Returns the base model |\n| +password | Fills the password property with the base model of the password |\n\n#### Notes\n - Shares have no revisions\n - The value of the `password` attribute is different for the owner and the receiver\n - The `shareable` will always be `false` for the receiver if resharing is disabled system wide" }, { "name": "Settings API", "item": [ { "name": "Get", "request": { "method": "POST", "header": [ { "key": "X-API-SESSION", "value": "{{http_api_session}}", "type": "text" } ], "body": { "mode": "raw", "raw": "[\n \"user.password.generator.strength\",\n \"user.password.generator.numbers\",\n \"user.password.generator.special\",\n \"client.postman.test\"\n]", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/api/1.0/settings/get", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "settings", "get" ] }, "description": "# The get action\nThe [get action](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Settings-Api#the-get-action) retrieves the value of one or more settings.\nThis action accepts an array of strings where each value is the name of one setting.\n\n#### Arguments\n| Arguments | Type | Default | Required | Description |\n| --- | --- | --- | --- | --- |\n| first setting | string | - | yes | The name of the first setting |\n| second setting | string | - | no | The name of the second setting |\n\n#### Return value\nThe success status code is `200 Ok`.\nThe return value is an object with the requested settings.\nEach key of the object is a setting and the value is the value of the setting.\n\n#### Notes\n - The Enhanced API also offers the option to get a single setting\n - If the setting is not defined, it will default to `null`\n - Accessing an undefined setting in the `client` scope will not create it" }, "response": [] }, { "name": "Set", "request": { "method": "POST", "header": [ { "key": "X-API-SESSION", "value": "{{http_api_session}}", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"user.password.generator.numbers\": true,\n \"user.password.generator.special\": true,\n \"client.postman.test\": \"it works\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/api/1.0/settings/set", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "settings", "set" ] }, "description": "# The set action\nThe [set action](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Settings-Api#the-set-action) updates the value of one or more settings.\nThis action accepts an object where each key is the name of a setting and the value is the new value\n\n#### Arguments\n| Arguments | Type | Default | Required | Description |\n| --- | --- | --- | --- | --- |\n| first setting | mixed | - | yes | The first setting to be set |\n| second setting | mixed | - | no | The second setting to be set |\n\n#### Return value\nThe success status code is `200 Ok`.\nThe return value is an object with the updated settings and their new value.\n\n#### Notes\n - The Enhanced API also offers the option to set a single setting\n - If the scope is not writable, the setting will not be saved and default to `null` in the return value\n - If the setting is not defined in the `user` scope, it will not be saved and default to `null` in the return value\n - If the size limitations of the `client` scope are exceeded, an error will be returned" }, "response": [] }, { "name": "List", "request": { "method": "GET", "header": [ { "key": "X-API-SESSION", "value": "{{http_api_session}}", "type": "text" } ], "url": { "raw": "{{base_url}}/api/1.0/settings/list", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "settings", "list" ] }, "description": "# The list action\nThe [list action](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Settings-Api#the-list-action) returns all settings or the settings within a scope if one is given.\n\n#### Arguments\n| Arguments | Type | Default | Required | Description |\n| --- | --- | --- | --- | --- |\n| scopes | array | - | no | An array with the names of all requested scopes as value |\n\n#### Return value\nThe return value is a JSON formatted object with all settings from the requested scopes.\n\n#### Notes\n - If a scope has been specified, only the values of this scope will be returned\n - If the specified scopes do not exist, te return value is an empty array\n - If no scope has been defined, all existing settings will be returned" }, "response": [] }, { "name": "List (Scope)", "request": { "method": "POST", "header": [ { "key": "X-API-SESSION", "value": "{{http_api_session}}", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"scopes\": [\"user\", \"client\"]\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/api/1.0/settings/list", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "settings", "list" ] }, "description": "# The list action\nThe [list action](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Settings-Api#the-list-action) returns all settings or the settings within a scope if one is given.\n\n#### Arguments\n| Arguments | Type | Default | Required | Description |\n| --- | --- | --- | --- | --- |\n| scopes | array | - | no | An array with the names of all requested scopes as value |\n\n#### Return value\nThe return value is a JSON formatted object with all settings from the requested scopes.\n\n#### Notes\n - If a scope has been specified, only the values of this scope will be returned\n - If the specified scopes do not exist, te return value is an empty array\n - If no scope has been defined, all existing settings will be returned" }, "response": [] }, { "name": "Reset", "request": { "method": "POST", "header": [ { "key": "X-API-SESSION", "value": "{{http_api_session}}", "type": "text" } ], "body": { "mode": "raw", "raw": "[\n \"user.password.generator.numbers\",\n \"user.password.generator.special\",\n \"client.postman.test\"\n]", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/api/1.0/settings/reset", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "settings", "reset" ] }, "description": "# The reset action\nThe [reset action](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Settings-Api#the-reset-action) will reset the value of one or more settings to the default.\nThis action accepts an array of strings where each value is the name of one setting.\n\n#### Arguments\n| Arguments | Type | Default | Required | Description |\n| --- | --- | --- | --- | --- |\n| first setting | string | - | yes | The name of the first setting |\n| second setting | string | - | no | The name of the second setting |\n\n#### Return value\nThe success status code is `200 Ok`.\nThe return value is an object with the cleared settings.\nEach key of the object is a setting and the value is the value of the setting.\n\n#### Notes\n - If you reset a setting in the client scope, it will be deleted and no longer appear in the list action\n - If the setting does not exist, the value will be `null`" }, "response": [] } ], "description": "# The settings api\nThe [settings api](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Settings-Api) allows clients to get and set settings in the user account.\n\n## Scopes and Settings\n| Scope | Writable | Description |\n| --- | --- | --- |\n| user | yes | Settings for the current user account. Used to configure backend/api behaviour |\n| client | yes | Client settings. Accessible to all clients attached to the user account |\n| server | no | Server settings, configured by the admin |\n\n| Setting | Type | Default | Description |\n| --- | --- | --- | --- |\n| user.password.generator.strength | int | 1 | The strength of generated passwords, a value between 0 (weak) and 4 (strong) |\n| user.password.generator.numbers | bool | false | Whether or not generated passwords contain numbers |\n| user.password.generator.special | bool | false | Whether or not generated passwords contain special characters |\n| user.password.security.duplicates | bool | true | Whether or not the server should check passwords for duplicates |\n| user.password.security.age | int | 0 | Marks passwords a weak if they surpass the specified date mark. 0 is off. |\n| user.mail.security | bool | true | Whether or not the user receives mails about security issues |\n| user.mail.shares | bool | false | Whether or not the user receives mails about new shared objects |\n| user.notification.security | bool | true | Whether or not the user receives notifications about security issues |\n| user.notification.shares | bool | true | Whether or not the user receives notifications about new shared objects |\n| user.notification.errors | bool | true | Whether or not the user receives notifications about background errors |\n| user.notification.admin | bool | true | Whether or not the user receives notifications about configuration issues. Only for admins |\n| user.encryption.sse | int | 1 | The server side encryption type. 0 = None, 1 = SSEv1, 2 = SSEv1 |\n| user.encryption.cse | int | 0 | The client side encryption type. 0 = None, 1 = CSEv1 |\n| user.sharing.editable | bool | true | Whether or not the editable option should be set by default for a new share. Not writeable if sharing disabled. |\n| user.sharing.resharing | bool | true | Whether or not the resharing option should be set by default for a new share. Not writeable if sharing or resharing disabled. |\n| user.session.lifetime | int | 600 | The session lifetime in seconds |\n| server.version | string | - | The Nextcloud version of the server, e.g. \"20\" |\n| server.app.version | string | - | The app version of the server, e.g. \"2020.9\" |\n| server.baseUrl | string | - | The base url of the server |\n| server.baseUrl.webdav | string | - | The base url of the WebDav service used for file storage |\n| server.sharing.enabled | bool | true | Whether or not sharing is enabled globally |\n| server.sharing.resharing | bool | true | Whether or not resharing shared entities is enabled globally |\n| server.sharing.autocomplete | bool | true | Whether or not the [auto-complete](./Share-Api.md#the-partners-action) request works |\n| server.sharing.types | array | `[\"user\"]` | List of supported sharing types. |\n| server.theme.color.primary | string | `#745bca` | The color of the current Nextcloud theme |\n| server.theme.color.text | string | `#ffffff` | The text color of the current Nextcloud theme |\n| server.theme.color.background | string | `#ffffff` | The background color of the current Nextcloud theme |\n| server.theme.background | string | - | The url to the current Nextcloud background image |\n| server.theme.logo | string | - | The url to the logo of the current Nextcloud theme |\n| server.theme.label | string | \"Nextcloud\" | The name of the Nextcloud instance |\n| server.theme.app.icon | string | - | The url to the current svg app icon |\n| server.theme.folder.icon | string | - | The url to the current svg folder icon |\n| server.handbook.url | string | - | The base url of the in-app user handbook |\n| server.performance | int | 2 | An integer value indicating the server performance preference. 0 is a slow server where requests should be avoided (max 1 simultaneous request), 5 is a fast server which can handle many requests (x * 3 simultaneous requests), 6 is for unlimited requests. |\n| client.* | - | null | The client scope allows client defined keys |\n\n#### Notes\n - The `server.theme.background` image might have a transparent background. In this case the background color should be `server.theme.color`.\n - The `client` scope allows keys with up to 48 characters, excluding `client.`\n - The `client` scope allows values with a maximum length of 128 characters\n - The `client` scope is shared between all clients" }, { "name": "Token API", "item": [ { "name": "Request", "request": { "method": "GET", "header": [ { "key": "X-API-SESSION", "value": "{{http_api_session}}", "type": "text" } ], "url": { "raw": "{{base_url}}/api/1.0/token/{{token_provider}}/request", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "token", "{{token_provider}}", "request" ] }, "description": "# The request action\nThe [request action](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Token-Api#the-request-action) is required for some token in order to send the user the token.\nFor example the email token will send an email to the users mail account.\nIt is recommended to only call this action if the user has chosen that token, not just trigger it for all available tokens.\n\n#### Arguments\n| Argument | Type | Description |\n| --- | --- | --- |\n| provider | string | The id of the token |\n\n#### Return value\nThe success status code is `200 Ok`.\n\n| Argument | Type | Description |\n| --- | --- | --- |\n| success | boolean | Whether or not the action was successful |\n| data | object | For the \"Nextcloud Notification\" token, this object will contain the property `token` with the token value. |" }, "response": [] } ], "description": "# The token api\nThe [token api](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Token-Api) allows clients to trigger 2FA token providers in order to send the user a 2FA token.\n\n## Token types\n\n### The token object\nThe [session request](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Session-Api#the-request-action) action will return an array of possible tokens.\nEach token object looks like this:\n\n```json\n{\n \"type\":\"user-token\",\n \"id\":\"tokenid\",\n \"label\":\"Human readable label\",\n \"description\":\"A short description of the token process\",\n \"request\":true\n}\n```\n\n| Argument | Type | Description |\n| --- | --- | --- |\n| type | string | The token type is either `user-token` or `request-token` |\n| id | object | This id must be used in the [token request](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Token-Api#the-request-action) and the [session open](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Session-Api#the-open-action) action. |\n| label | string | The label of the token |\n| description | string | A description of the token adn the authentication process |\n| request | boolean | Whether or not the authentication process must be triggered with the [request action](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Token-Api#the-request-action) |\n\n\n### The user token\nTokens with the type `user-token` require that the user enters a code which is then sent to the server.\nIt might be required that the [request action](#the-request-action) is executed in order to provide the user with that code.\n\n### The request token\nCurrently only the \"Nextcloud Notification\" is a `request-token`.\nThis token does not require a user input.\nInstead the user will confirm the token trough a second app or device.\nThe [request action](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Token-Api#the-request-action) will provide the token that needs to be sent to the server." }, { "name": "Account API", "item": [ { "name": "Reset", "request": { "method": "GET", "header": [ { "key": "X-API-SESSION", "value": "{{http_api_session}}", "type": "text" } ], "url": { "raw": "{{base_url}}/api/1.0/account/reset", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "account", "reset" ] }, "description": "# The reset action\nThe [reset action](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Account-Api#the-reset-action) will delete all user data and settings and reset the account to a blank state.\nThis is a destructive action and can only be undone with a backup.\nAny request without a code will return a random reset code.\nThe client should show the code to the user and request that the user enters the code manually to confirm the account reset.\nIf the request contains a code, the app will check if it matches the last given code and perform the reset if so.\n\n#### Arguments\n| Argument | Type | Default | Required | Description |\n| --- | --- | --- | --- | --- |\n| code | string | - | no | The code for the user to enter |\n\n#### Return value\nThe success status code is `200 Ok` or `202 Accepted`.\n\n| Argument | Type | Description |\n| --- | --- | --- |\n| status | string | Either \"accepted\" or \"ok\". Ok means the action was completed |\n| code | string | Random string for the user to enter to confirm the request |\n\n#### Notes\n - This request will close the session\n - This request will not delete any app or device tokens" }, "response": [] }, { "name": "Reset Confirm", "event": [ { "listen": "test", "script": { "exec": [ "" ], "type": "text/javascript" } } ], "request": { "method": "POST", "header": [ { "key": "X-API-SESSION", "value": "{{http_api_session}}", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"code\": \"your-rese-t000-code\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/api/1.0/account/reset", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "account", "reset" ] }, "description": "# The reset action\nThe [reset action](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Account-Api#the-reset-action) will delete all user data and settings and reset the account to a blank state.\nThis is a destructive action and can only be undone with a backup.\nAny request without a code will return a random reset code.\nThe client should show the code to the user and request that the user enters the code manually to confirm the account reset.\nIf the request contains a code, the app will check if it matches the last given code and perform the reset if so.\n\n#### Arguments\n| Argument | Type | Default | Required | Description |\n| --- | --- | --- | --- | --- |\n| code | string | - | no | The code for the user to enter |\n\n#### Return value\nThe success status code is `200 Ok` or `202 Accepted`.\n\n| Argument | Type | Description |\n| --- | --- | --- |\n| status | string | Either \"accepted\" or \"ok\". Ok means the action was completed |\n| code | string | Random string for the user to enter to confirm the request |\n\n#### Notes\n - This request will close the session\n - This request will not delete any app or device tokens" }, "response": [] }, { "name": "Get Challenge", "event": [ { "listen": "test", "script": { "exec": [ "" ], "type": "text/javascript" } } ], "request": { "method": "GET", "header": [ { "key": "X-API-SESSION", "value": "{{http_api_session}}", "type": "text" } ], "url": { "raw": "{{base_url}}/api/1.0/account/challenge/get", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "account", "challenge", "get" ] }, "description": "# The get challenge action\nThe [get challenge action](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Account-Api#the-get-challenge-action) will return the current password challenge.\n\n#### Arguments\nThere are no arguments for this action.\n\n#### Return value\nThe success status code is `200 Ok` .\nThe request returns an object with the challenge data and the property `token` which identifies the challenge type.\nThe format matches the one in of the `challenge` property from [request session](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Session-Api#the-request-action)." }, "response": [] }, { "name": "Set Challenge", "event": [ { "listen": "test", "script": { "exec": [ "" ], "type": "text/javascript" } } ], "request": { "method": "POST", "header": [ { "key": "X-API-SESSION", "value": "{{http_api_session}}", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"secret\":\"6d2be297294d63c12ed50a304684d8d27090a5a8d8352169cefffa677a44a3f1\",\n \"data\":[\n \"03f98b14af2f219e7d83a9b45b347a675af73d67fac54fdd5a397d381074e7ca5920d7b00c076c5a2dbaadf60d206f75c88343052616e77426a1340d5d89a0301039c47882a69266b3d89515755757203a5583f6f2fc80cec68b1ed7e4d5dfc632224eb392c7e7c19f67865c832533042043995d0921f316fa6e513863427092dbfcf72581c616b7d9c87f659c55ae053d7239435ee7a9f19e430cc3ee77c509c556c2e923b7dbe56c34401ad718954174f4e0c06112d8eb475ec102f010a16daf4a69aa9ff6b5b864083b8d3695c4af8180b11ffbf142d004ddd86d2688025dd4e74fdf9f365b02980f68d887dc03aeaa627710e5dc683e1e5fdc4d13d6363f\",\n \"de4ac0ba7d5b9a0782f4654d0b21cd2255d180011d916d78812cfcee237fa7859d809198ad1d355be3a3ab2b2aa0ee5fd2354b6311751b2961dec4be8c7c1cb3\",\n \"b6c2067b93cee98bfdd27249375dc512\"\n ],\n \"oldSecret\":\"5ceb88da25ab6d3286caf7a168294a5d1d719241d371848fc81e7826c122c4e6\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/api/1.0/account/challenge/set", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "account", "challenge", "set" ] }, "description": "# The set challenge action\nThe [set challenge action](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Account-Api#the-set-challenge-action) will create or update the user challenge and enable CSE and SSEv2.\nIt is not possible to specify the challenge type and the server always expects you to use the latest challenge method.\nThis is currently `PWDv1r1`.\n\n#### Arguments\n| Argument | Type | Default | Required | Description |\n| --- | --- | --- | --- | --- |\n| secret | string | - | yes | The computed secret of the new challenge |\n| data | array | - | yes | An array with the challenge data |\n| oldSecret | string/null | null | sometimes | If the user already has CSE set up, the secret of the current challenge is required |\n\n#### Return value\nThe success status code is `200 Ok` .\nThe request returns an object property success and the value true if successful.\n\n#### Notes\n - This action will fail if the `client-side-encryption` feature is disabled on the server\n - This action will authorize the current session if successful" }, "response": [] } ], "description": "The [account api](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Account-Api) allows general the management of the user account." }, { "name": "Keychain API", "item": [ { "name": "Get", "event": [ { "listen": "test", "script": { "exec": [ "" ], "type": "text/javascript" } } ], "request": { "method": "GET", "header": [ { "key": "X-API-SESSION", "value": "{{http_api_session}}", "type": "text" } ], "url": { "raw": "{{base_url}}/api/1.0/keychain/get", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "keychain", "get" ] }, "description": "# The get action\nThe [get action](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Keychain-Api#the-get-action) will return an object with all keychains.\n\n#### Arguments\nThere are no arguments for this action.\n\n#### Return value\nThe success status code is `200 Ok` .\nThe request returns an object with the keychain type as properties and the encrypted keychain data as value of that property.\nThe format matches the one in of the `keys` property from [open session](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Session-Api#the-open-action)." }, "response": [] }, { "name": "Set", "event": [ { "listen": "test", "script": { "exec": [ "" ], "type": "text/javascript" } } ], "request": { "method": "POST", "header": [ { "key": "X-API-SESSION", "value": "{{http_api_session}}", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"id\":\"CSEv1r1\",\n \"data\":\"4b6d9214cbc5b499e89a2e2a475b354b7429a8be4482b997b498daa2ada2c5458ada4184a2b09ed413eaf5e9b668746d09311d5b711851e6fdb6fe3eaf251e77efc652e761077bafe06df2eac5aed5b0e389960396b0cb62acf743d5f1a84a055b225ca4f733865a900a712ff0efd1866b0d55e65d94b56cc1392bc31fbfb96d52c69d231b0b00168102b56e4c112b1df3ecd3bad4d45a718a829f2a74a87e0ed314f4f1f731d07b53c3318fecc9001afdf1fa5c23b56cd081c48f23315b9dc765445c343a134eaa4c515d00ec7ac4714aa76f20b33ef8ef71f48263d5\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/api/1.0/keychain/set", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "keychain", "set" ] }, "description": "# The set action\nThe [set action](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Account-Api#the-set-challenge-action) will create or update a keychain.\n\n#### Arguments\n| Argument | Type | Default | Required | Description |\n| --- | --- | --- | --- | --- |\n| id | string | - | yes | Id or type of the keychain |\n| data | string | - | yes | The encrypted keychain data |\n\n#### Return value\nThe success status code is `200 Ok` .\nThe request returns an object with the property id and the keychain id / type as value.\n\n#### Notes\n - Keychains can only be created if a challenge is set" }, "response": [] } ], "description": "The [keychain api](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Keychain-Api) allows the management of the client-side encryption keychains.\nThis api is only available if the account has a challenge." }, { "name": "Service API", "item": [ { "name": "Generate Password", "event": [ { "listen": "test", "script": { "exec": [ "" ], "type": "text/javascript" } } ], "request": { "method": "GET", "header": [ { "key": "X-API-SESSION", "value": "{{http_api_session}}", "type": "text" } ], "url": { "raw": "{{base_url}}/api/1.0/service/password", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "service", "password" ] }, "description": "# The password action\nThe [password action](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Service-Api#the-password-action) generates one password with the given settings.\n\n#### Arguments\n| Arguments | Type | Default | Required | Description |\n| --- | --- | --- | --- | --- |\n| strength | int | 1 | no | A higher value creates a longer and more complex password |\n| numbers | bool | false | no | Whether or not numbers should be used in the password |\n| special | bool | false | no | Whether or not special characters should be used in the password |\n\n#### Return value\nThe success status code is `200 Ok`\n\n| Argument | Type | Description |\n| --- | --- | --- |\n| password | string | The generated password |\n| words | string | The words used in the password |\n| strength | int | The strength setting used |\n| numbers | bool | Whether or not numbers were used in the password |\n| special | bool | Whether or not special characters were used in the password |\n\n#### Notes\n - If you call this action with a GET request, the users settings will be used\n - If you call this action with a POST request, the default settings will be used for missing parameters\n - Generated passwords are checked for security automatically\n - The maximum value for `strength` is 4" }, "response": [ { "name": "Example Request", "originalRequest": { "method": "GET", "header": [ { "key": "X-API-SESSION", "value": "{{http_api_session}}", "type": "text" } ], "url": { "raw": "{{base_url}}/api/1.0/service/password", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "service", "password" ] } }, "status": "OK", "code": 200, "_postman_previewlanguage": "json", "header": [ { "key": "Server", "value": "nginx" }, { "key": "Date", "value": "Sun, 04 Feb 2024 08:49:18 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Content-Length", "value": "112" }, { "key": "Connection", "value": "keep-alive" }, { "key": "Referrer-Policy", "value": "no-referrer" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "X-Robots-Tag", "value": "noindex, nofollow" }, { "key": "X-XSS-Protection", "value": "1; mode=block" }, { "key": "X-Powered-By", "value": "PHP/8.2.15" }, { "key": "Expires", "value": "Thu, 19 Nov 1981 08:52:00 GMT" }, { "key": "Cache-Control", "value": "no-cache, no-store, must-revalidate" }, { "key": "Pragma", "value": "no-cache" }, { "key": "Content-Security-Policy", "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" }, { "key": "Set-Cookie", "value": "PWTESTnc28=04dd84e5520b5d2b92e6f01e31f5dd6a; path=/; secure; HttpOnly; SameSite=Lax" }, { "key": "Set-Cookie", "value": "PWTESTnc28=04dd84e5520b5d2b92e6f01e31f5dd6a; path=/; secure; HttpOnly; SameSite=Lax" }, { "key": "Set-Cookie", "value": "PWTESTnc28=04dd84e5520b5d2b92e6f01e31f5dd6a; path=/; secure; HttpOnly; SameSite=Lax" }, { "key": "Set-Cookie", "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; secure; HttpOnly" }, { "key": "Set-Cookie", "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; secure; HttpOnly" }, { "key": "Set-Cookie", "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; secure; HttpOnly" }, { "key": "Set-Cookie", "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; secure; HttpOnly" }, { "key": "Set-Cookie", "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; secure; HttpOnly" }, { "key": "Set-Cookie", "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; secure; HttpOnly" }, { "key": "Set-Cookie", "value": "PWTESTnc28=04dd84e5520b5d2b92e6f01e31f5dd6a; path=/; secure; HttpOnly; SameSite=Lax" }, { "key": "Set-Cookie", "value": "PWTESTnc28=978afd80cf09308768f2563f0ff133cc; path=/; secure; HttpOnly; SameSite=Lax" }, { "key": "Set-Cookie", "value": "PWTESTnc28=978afd80cf09308768f2563f0ff133cc; path=/; secure; HttpOnly; SameSite=Lax" }, { "key": "Set-Cookie", "value": "PWTESTnc28=978afd80cf09308768f2563f0ff133cc; path=/; secure; HttpOnly; SameSite=Lax" }, { "key": "Set-Cookie", "value": "PWTESTnc28=d1855b9dd9865b35714285390ce2d88f; path=/; secure; HttpOnly; SameSite=Lax" }, { "key": "Set-Cookie", "value": "nc_passwords=e20292ebe776ed195e060d0f0a3fb365614857017b24320d7df0223419edcb7466785b46e78b2699422b9f77a0b3155f149f21e1917a8f054f0c47a4736f41dc68aa277696527b6d2c05f9e9ed7ab5db%7Cab7dd327536db095a4bd759f30f54035%7Cb3546a4dca52744ae57b25d4d2f3c173066676819db8732fcab9353755abbe4cf17fa4df5036032d1e89543601d6e263690d010c4fdd84bcb822a4c5db420b32%7C3; path=/; secure; HttpOnly; SameSite=Lax" }, { "key": "X-Request-Id", "value": "s5oaPfXdzyJAEivdxtBz" }, { "key": "Feature-Policy", "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" }, { "key": "X-API-SESSION", "value": "e20292ebe776ed195e060d0f0a3fb365614857017b24320d7df0223419edcb7466785b46e78b2699422b9f77a0b3155f149f21e1917a8f054f0c47a4736f41dc68aa277696527b6d2c05f9e9ed7ab5db|ab7dd327536db095a4bd759f30f54035|b3546a4dca52744ae57b25d4d2f3c173066676819db8732fcab9353755abbe4cf17fa4df5036032d1e89543601d6e263690d010c4fdd84bcb822a4c5db420b32|3" }, { "key": "Content-Encoding", "value": "gzip" }, { "key": "Strict-Transport-Security", "value": "max-age=31536000; includeSubDomains; preload" } ], "cookie": [], "body": "{\n \"password\": \"FutureReleaseDrawRed\",\n \"words\": [\n \"Future\",\n \"Release\",\n \"Draw\",\n \"Red\"\n ],\n \"strength\": 1,\n \"numbers\": false,\n \"special\": false\n}" } ] }, { "name": "Generate Password (Custom)", "event": [ { "listen": "test", "script": { "exec": [ "" ], "type": "text/javascript" } } ], "request": { "method": "POST", "header": [ { "key": "X-API-SESSION", "value": "{{http_api_session}}", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"strength\": 4,\n \"numbers\" : true,\n \"special\" : true\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/api/1.0/service/password", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "service", "password" ] }, "description": "# The password action\nThe [password action](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Service-Api#the-password-action) generates one password with the given settings.\n\n#### Arguments\n| Arguments | Type | Default | Required | Description |\n| --- | --- | --- | --- | --- |\n| strength | int | 1 | no | A higher value creates a longer and more complex password |\n| numbers | bool | false | no | Whether or not numbers should be used in the password |\n| special | bool | false | no | Whether or not special characters should be used in the password |\n\n#### Return value\nThe success status code is `200 Ok`\n\n| Argument | Type | Description |\n| --- | --- | --- |\n| password | string | The generated password |\n| words | string | The words used in the password |\n| strength | int | The strength setting used |\n| numbers | bool | Whether or not numbers were used in the password |\n| special | bool | Whether or not special characters were used in the password |\n\n#### Notes\n - If you call this action with a GET request, the users settings will be used\n - If you call this action with a POST request, the default settings will be used for missing parameters\n - Generated passwords are checked for security automatically\n - The maximum value for `strength` is 4" }, "response": [ { "name": "Example Request", "originalRequest": { "method": "POST", "header": [ { "key": "X-API-SESSION", "value": "{{http_api_session}}", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"strength\": 4,\n \"numbers\" : true,\n \"special\" : true\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/api/1.0/service/password", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "service", "password" ] } }, "status": "OK", "code": 200, "_postman_previewlanguage": "json", "header": [ { "key": "Server", "value": "nginx" }, { "key": "Date", "value": "Sun, 04 Feb 2024 08:49:41 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Content-Length", "value": "153" }, { "key": "Connection", "value": "keep-alive" }, { "key": "Referrer-Policy", "value": "no-referrer" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "X-Robots-Tag", "value": "noindex, nofollow" }, { "key": "X-XSS-Protection", "value": "1; mode=block" }, { "key": "X-Powered-By", "value": "PHP/8.2.15" }, { "key": "Expires", "value": "Thu, 19 Nov 1981 08:52:00 GMT" }, { "key": "Cache-Control", "value": "no-cache, no-store, must-revalidate" }, { "key": "Pragma", "value": "no-cache" }, { "key": "Content-Security-Policy", "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" }, { "key": "Set-Cookie", "value": "PWTESTnc28=d1855b9dd9865b35714285390ce2d88f; path=/; secure; HttpOnly; SameSite=Lax" }, { "key": "Set-Cookie", "value": "PWTESTnc28=d1855b9dd9865b35714285390ce2d88f; path=/; secure; HttpOnly; SameSite=Lax" }, { "key": "Set-Cookie", "value": "PWTESTnc28=d1855b9dd9865b35714285390ce2d88f; path=/; secure; HttpOnly; SameSite=Lax" }, { "key": "Set-Cookie", "value": "PWTESTnc28=d1855b9dd9865b35714285390ce2d88f; path=/; secure; HttpOnly; SameSite=Lax" }, { "key": "Set-Cookie", "value": "PWTESTnc28=d1855b9dd9865b35714285390ce2d88f; path=/; secure; HttpOnly; SameSite=Lax" }, { "key": "Set-Cookie", "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; secure; HttpOnly" }, { "key": "Set-Cookie", "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; secure; HttpOnly" }, { "key": "Set-Cookie", "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; secure; HttpOnly" }, { "key": "Set-Cookie", "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; secure; HttpOnly" }, { "key": "Set-Cookie", "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; secure; HttpOnly" }, { "key": "Set-Cookie", "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; secure; HttpOnly" }, { "key": "Set-Cookie", "value": "PWTESTnc28=d1855b9dd9865b35714285390ce2d88f; path=/; secure; HttpOnly; SameSite=Lax" }, { "key": "Set-Cookie", "value": "PWTESTnc28=b464be2e61524516ec7f79d530411409; path=/; secure; HttpOnly; SameSite=Lax" }, { "key": "Set-Cookie", "value": "PWTESTnc28=b464be2e61524516ec7f79d530411409; path=/; secure; HttpOnly; SameSite=Lax" }, { "key": "Set-Cookie", "value": "PWTESTnc28=b464be2e61524516ec7f79d530411409; path=/; secure; HttpOnly; SameSite=Lax" }, { "key": "Set-Cookie", "value": "PWTESTnc28=97269944ce6eb68a1b45606cbd4923e7; path=/; secure; HttpOnly; SameSite=Lax" }, { "key": "Set-Cookie", "value": "nc_passwords=e20292ebe776ed195e060d0f0a3fb365614857017b24320d7df0223419edcb7466785b46e78b2699422b9f77a0b3155f149f21e1917a8f054f0c47a4736f41dc68aa277696527b6d2c05f9e9ed7ab5db%7Cab7dd327536db095a4bd759f30f54035%7Cb3546a4dca52744ae57b25d4d2f3c173066676819db8732fcab9353755abbe4cf17fa4df5036032d1e89543601d6e263690d010c4fdd84bcb822a4c5db420b32%7C3; path=/; secure; HttpOnly; SameSite=Lax" }, { "key": "X-Request-Id", "value": "rJy8vbLMSEIyemJe6J39" }, { "key": "Feature-Policy", "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" }, { "key": "X-API-SESSION", "value": "e20292ebe776ed195e060d0f0a3fb365614857017b24320d7df0223419edcb7466785b46e78b2699422b9f77a0b3155f149f21e1917a8f054f0c47a4736f41dc68aa277696527b6d2c05f9e9ed7ab5db|ab7dd327536db095a4bd759f30f54035|b3546a4dca52744ae57b25d4d2f3c173066676819db8732fcab9353755abbe4cf17fa4df5036032d1e89543601d6e263690d010c4fdd84bcb822a4c5db420b32|3" }, { "key": "Content-Encoding", "value": "gzip" }, { "key": "Strict-Transport-Security", "value": "max-age=31536000; includeSubDomains; preload" } ], "cookie": [], "body": "{\n \"password\": \"Se€k!ng$a1esS3cur€Comp37!ti0nCons€cu7ive\",\n \"words\": [\n \"Seeking\",\n \"Sales\",\n \"Secure\",\n \"Competition\",\n \"Consecutive\"\n ],\n \"strength\": 4,\n \"numbers\": true,\n \"special\": true\n}" } ] }, { "name": "Avatar", "event": [ { "listen": "test", "script": { "exec": [ "" ], "type": "text/javascript" } } ], "request": { "method": "GET", "header": [ { "key": "X-API-SESSION", "value": "{{http_api_session}}", "type": "text" } ], "url": { "raw": "{{base_url}}/api/1.0/service/avatar/admin/32", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "service", "avatar", "admin", "32" ] }, "description": "# The avatar action\nThe [avatar action](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Service-Api#the-avatar-action) returns a png avatar icon for the given user id.\n\n#### Arguments\n| Arguments | Type | Default | Required | Description |\n| --- | --- | --- | --- | --- |\n| user | string | - | yes | The user id |\n| size | int | 32 | no | The size of the avatar in pixels |\n\n#### Return value\nThe success status code is `200 Ok`.\nThis action returns a png image file on success\n\n#### Notes\n - If the user did not specify an avatar a default image will be generated\n - The size must be a multiple of `8`\n - The minimum size is `16` pixels\n - The maximum size is `256` pixels" }, "response": [] }, { "name": "Favicon", "event": [ { "listen": "test", "script": { "exec": [ "" ], "type": "text/javascript" } } ], "request": { "method": "GET", "header": [ { "key": "X-API-SESSION", "value": "{{http_api_session}}", "type": "text" } ], "url": { "raw": "{{base_url}}/api/1.0/service/favicon/{{example_domain}}/32", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "service", "favicon", "{{example_domain}}", "32" ] }, "description": "# The favicon action\nThe [favicon action](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Service-Api#the-favicon-action) returns a png favicon icon for the given domain.\n\n#### Arguments\n| Arguments | Type | Default | Required | Description |\n| --- | --- | --- | --- | --- |\n| domain | string | - | yes | The domain name |\n| size | int | 32 | no | The size of the favicon in pixels |\n\n#### Return value\nThe success status code is `200 Ok`.\nThis action returns a png image file on success\n\n#### Notes\n - If no favicon can be found a default image will be generated\n - The size must be a multiple of `8`\n - The minimum size is `16` pixels\n - The maximum size is `256` pixels" }, "response": [] }, { "name": "Preview", "event": [ { "listen": "test", "script": { "exec": [ "" ], "type": "text/javascript" } } ], "request": { "method": "GET", "header": [ { "key": "X-API-SESSION", "value": "{{http_api_session}}", "type": "text" } ], "url": { "raw": "{{base_url}}/api/1.0/service/preview/{{example_domain}}/desktop/640/360...", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "service", "preview", "{{example_domain}}", "desktop", "640", "360..." ] }, "description": "# The preview action\nThe [preview action](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Service-Api#the-preview-action) returns a jpeg preview image for the given domain.\n\n#### Arguments\n| Arguments | Type | Default | Required | Description |\n| --- | --- | --- | --- | --- |\n| domain | string | - | yes | The domain name |\n| view | string | \"desktop\" | no | Can be `desktop` or `mobile`. Sets device name / viewports. |\n| width | string/int | 640 | no | The width of the resulting image |\n| height | string/int | \"360...\" | no | The height of the resulting image |\n\n#### Return value\nThe success status code is `200 Ok`.\nThis action returns a jpeg image file on success\n\n#### Notes\n - If no image can be created a default image will be used\n - This action is known to be slow if the cache is empty\n - The width and height must be a multiple of `10`\n - The minimum width is `240` pixels\n - The maximum width is `1280` pixels\n - The minimum height is `240` pixels\n - The maximum height is `1280` pixels\n - If a width and height were specified, the image will be cropped to fill the area\n - The width and height can be `0`. In this case, it is up to the api to set the optimal value\n - You can specify a range for width and height by passing `SIZE...`, `SIZE...SIZE` or `...SIZE` where size is a number.\n The left value will be the minimum and the right value the maximum.\n The api will try to generate an image that fits the given values without cropping\n - The resulting image will always have a minimum width and height of 240 pixels" }, "response": [] }, { "name": "Hashes", "request": { "method": "GET", "header": [], "url": { "raw": "{{base_url}}/api/1.0/service/hashes/7c4a8", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "service", "hashes", "7c4a8" ] }, "description": "[The full and up-to-date documentation for the hashes endpoint can be found in the wiki.](https://git.mdns.eu/nextcloud/passwords/-/wikis/Developers/Api/Service-API/Hashes-API)\n\n#### Arguments\n| Name | Type | Default | Required | Description |\n|-------|--------|---------|----------|------------------------------------------------------------------|\n| range | string | - | yes | 5-40 characters of a SHA-1 hash to check against in the database |\n\n#### Restrictions\n- Nextcloud Authentication **required**\n- User rate limit of **10 requests per 10 seconds**\n\n#### Response\nThe API will respond with a list of SHA-1 hashes matching the provided range.\nIf no hashes match the given range, the response will have a 404 status code.\n\n| Status | MIME | Type | Description |\n|--------|------------------|----------|---------------------------|\n| 200 | application/json | string[] | A list of breached hashes |\n| 404 | application/json | string[] | An empty list |\n| 429 | text/html | - | Rate limit exceeded |\n| 400 | application/json | object | Error message |\n\n#### Errors\n| Code | Message | Description |\n|----------|---------------|------------------------------------------------------------------------------------------------------|\n| 49f5c936 | Invalid range | The hash range provided to the hashes endpoint is not within the allowed range of 5 - 40 characters. |\n\n#### Notes\n- In case of a 404 status code, some servers may replace the response with an HTML page.\n For any 404 response, the client can always assume that no hashes match the range.\n- Requested range may be logged in server logs as it is part of the URL." }, "response": [ { "name": "Example Response", "originalRequest": { "method": "GET", "header": [], "url": { "raw": "{{base_url}}/api/1.0/service/hashes/7c4a8", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "service", "hashes", "7c4a8" ] } }, "status": "OK", "code": 200, "_postman_previewlanguage": "json", "header": [ { "key": "Server", "value": "nginx" }, { "key": "Date", "value": "Sun, 04 Feb 2024 08:40:57 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Content-Length", "value": "18947" }, { "key": "Connection", "value": "keep-alive" }, { "key": "Referrer-Policy", "value": "no-referrer" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "X-Robots-Tag", "value": "noindex, nofollow" }, { "key": "X-XSS-Protection", "value": "1; mode=block" }, { "key": "X-Powered-By", "value": "PHP/8.2.15" }, { "key": "Expires", "value": "Thu, 19 Nov 1981 08:52:00 GMT" }, { "key": "Cache-Control", "value": "no-cache, no-store, must-revalidate" }, { "key": "Pragma", "value": "no-cache" }, { "key": "Set-Cookie", "value": "PWTESTnc28=c4eb1968d31e29989b03d739b34f16c0; path=/; secure; HttpOnly; SameSite=Lax" }, { "key": "Set-Cookie", "value": "PWTESTnc28=c4eb1968d31e29989b03d739b34f16c0; path=/; secure; HttpOnly; SameSite=Lax" }, { "key": "Set-Cookie", "value": "PWTESTnc28=c4eb1968d31e29989b03d739b34f16c0; path=/; secure; HttpOnly; SameSite=Lax" }, { "key": "Set-Cookie", "value": "PWTESTnc28=3aae8d3f52725d9536b804690c6df124; path=/; secure; HttpOnly; SameSite=Lax" }, { "key": "Set-Cookie", "value": "cookie_test=test; expires=Sun, 04 Feb 2024 09:40:56 GMT; Max-Age=3600" }, { "key": "Set-Cookie", "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; secure; HttpOnly" }, { "key": "Set-Cookie", "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; secure; HttpOnly" }, { "key": "Set-Cookie", "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; secure; HttpOnly" }, { "key": "Set-Cookie", "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; secure; HttpOnly" }, { "key": "Set-Cookie", "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; secure; HttpOnly" }, { "key": "Set-Cookie", "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; secure; HttpOnly" }, { "key": "Set-Cookie", "value": "PWTESTnc28=783bfcd0469aea10ac372b55beb3a4ea; path=/; secure; HttpOnly; SameSite=Lax" }, { "key": "Set-Cookie", "value": "PWTESTnc28=783bfcd0469aea10ac372b55beb3a4ea; path=/; secure; HttpOnly; SameSite=Lax" }, { "key": "Set-Cookie", "value": "PWTESTnc28=2b5108b994d758bd5629268df7ce4e3f; path=/; secure; HttpOnly; SameSite=Lax" }, { "key": "Set-Cookie", "value": "cookie_test=test; expires=Sun, 04 Feb 2024 09:40:57 GMT; Max-Age=3600" }, { "key": "Set-Cookie", "value": "nc_passwords=e20292ebe776ed195e060d0f0a3fb365614857017b24320d7df0223419edcb7466785b46e78b2699422b9f77a0b3155f149f21e1917a8f054f0c47a4736f41dc68aa277696527b6d2c05f9e9ed7ab5db%7Cab7dd327536db095a4bd759f30f54035%7Cb3546a4dca52744ae57b25d4d2f3c173066676819db8732fcab9353755abbe4cf17fa4df5036032d1e89543601d6e263690d010c4fdd84bcb822a4c5db420b32%7C3; path=/; secure; HttpOnly; SameSite=Lax" }, { "key": "Content-Security-Policy", "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" }, { "key": "X-Request-Id", "value": "iXX3COgnQ7bsyxqbwYtm" }, { "key": "Feature-Policy", "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" }, { "key": "X-API-SESSION", "value": "e20292ebe776ed195e060d0f0a3fb365614857017b24320d7df0223419edcb7466785b46e78b2699422b9f77a0b3155f149f21e1917a8f054f0c47a4736f41dc68aa277696527b6d2c05f9e9ed7ab5db|ab7dd327536db095a4bd759f30f54035|b3546a4dca52744ae57b25d4d2f3c173066676819db8732fcab9353755abbe4cf17fa4df5036032d1e89543601d6e263690d010c4fdd84bcb822a4c5db420b32|3" }, { "key": "Content-Encoding", "value": "gzip" }, { "key": "Strict-Transport-Security", "value": "max-age=31536000; includeSubDomains; preload" } ], "cookie": [], "body": "[\n \"7c4a8001ce884342580d934a29d94060b3796c30\",\n \"7c4a800ad0fc3fa522d0474f9a28fd478c06669d\",\n \"7c4a800d7955ef1fff374f6759d8ae026c09eea0\",\n \"7c4a80118adfc3190a4fe3450bee0bf217def27f\",\n \"7c4a801667d07e8977f234df1592b6d08c273298\",\n \"7c4a8016cf4a4ab98ad25ca4dde9b89571620585\",\n \"7c4a801bee2b9f06a73e5699ef366ded3f9e3899\",\n \"7c4a8022307332788f61466348961717994700af\",\n \"7c4a8022b27dc5df36dd9f0fbaa565b2c7a532aa\",\n \"7c4a8025ea843e36ab462512e53b2e50ef9c7e03\",\n \"7c4a8026c65089493eaf6ea1365a424566f5c3a1\",\n \"7c4a802a10f1df0c8c00e3dae6c56dc98452c26a\",\n \"7c4a80333483fe868164d13d58b9ea1e7431f769\",\n \"7c4a803abf996b5ea6aa91ebdf3d5a94985156fb\",\n \"7c4a803b0c3d111b760cda695a063c3cc85fcec5\",\n \"7c4a803e45f100ebf12d130e5dc303a362176772\",\n \"7c4a803f0e2e29364398505b300c983223baae7f\",\n \"7c4a8041088c4afacf438ccb66a4bab2acf89f09\",\n \"7c4a80413dda2b49f939f81eb0a1bec6c20c749b\",\n \"7c4a80444bedc5f72570ab7ecb7187ab0659b94e\",\n \"7c4a80451dc486a2f078de639a1652fb68b6adac\",\n \"7c4a80466801a41dc4200dcad3252a5f15f39407\",\n \"7c4a804f98d9238ae74bfefd62ef3ba6cd6edfbe\",\n \"7c4a804fd415e9379dacc808337599698d810765\",\n \"7c4a804ff0f9b9ec7f6addc51a2cdcf56fef2634\",\n \"7c4a8051572dcbc01586b7ab9b53cdb39f35bae6\",\n \"7c4a8054368799950782e40526f6f7711e23a69e\",\n \"7c4a8056e0d023c7cb6cd3cc356d88de5c9f191e\",\n \"7c4a8057fc4413c172058479ba1be13f1be50a42\",\n \"7c4a805aed103d08f77a63dec40ed84a68727262\",\n \"7c4a8060d658503b11cd695bea2bccb9c91c879b\",\n \"7c4a8062252cd3a5864d9845ec1f747cb49557dd\",\n \"7c4a806419589bb9b04ee14853d45265d93023aa\",\n \"7c4a8064dca94b75c829f8af833d0a73bc35b565\",\n \"7c4a80651be464fe5ce1768442c45bbfa9ddf375\",\n \"7c4a8071f073466c6db3aa801a3ca3161e950776\",\n \"7c4a807a7282f035fe06aa9f18592b459f1794f2\",\n \"7c4a807b931940f4e08e3e62532f3d4551e22bc6\",\n \"7c4a807d4c46a5044a95182dc53c4f0b9c06b265\",\n \"7c4a8089e9da3acc0e98bbe252c6ca73c5eb96d7\",\n \"7c4a80986914f82e9b31f9f78ed58cc082399b10\",\n \"7c4a809984c44c18f03975483a0f9032d269a971\",\n \"7c4a80a0ac5a1ca2d500d3ea9770c4e25d2079ca\",\n \"7c4a80a5f625413487626532b5d37159eaf38065\",\n \"7c4a80a90e45be69c56928ae3275330b5320b426\",\n \"7c4a80abfb2a59e613cffc71e93a505a510ba22b\",\n \"7c4a80afd28232afbf995860d066b9cce92c75c6\",\n \"7c4a80b6508b359443ec01adb5dd699c6bbf9c90\",\n \"7c4a80be73397473b4ead7721f0925d9437f5f73\",\n \"7c4a80c6d8ec44bc0ccd351b98c9136572e1dadb\",\n \"7c4a80c72b60c0bd23cc58d85a91655702fadb10\",\n \"7c4a80c9680197d57409de7843f4d406ac3a655c\",\n \"7c4a80d23c4049b3cc6cfbea8a7333902f08b63b\",\n \"7c4a80d2a36e85b0175a2fdece3b7cdd8e036ffc\",\n \"7c4a80d342315be050c0e3701e38a907d61abf22\",\n \"7c4a80d389c3e53b47dd87b7e1c34e5d58ad9132\",\n \"7c4a80d81e4dad2f075347f108180273fbcf73dd\",\n \"7c4a80d93443b274c06bb0015fc3a3f6494ebb1a\",\n \"7c4a80de30fdc810661c387d0195f6a25c82a883\",\n \"7c4a80e85bd2f2a4c647f9b41ccad0c1ff0b9ed4\",\n \"7c4a80ecd887b0a717b836500c68421280e6a277\",\n \"7c4a80f18874d4f6084957da3d8321b307af15cd\",\n \"7c4a80f868316f3f54750b8106776aa1e2367b9e\",\n \"7c4a80fea93a07650e678ac3fb96f3ff7bf55740\",\n \"7c4a8109fe0e16d820237a8dcb4dcbe78658b948\",\n \"7c4a81119713dbfcbaaadf24d35c9b52a19eb0ec\",\n \"7c4a81143d64dd89347cae1cbf337323db45ee1b\",\n \"7c4a81167f31924266d5340308273afad4680bcb\",\n \"7c4a811a5b1c91a5f8dc5d25c48edfb3b5c7361b\",\n \"7c4a811b8df97a8ff1b5535748eac38432db6bcf\",\n \"7c4a811d33dd52a1f00f2c2534db0b2140be7ae1\",\n \"7c4a81272fdfb6fbc3d9466a60013d88dfad1ae6\",\n \"7c4a812a04ceb6bf213a53aac1d32d0b364d6a95\",\n \"7c4a812f9d6c53aec89547b73188e8a32c6d8ec6\",\n \"7c4a81324b35d91c83f1d8b04f2228af23296606\",\n \"7c4a8139a3802df0e09a6fdd05c89aab21680eb1\",\n \"7c4a813bbc309d4fc13562a5dcfaafa7915d721e\",\n \"7c4a81472d3c8727330c4a5a03ae3f835c62f47f\",\n \"7c4a815911700e9829c3a0187955faa314e3ce9e\",\n \"7c4a815aa3fe31fbbea874b8e7e4851fcb87f1dd\",\n \"7c4a815c8595d36b9ffbe4bfd7c3a69899372d1f\",\n \"7c4a815d097e4b8897fae2221fe261e40aaaff06\",\n \"7c4a815da00a400e42a4e84062e0c10e9e9a871d\",\n \"7c4a816b26d1584174040f86a67e586d335ae9cf\",\n \"7c4a816bc4ec0186a42a689faf3d0a73aefe1303\",\n \"7c4a816c66d25779beee29a95f14b4a3845fd516\",\n \"7c4a816ebeaf3aca8a5e88fee971dba46207a768\",\n \"7c4a816f1e0b84d34f40538fd7a34aa7e9979bf2\",\n \"7c4a81719b6367377d3b52cd3fa79b25a690ea84\",\n \"7c4a817cce97518c8427fed8e3f9a15f61e4441a\",\n \"7c4a817fd56b7be499e739640e7df89211717db4\",\n \"7c4a8187d6ee5ba4aec8babffab7ea199634f6bd\",\n \"7c4a81907e79ad73a9beba43ef964b4ecb2e4035\",\n \"7c4a8195853bfd774ed4622abe9f85c62e137653\",\n \"7c4a8199f2b665e065d8d2397d6cae2c34dec27b\",\n \"7c4a819b16a278320592fe1ae1ed3869bfb7d079\",\n \"7c4a819cc999b0cb24e45728220891d1b9e60fd2\",\n \"7c4a819debac7c6f7830710226371ebd967484ed\",\n \"7c4a81b3f05432b562b609d0c04c8e890ddd4f61\",\n \"7c4a81bf3ed8b157ab6ae9b91f463dda1f279162\",\n \"7c4a81c80743d1af9cad05c4a813cec322f2dfdb\",\n \"7c4a81da15348fc3455e1959e908c57be05b040d\",\n \"7c4a81dbb80acc933dba65299288db6040a8d494\",\n \"7c4a81e251eeac6f45ea6d240b60fac0e5f222ed\",\n \"7c4a81e52f8e6da47e6ac45975261084766b0c5f\",\n \"7c4a81e6d7d94a1a3f00008f09e1af544883a05b\",\n \"7c4a81ef9221fb10afc096e19374fbc5083f8be4\",\n \"7c4a81f8f2d0d3fdd67d0ce87acfce114e2bd0e4\",\n \"7c4a81fea11c951ecc0a86889f19fdcf9072dc96\",\n \"7c4a82042b5518af4d807bee891f25f531df15ab\",\n \"7c4a820639c6e14d594548a3c07a0405020b8f23\",\n \"7c4a8206660ec79cbe523d861f8cfef848cc5263\",\n \"7c4a820eba52957907902290757cf533b76fff69\",\n \"7c4a82136c18016b22291316589c7054c302b043\",\n \"7c4a82183d78e9b8470985fb1bc5169efadd32fa\",\n \"7c4a821bda8530b1969225dee72a4e977882d820\",\n \"7c4a821d2e05d9666962964ebb6d24f1acd18559\",\n \"7c4a821ecba92116a12711d09b5c913d982ba1a5\",\n \"7c4a82203aca5a663804c54a15665b0fb13f8b4a\",\n \"7c4a822326c893877548e7b0ee47d2ba1a152b9a\",\n \"7c4a822a10e853922915292eb3554b863165c646\",\n \"7c4a823259f94104645dd276804ad1fd0046507f\",\n \"7c4a823bff316bfffc8cef2e7a444720110d9734\",\n \"7c4a823c796195e0a075a1299ed290a0716258d6\",\n \"7c4a8241d060f66955338c44b4932b4ed21ac5bd\",\n \"7c4a82423974086e6cb6f0440ddf3bfe24f69cdf\",\n \"7c4a8244f7584819bb5301080b0d9934d908484e\",\n \"7c4a82452ab11e13da25b5c014639fa21fbdddc5\",\n \"7c4a824db274d7b1e570d3f30398ece8c6e7d4ac\",\n \"7c4a824eb3ac33a1573f4f9169b75a341891fe53\",\n \"7c4a825730553f492d027270ca4df0cf37dae786\",\n \"7c4a825817984b374543c5f6cf0406da816bcccb\",\n \"7c4a825c2eb877b11d2d0f886b36b96d6271ca31\",\n \"7c4a82622a9a345f133af6e38607659ad53bb1e7\",\n \"7c4a8262b6a4bb4f7e9d768a15c0fd88b85edf39\",\n \"7c4a8264b526a35685bdc7f8612a4ad5ff242fa2\",\n \"7c4a8266b20e01066a54c6f8dfa22050610d79e1\",\n \"7c4a8268647e407a9d4a105b9dc320838fc5c7d8\",\n \"7c4a8269186687651e65a9b94421809cc53431a3\",\n \"7c4a826c0defed52119e9f4c58e49a007d0c9d5d\",\n \"7c4a826c721103384fe8f43be4bfdcf1fc3f25c0\",\n \"7c4a82714cc0d53f063140ab1877fb76d9f1fcd6\",\n \"7c4a827355dfd1aa3d0b56db5fa8aa10973bb39f\",\n \"7c4a8278bc9b7f14fcd770a62ce1b57238c66ca4\",\n \"7c4a82796b8c5b85237ed1c96be0aaffea98fbde\",\n \"7c4a827b29cb9e4223fb079ce3c87ecc8b084a3b\",\n \"7c4a8292815075607294335f393cac11518b858a\",\n \"7c4a8294e4760a43801a2955fc5776b9406622b8\",\n \"7c4a829609a6652627e31d1d7087de318de43692\",\n \"7c4a82a59118e1894002c04738857517e58d0ba3\",\n \"7c4a82b673212d30f8f5c8e02ef07f984ea89e4a\",\n \"7c4a82b9c163938d7487e404bfe7f36c3da61408\",\n \"7c4a82ca2090e9c9e0ab5f4651a08e2a6243e6a4\",\n \"7c4a82cfc5cf7360ffd384802790cd9360019f75\",\n \"7c4a82d40852d3d349ac963741ccc4f8c1fdd63d\",\n \"7c4a82d5a46fad47c92ff24f8c4eedb0a0639a19\",\n \"7c4a82d881d79e6e4d56d6f0576858fc7b029cc8\",\n \"7c4a82d940e908c57eeefb210d968dc8ea0abb6e\",\n \"7c4a82e1812be6a46badab88eab309b759a309c4\",\n \"7c4a82e1aeee3f07a95ab3e1df77f3f6479c3c12\",\n \"7c4a82e1d5672dad9cc8f4e0630f7a44777e3788\",\n \"7c4a82e38e3a300364f5bb231321670aead179de\",\n \"7c4a82e530e64834c80fbb0ca6d4afd46aba55ea\",\n \"7c4a82e5fca01d6eb96be2e4a8cefbac7f30310f\",\n \"7c4a82f2703d10f4b9bedf383c1db3ef68229ecd\",\n \"7c4a82f39cf258d9fe417efe7a7f1662624b21d5\",\n \"7c4a82fb76764f8fefb4be94ef9137b8533ad509\",\n \"7c4a82fc0fd38424b6a5d9a94335722559131776\",\n \"7c4a82fe005433b383077060b4868926378bb9d7\",\n \"7c4a82fe197ef4c180f9c76135af6161a5aa8aed\",\n \"7c4a83064665f277b8ac884014bbe47561815b88\",\n \"7c4a83066ab9382c8d3713be1ea4a0aa6f370a5a\",\n \"7c4a8308af46c3f6ff0f076a7269a87f14a07a5b\",\n \"7c4a83131f65de6b258a8bb2a6b72bfb72690faa\",\n \"7c4a831764e07bd1de7dd4a81af5e4dc32953c92\",\n \"7c4a831c64d04eea1d8fedade0d56e8479ac90f3\",\n \"7c4a831f697da60ecda0cd4464428688f30c108c\",\n \"7c4a8322ef4876d6f9e49dea156f364cd6b8b79c\",\n \"7c4a8327007f2ce9008881376b8979fba19ee170\",\n \"7c4a832764736be3278c450cb53f99519db143d6\",\n \"7c4a832c00ce519ff3acba38f74c948ddffb8c60\",\n \"7c4a832cf35db5333910e79366b85b91c75754bf\",\n \"7c4a832f19ac50e847305247866217a5e9cf5147\",\n \"7c4a832fa39dbd40dbae38a7b42b3272b5b03d98\",\n \"7c4a8333f31b766763ac9824d0a876ac966a9be0\",\n \"7c4a83401bcb4b9d07c0bb9b89b9692d1d761857\",\n \"7c4a8342f4a28a2b97e1fcac8829827dffb0394f\",\n \"7c4a83438764ea8930b2f188ca380150d19a5f7f\",\n \"7c4a83456898e510d6777fef5b346a5aa3801619\",\n \"7c4a8347ca2220fe51ad74d24d41f9860795d3a1\",\n \"7c4a83541a8491f2dd2d61a2c0c01711979a3134\",\n \"7c4a8355786a5bba906fa822ce54d5a44c36c02e\",\n \"7c4a835683cb442ff284c5239a01633ad856f994\",\n \"7c4a83575ab1c9e2027ccc47a8222d41ffc3d575\",\n \"7c4a835d22fe0e3e4bc8ece6e40da8e47ec62abd\",\n \"7c4a835ebf54c50a52935afa771314252132e9b8\",\n \"7c4a8373444a0b04073cf481d5b143e818732c7f\",\n \"7c4a837411a3a8c0e83d1cc9f94a5cfb068d25b6\",\n \"7c4a837be565a47b9e4fe238b02cc75e9e27530d\",\n \"7c4a837c44ab7dac0526683deca7bacb9fdd245b\",\n \"7c4a837c7062d55d09ad142b67692ecdbe4d5d97\",\n \"7c4a837cdf2858de154df964dcdcc185b5626d4f\",\n \"7c4a838bef77e07451e94da7d72db71d52c04fb8\",\n \"7c4a83962a2a48293a4b8d13ac2c07d8d1f12f39\",\n \"7c4a839f471db104bea5e1a22424338cb43b2416\",\n \"7c4a83a289198057b36c5d7b33c318d1704d0546\",\n \"7c4a83a844bafea68704be83cc46b43e81db9f70\",\n \"7c4a83a90fd61af2317d4d3d5b9975cac3dc6680\",\n \"7c4a83afd811f6971e9d222396a87895d432055b\",\n \"7c4a83b37e5d9ac8031d4645994d5fa9c6be6922\",\n \"7c4a83c03e701d032ef31c97a3855bc94cd4ca8c\",\n \"7c4a83c6d75de42471b435c01761ecf054f6177f\",\n \"7c4a83cc44fafcd8ef0d2dbde2db918d13282ab7\",\n \"7c4a83d2476b68cbc41e040aff17f418351e4c13\",\n \"7c4a83d3bde007d714f8f18a4089784a03e1361d\",\n \"7c4a83d7dd600aa410ee128676e5575b22bf106c\",\n \"7c4a83da0ce99104bc7c42f8da8831284083ecb4\",\n \"7c4a83db1459ecce283f85be048856feb7c89efb\",\n \"7c4a83de0bfde23a53f9e9aaa2d7b8df0fb0e724\",\n \"7c4a83e57b3f119da474cad0cd38ee4b3e9e2e14\",\n \"7c4a83ee2626bfd37017f0400c802838e025c73e\",\n \"7c4a83f13ce082c502821300eb20510508da9589\",\n \"7c4a83f3200c04a48c9dc7f5cbe6b333bec80fc8\",\n \"7c4a83f397dfcbacbd95d740176eff8238090ca0\",\n \"7c4a83f73b5fce60f4eaf725a79c411b7e2be5d3\",\n \"7c4a83f77a8ce65cbd0b33e789aa9571f40cbf4b\",\n \"7c4a83fd1d43d2eb9eb665d38e8e2e633c8310e1\",\n \"7c4a840258f4403e80cdebc5a8cdaceaabbcd518\",\n \"7c4a8403dfa46449bedb34043b07d801807da59e\",\n \"7c4a840668bea3aef591f8d25b9176336af41715\",\n \"7c4a8406deafbef00411ee19be0e013763251db5\",\n \"7c4a84072d4b205e9caad1d9af27aea554f1eea8\",\n \"7c4a840c54f3d360c851704d64270e34d00546ac\",\n \"7c4a8410bb833092dc458e3a2ac92985e110fff1\",\n \"7c4a8411c90562c24e9f5f274705f0a2864110be\",\n \"7c4a8414f569abc0c885ef866ae7a9732076895e\",\n \"7c4a84170d8032f99caa51af55d94f6c561f7235\",\n \"7c4a841c5fb771d2e723cbdd3f5483e18b9f3fae\",\n \"7c4a841efe243dfa586b95758303b3d967a42675\",\n \"7c4a8423b42608103142670e964c27ebdb726792\",\n \"7c4a84250bc415018b440354b3f5a9dcc63657a7\",\n \"7c4a84296a861072e558567ba6e22d1bbe000086\",\n \"7c4a8439d4496848723333c19ac5b61af7257280\",\n \"7c4a84434dc60fe507d371f4d3b4b840e34a450b\",\n \"7c4a84444c9d20d57e15a1bc247e60f6ba5965c0\",\n \"7c4a84490a42071c2f672dba8ed9e2aee59d40df\",\n \"7c4a845b0d49a3d4077e4b8f02dd07a856089101\",\n \"7c4a845c28edf01aa218ab8ae1f0698ff9f6878a\",\n \"7c4a845e13e5b5e17cc4384b15683c7965fe7196\",\n \"7c4a84692a5ad011bd764df901dfd4c7a74fbb21\",\n \"7c4a846b5d2f68d1d5b5257ffb884564445695d2\",\n \"7c4a846b963fa7a877e43519961a3dc045bcf153\",\n \"7c4a8473537b295a70eaf4ef3a5fe9805cc65198\",\n \"7c4a847fdce8194deadb481e45fa8d0d6ba89c69\",\n \"7c4a84802ce62daff0f11764fbc468545e170463\",\n \"7c4a84945fd7b5bea12dd2f38c6fbd00d281c771\",\n \"7c4a849de8a2500a5c1804779a20da592e3dcc7f\",\n \"7c4a84a3b4e4c58678e67ab8e250430728129d95\",\n \"7c4a84a4156e5e9d168ed50c4024e162b020407a\",\n \"7c4a84a4c02b9f45cecb33df92648c77c0954632\",\n \"7c4a84a9c8f2e0e1a37a71a6fa457229d66b0407\",\n \"7c4a84aaf1cae1323a1505bd4968773d10680651\",\n \"7c4a84ad3e0f42ee91e4314998d98c0acd156c75\",\n \"7c4a84af281231eb9db185f19284e94eb0e283b5\",\n \"7c4a84b0e719bd7b1b48f01f3b4c022ed5f6349c\",\n \"7c4a84b448cbb8fe6480a59b9f99e91d6f655192\",\n \"7c4a84b669ae45dfe42b62ebe2df1a6f7e22aa98\",\n \"7c4a84bddc23de98982312dd220238b67c1bbc0a\",\n \"7c4a84c0d51432c2985abbccd1a365e3b85f9c96\",\n \"7c4a84c4b77a887701f6573f45ed4f8fe513aec8\",\n \"7c4a84c82c39b4a1d7d3810d25cfd514f90886fe\",\n \"7c4a84e112e5fd9dc61f4c53a9f35dd872977511\",\n \"7c4a84e62f420e6c54c79f68384be7f2eb87f6e3\",\n \"7c4a84e65dd2f62676ae503b28aea9501a88aac9\",\n \"7c4a84e822f935e8e06ec3a5c3b60c57ba75423d\",\n \"7c4a84f2ba78a48e5313d6191aed2ba387539fdd\",\n \"7c4a84f5898eec2d8662f29677664d35548e24b1\",\n \"7c4a84f9c060a058664c90efc958630523efd491\",\n \"7c4a84fd1c181a3f831aa99ccabec2379981ef12\",\n \"7c4a85000deeda84c38cff79c810594b95e36aff\",\n \"7c4a8504ee60104209f7ac904d669cbe9f4ede58\",\n \"7c4a850a5a1e3d405b9f26c27937ee47dba94163\",\n \"7c4a850c5424d4b16f3c86057275a57ab8c6fe17\",\n \"7c4a850fa3edc8d50183b4707a17bcf4529e05b7\",\n \"7c4a8515c791c810bfb0d01f13109c004ffc6384\",\n \"7c4a85195d8b7fe42dda1ea7590a03615968d69d\",\n \"7c4a851c0b1e32942dfd97acfbdcbbef3035888b\",\n \"7c4a8525f844945d89ca65f776d0f4aee2a34c9c\",\n \"7c4a852e9201af74e1a7e00a446739a1aa91de69\",\n \"7c4a8531e990c2a6b4354d24268a899905f672f6\",\n \"7c4a8533ecc6a7f4d042fb17c70a690e9043d1e4\",\n \"7c4a854429925cc59dcc4b6a2441d600f35e44e5\",\n \"7c4a854e50fc9ba1ffee7de4b60c8983d9fed34e\",\n \"7c4a85515308e5d357fdac856c1f4d4a89a0ab85\",\n \"7c4a8557b71a050832efe1259246b05b76c25d75\",\n \"7c4a855817cde243e1e55d6f79a8b75ddfc40ade\",\n \"7c4a8563ac249226d309aa49345d06084c19b46e\",\n \"7c4a85656ade1e4f5aed05d9e819e0ea376fab00\",\n \"7c4a8567b1cb99047dbbc73e8e977d1a5e1a3b5e\",\n \"7c4a85709163b6ffa8e67c8b87dfbcb6e334683f\",\n \"7c4a8573c1d03acac27baf1e9660dfd2ff48b75d\",\n \"7c4a85747fd7e7838342f0553746ae0773521562\",\n \"7c4a857e54f80a8769b9f7552ce03a42fdb67205\",\n \"7c4a8581761d6998044d6ca54918a9923582f9cc\",\n \"7c4a85850e794ebaa9fec01b5aee0295c53a61c0\",\n \"7c4a85884ae3c91f7e00d15de64605fa27857076\",\n \"7c4a858c872d60c1cf61ccc688192de452820df9\",\n \"7c4a858d827e5fb29c2170918b1299bcd4f90c15\",\n \"7c4a8597c5b1a1b82f22675493de31a7c357725f\",\n \"7c4a859a1f2d33db8a3be8a08cafb9b150aa6ea7\",\n \"7c4a859a5f9bb9b831951f1c2034db3f14ad18d0\",\n \"7c4a859b597fe45f0cd2bbf521dbdfda7d82593c\",\n \"7c4a85a9e6f802336990514d94d3e8ef56710211\",\n \"7c4a85ad071ff4b95e93b62ab0bc3509e1231378\",\n \"7c4a85b25df2d106dea4fbe72feee650313e780d\",\n \"7c4a85b4f1256bcb1c6a7b86e2bef9d33ac2aa65\",\n \"7c4a85b4f60353e22693e054b8342d00942e6877\",\n \"7c4a85bdb5c42e991f2a94e73deb2ed70bce6921\",\n \"7c4a85bedb534cc7189a041822b2100321452e43\",\n \"7c4a85bfbcefbc8f84de89cf049880d3087a02f3\",\n \"7c4a85c400b5c829da9c2b81bac81a80920d1b77\",\n \"7c4a85c44b5d79bc451bb55026196245e3bb6e66\",\n \"7c4a85c6ab1a4926d74d7ac04c785a1a6acea68d\",\n \"7c4a85c78df3ba848828472f7e7d1671c020aab8\",\n \"7c4a85cabfa94a151351790983fd869e6bad36b3\",\n \"7c4a85d2d25502bdff1b9fa60f28db2ab3f13b69\",\n \"7c4a85d751d44ef9676104cb8789cb89258935ef\",\n \"7c4a85e1c155f5b6489b04c95ff5376cc79c985a\",\n \"7c4a85e641b4555da8c0519f4c456f4bd57dc727\",\n \"7c4a85e85c15a5c1c901123e25859b92540fcd3e\",\n \"7c4a85ef9a4978ffa6953977c7b4aaf80371e226\",\n \"7c4a85f1bdc3aa7834aa673547f1be1633809649\",\n \"7c4a85f86e922fe9b2e8585628b883a29e42a5fc\",\n \"7c4a85f99ec41b61fcc8d656b5b285f6cf309726\",\n \"7c4a8608b439d5554f5b49bf0eb024a9ab31d3aa\",\n \"7c4a8610a344f37f73a61782e5892c9ad84ffcfb\",\n \"7c4a86123eaab55cef5c5a6188e9464baefb2ece\",\n \"7c4a861b1e133167adad13da30920a503bb27428\",\n \"7c4a861dc5f95fe2592860925e171104946596fb\",\n \"7c4a8620f067a0bc6a12ed451c6ed4439f1921a4\",\n \"7c4a8622886911225a214a20db17b490a30b115a\",\n \"7c4a8629ade7b64b165786e01e5bf02053af1edb\",\n \"7c4a862d7411b05835ca02eb49aebd80be0f4144\",\n \"7c4a862e85b2b8204f2104a9ad344edde96855f6\",\n \"7c4a86372e22da60a3d72162f2d3d4ad6245f685\",\n \"7c4a863c1a48079e2a68822da259cbac5a9bc1ae\",\n \"7c4a863d6caa099b95638fb5466a891435279700\",\n \"7c4a8640e3c01e9b345e2138df64dd6ac868726f\",\n \"7c4a864c822fb7ed8b987e2a4d1ab4f4e3108d8d\",\n \"7c4a865da3eaef23da87cae656822dc96c06b37e\",\n \"7c4a867151e2f2f5eb01d83031f91ac311fda388\",\n \"7c4a867698cab97f77290df67cda35abd679c381\",\n \"7c4a868049465cbca6b7969de3ef49d5eef25795\",\n \"7c4a8682343e0f75d72550e117734304d2dc0ade\",\n \"7c4a868c7d2dee0f8c2b47f4f86f915436bb2ce3\",\n \"7c4a868d4d8f5f9374d61cc3016ed3799001e533\",\n \"7c4a8691d7f1946269f07616c1937807d007c8c9\",\n \"7c4a86951d5d3121160b4d08b060715318e5e34e\",\n \"7c4a869592658c7e78527282b7d84519781c3b49\",\n \"7c4a8696dd0f318382ff0b7d1967be36d0ac23de\",\n \"7c4a8696fb38518d5ece725b94203f1537927c62\",\n \"7c4a869977784a45373e3986df50ca1d11cbeddd\",\n \"7c4a8699fb79f4a4c4bea39513fbc31cff23dc7a\",\n \"7c4a869fe6204b6398b9db7e18436fae59d977d1\",\n \"7c4a86a422bf60b5b603562555efd43c1b83b88c\",\n \"7c4a86a42cae105797afcd9deb8a022063dc1f5f\",\n \"7c4a86b1407639376e3ca2854b00c6c97ec5e3ff\",\n \"7c4a86b249c8fc83086d56272fc4763e90d1d879\",\n \"7c4a86b4bbb6e17eacdb8bed191c5d0384374c8f\",\n \"7c4a86b6f9f2bd9c637ae27dac4bf9a2130079c1\",\n \"7c4a86b78be1fa0e972a2c5a933d7c289c064666\",\n \"7c4a86b9fc1a507808f04510633af62a5d33eee7\",\n \"7c4a86c05aaf3f50892095a555b318d536caeca9\",\n \"7c4a86c48fe4d86c94b8f28d22ffd27016842aa7\",\n \"7c4a86c7e81b8405041644f82dabbc7d43e83f91\",\n \"7c4a86c9558bb37e5c1511ce160699f07319be05\",\n \"7c4a86d133692cd122c977cdf1039632f278f895\",\n \"7c4a86e0c050040febd81b551655db3b829817d7\",\n \"7c4a86e1d542030c12ac1a38a550a33cc8675961\",\n \"7c4a86eaa4fe4e7471bc7a880d9fc728cb6ee628\",\n \"7c4a86f8a073e8b2cfe2259894a36d1981e0ff03\",\n \"7c4a8704379425b911722fb68ebe66631ec25815\",\n \"7c4a870606b0cb3101e10889d1ae1f51a6670912\",\n \"7c4a870c827e844a5a0815889a5b2724ac79b666\",\n \"7c4a8714b2838becc880da803e8645ecf0d6cbc0\",\n \"7c4a8716eef2d1e3ac5e08a609794013d42ae6c2\",\n \"7c4a871829643fe7929b039c9ac513a55dbc1172\",\n \"7c4a87223940d49278aab705793f92a4d44d2df9\",\n \"7c4a8727139020838577363d411bd00ad9cc7577\",\n \"7c4a872f90e72eb65e865da543609430a5d2a733\",\n \"7c4a8733b0c56bb8f02bc8da0967b02b1ca4bf14\",\n \"7c4a8734cba3a39502cfa18e92169c92ef278f30\",\n \"7c4a87373d8e23c73780d124235163b077a33409\",\n \"7c4a8737fb32fb8f0ba2b6d0094cb40bfba2088e\",\n \"7c4a87392c164d98efa5e82e295da7969eba8086\",\n \"7c4a8741c31bee23a349154a5a3b11d553cc3c6f\",\n \"7c4a874598247e0017d28802986a66426bd63fcd\",\n \"7c4a8745de251ce279c69a748e716ac90e5e3595\",\n \"7c4a87514f177ffcefb0cd7de7c3d275596538e4\",\n \"7c4a875ec2ef618fe80c1338b6ddd1535f998a5f\",\n \"7c4a87680929bbab34fb1196094ce0a6ed5344de\",\n \"7c4a876a6890cebd61a91b325482281f360c340e\",\n \"7c4a877832ecafbbd9d76c56867472705c593e91\",\n \"7c4a877ca539dbebe2a54f169f79214592a0e5e9\",\n \"7c4a877db2e36a50926a3d442b26519f9464c6a5\",\n \"7c4a877db85169b5eed4438934a855434739cb4a\",\n \"7c4a877eaa6b6d595151105307c854b016fa41f0\",\n \"7c4a877f05c424e996543adb6721d245ce7a1d9e\",\n \"7c4a879177d0ec917b2eb55624ffc28a1e2a91e6\",\n \"7c4a87921bc9a4396ce7b70d7ab88dbb764f4086\",\n \"7c4a87a261368a0dd61298975afaec6c2aa4055c\",\n \"7c4a87a389bc3007720cc0509f8a860b85bd22b2\",\n \"7c4a87a429da2400ca56e708ce9c98441f742c49\",\n \"7c4a87ab9774542d09bdb30fa9c2ae43cda55f62\",\n \"7c4a87c447744d2bc40d7553fa62928f3f1367d0\",\n \"7c4a87ca240eb086a30414c8d76cce84966ec279\",\n \"7c4a87cb2145807aeee353650aa54c4a6e050384\",\n \"7c4a87d14bc705791d2b8978b671c6ec570702a0\",\n \"7c4a87da05fb259b0e251558fe77f60e6173ae22\",\n \"7c4a87deec14e3cfb7ac5e2d65a3e1b99693615b\",\n \"7c4a87defd592960786c5c6a169ce03e9802c061\",\n \"7c4a87ed9023a4409d2d9536735de43b1c7e6061\",\n \"7c4a87f036ab6ee8a4ddbe3945b94bd621429dfc\",\n \"7c4a87f3304bdee0becd2a35d783a36e79f58bac\",\n \"7c4a87f672b50c5e3a0e43fc29da69543d4c8664\",\n \"7c4a87f8f2df1f6a2ee73d2e6776a702a2e76849\",\n \"7c4a87ff60814694bcf6ca43168d2fcc8a2564b2\",\n \"7c4a88001b21272cc38577045d04750cfa7f9742\",\n \"7c4a8801e25b8519470add35af54841c8d13f356\",\n \"7c4a88036ef406fb6cbf1642779783a8979fd947\",\n \"7c4a88066b48adb9850e0a15321968bea1caf49e\",\n \"7c4a880af3080a61533116eed16e76f240b814d4\",\n \"7c4a880ba491ebece164964f90bd591064e22d6f\",\n \"7c4a8810ef737cae452ed03fb119a0808aae5da3\",\n \"7c4a881fc4cca0d26c1d68083e58a6402cf09d92\",\n \"7c4a8823ebd8d1abc129aa575c251c228042b1a7\",\n \"7c4a882ca99d18eaca039fe3da34fcf183f17b74\",\n \"7c4a882fe3777eecd9ff3c41217f2f102c708734\",\n \"7c4a8835156cb068c3abc61bfe13a3e5459d3d02\",\n \"7c4a8835fa264773d2ac274c698eb11beeb7cec8\",\n \"7c4a883872a15ba1b30cb6aac10ff29f6741e2cb\",\n \"7c4a88400f77a1184b802cba2ac3f1503f1dec8e\",\n \"7c4a88427fd8e539abe259742fb65e8a9e4f2974\",\n \"7c4a8846428e0ef01d89289f5c9c6e24cd8d25f6\",\n \"7c4a884e66104beee46db206bffe844b4508ffa1\",\n \"7c4a88520d9873a7f63e185da7f2024373743411\",\n \"7c4a8857ea1b2a835a5efc08245bc2d5193952a8\",\n \"7c4a886181a7d200c6bd87539fca5a1ca59d082c\",\n \"7c4a886c48e0eadf14ec52ce5cafc70c7b8b85e5\",\n \"7c4a886d052546fb5b30a3da2aa0232d62dab11b\",\n \"7c4a8874cce2459ffa4f6b0fcdbc6588d5c7cc65\",\n \"7c4a887553125a2511f202b51071a2cb6ed85295\",\n \"7c4a8875def1c1f7bbf734d4d97f1ae69c385019\",\n \"7c4a88780fad53da533ade91b990a0bcaf9f6cf4\",\n \"7c4a8878fa1b7ca54c4c2e0dc4599ef827ad0d4e\",\n \"7c4a887b06db9575a5e71da9b5a36b245ea6747b\",\n \"7c4a88801c2ecefcd0c3e39e73fd1fb6b45d5dc3\",\n \"7c4a8881d84c9bc580605d0fe200899e763f34dc\",\n \"7c4a8886c5255c278ec2cede82e105c4be772daf\",\n \"7c4a888aa0cde57dc884eb55c72e6ecbc3faf4e9\",\n \"7c4a888bd19f04f782ca100958f15ec88b555d01\",\n \"7c4a888dc5e7023b0346ffbf2e594716461c56cf\",\n \"7c4a888ef39a45bebe37ed2503ec4ea0cfc929c7\",\n \"7c4a8896dbc64354af9528454643db30f4973764\",\n \"7c4a88993c6ab998d18d8efcde47f58bb9a69f79\",\n \"7c4a8899feda55227cf2ef80ed053dd071f1ccec\",\n \"7c4a889f7908ca2bfeb8adb8ed1f5639e6e912fa\",\n \"7c4a88a34beb1eb190451923e9e0439e4e83e525\",\n \"7c4a88ac26a93a50c3513cdb104e4e1fb02ca509\",\n \"7c4a88afd6f6fc0da1f30466ad215f18fb2510d0\",\n \"7c4a88b66fcc8348867ac9f135054d7ac903412d\",\n \"7c4a88b8ca5b85048595e6943a0da72b4cc06a1c\",\n \"7c4a88bb087c0dc2c7de018248a680cc29f22981\",\n \"7c4a88beca2e62f80b37cd0469f3587bb295cd48\",\n \"7c4a88cc39b9b3fb67c7140c04bfc69d717e7200\",\n \"7c4a88d0812ec897f4a1a83efba6ea3c44acc505\",\n \"7c4a88e1e45448125092d21dde66f8d3f46ba2f9\",\n \"7c4a88e72e2c872de38ea65d5d90287603aac17f\",\n \"7c4a88f8f017d8c1d7617bb0f3607b9abe0b1fcf\",\n \"7c4a88fc385e4e22a6a77410d585b26668862a8a\",\n \"7c4a88fca8b1efcc758f639a555024fa6acee99e\",\n \"7c4a890788418c2bd0368eb162754901ddbe0d4b\",\n \"7c4a890ccb91e071657a221bbc9a43cb561fc7b1\",\n \"7c4a8910e546a8d158906eb959671a72c34a2205\",\n \"7c4a8916fa06e9b518e461d58760fef4a035ab5c\",\n \"7c4a891a620ac1d203faf74c74d7d1c262cf1f27\",\n \"7c4a891d30c6b5a48c0a5b39e317e9b4ae813954\",\n \"7c4a891e4d1b39c02c01d5b06ca6a9e8d4bf2afc\",\n \"7c4a891fdfa33eeb86cfad84387a841d23f24da8\",\n \"7c4a8922a90c7f69b9601be01a95a60d31234930\",\n \"7c4a89239a9844539b30a4e607a1c4302e30b85d\",\n \"7c4a8926df7c93a956f9ce920716ce1b559e8fd8\",\n \"7c4a893164cc7c581d77494eb731392bd1d4604f\",\n \"7c4a8937993f8b66346a8390894539123c750a0d\",\n \"7c4a893a24bce0922755fbe7f5d521a50c3177b8\",\n \"7c4a893aeb8097ff3336d813c1f5829d7491d1e7\",\n \"7c4a89409eb1355f1cbe7b4692ec993eb020fa3d\",\n \"7c4a8944ae553527eeeb523be110d965d4a907b9\",\n \"7c4a8948e481499226cbdabdae1698ff06964de6\",\n \"7c4a8952ca2f38da24f6564174fc363f14f9a078\",\n \"7c4a895b22584d5d3836c965a8ac713e30d028d8\",\n \"7c4a895f9ce9af8dc9ee85d8efce658ea71c0a7f\",\n \"7c4a8962ee93de58548ce7a72c0832bc0161e6f1\",\n \"7c4a8965b79eb2995e3ede952e2f752d9313426f\",\n \"7c4a8967fa5b3547c893cb7f3451a4a17702a73b\",\n \"7c4a89690f0feb5cc805e7847408d5f574f81e1a\",\n \"7c4a896a2660f1c031a0d5e4d87657494c956d32\",\n \"7c4a896bb07e0f28238c2fc750e890034cea1a86\",\n \"7c4a896cd553ca1ad48c4c436c317fc1579cde0a\",\n \"7c4a897697bfd20ff00afabbe918430640c3e817\",\n \"7c4a897a2e7aec0872806fbcb116f750f35dcdd5\",\n \"7c4a898c473a4bcfea77b648e7e0805c83bbcc7a\",\n \"7c4a898f4c5bf71f49747b74118155463db1fd18\",\n \"7c4a89926fa9458923f379a3d84d0504c2826147\",\n \"7c4a899ce375858981b41796ba35cae1720ef362\",\n \"7c4a899e6961cce043bcef78ebe4c09cc1c29bb4\",\n \"7c4a89a0d238e53b9cf13c3cf1e61d2f3f3dc9d8\",\n \"7c4a89a777c9a8459717b928865fe9a477843174\",\n \"7c4a89a80011ad497704cd0929a9217e34944f03\",\n \"7c4a89acfd311e0efebc424714373eb7fcf78fa1\",\n \"7c4a89b2fae67a2309bd1a2f899cef3c99fb1e2a\",\n \"7c4a89b3b497511ac97e2df6c0260f2c36f7381b\",\n \"7c4a89be9dd6fd7caeac1c2eb6ae8a80af311f14\",\n \"7c4a89c3b2bcae6fee5ba70cc16fee5c1ce31c07\",\n \"7c4a89cef59cac6631f34328274138a215739466\",\n \"7c4a89d00f94ff42853a786a4d93113de263ba56\",\n \"7c4a89d1d1981baa9edbada9b5b3e9286d8d50d7\",\n \"7c4a89d3b297526a4aa65e2a3e8859ba200d58b7\",\n \"7c4a89d854b5e8cce7c742bb0f85857076aa3811\",\n \"7c4a89d99de7b6ae5874648b9a583ff442cd80ac\",\n \"7c4a89da7b8b08bd46cc776a2bc4d796247dd3b0\",\n \"7c4a89e09f0c82bec6461bc496bc371c094db809\",\n \"7c4a89e47773d2d8356b8cd56c1cbbc61cf63af6\",\n \"7c4a89eb69750a8757913b8881bea55c3d9b662f\",\n \"7c4a89ebe90d609337cf1f0e37046eb83ee046d9\",\n \"7c4a89ed01b631708ea5e6bbe9a636d5c3f44c05\",\n \"7c4a89f94d8d42b99524f34cfc316016304278d0\",\n \"7c4a89fdd94eb6e09dbe1f108bd019577fe62868\",\n \"7c4a89ffb225ec993ccbb3245bfca0938ff56f04\",\n \"7c4a8a069b64a1fa467248225ac1315bab52f935\",\n \"7c4a8a097ce001c042d1dbbb653cfc8867280092\",\n \"7c4a8a0afd035bc091c2f7e9cdfdd2d2d6296998\",\n \"7c4a8a0d095ae9e2d30434a527b44822c6c8991a\",\n \"7c4a8a0fab7f0724c2a85652077a8ba655e56b84\",\n \"7c4a8a17e466f56e805bb105bad700367813cfe4\",\n \"7c4a8a199fdecaaf43eff2dfbae06a859f727bc7\",\n \"7c4a8a1aeb8011aeebee97d981e1e035f8201dc2\",\n \"7c4a8a1efe10a6b3573934df34a6dc2184d0bca2\",\n \"7c4a8a26480d6ffcc8d4d011d3d35c1fa23ddd0d\",\n \"7c4a8a283368f98fa1e625cc1b36a02ae34437a3\",\n \"7c4a8a2e463133ebf72cd5ee29ace6d2976f44ba\",\n \"7c4a8a31deffd4b6b6e0ffe60c05836d1f978483\",\n \"7c4a8a32112fa427b93e8a6c0533c6d856285ba5\",\n \"7c4a8a362e1013d6761d409caa028cb753ff66ee\",\n \"7c4a8a3ab2fd75101c799c7470c208a43f3e1e72\",\n \"7c4a8a3ad9f4ddcfd8acd30576df8341fd2517d3\",\n \"7c4a8a42d187f95518d30c0d7878df566d01e747\",\n \"7c4a8a439a6df4929842b9ae1a4e43d95a5ab41f\",\n \"7c4a8a4a23471fef3504e54205d057194e4639d4\",\n \"7c4a8a4b86713313a6dd132fdd82c92fd258f901\",\n \"7c4a8a4d3512bc36c85dd5bbc00e2f63449cf826\",\n \"7c4a8a4d44158a0426f03cf9b16f08c2e3df2cdd\",\n \"7c4a8a4eac0455d88c2aa783108752e131469283\",\n \"7c4a8a5e373862f2859745926323692fcf1348d8\",\n \"7c4a8a664674ee6f1ce407be60daaba1ecfbc12f\",\n \"7c4a8a6a4b63bc6988b216641762ac9284560e45\",\n \"7c4a8a6bfe2831c1063781705d0fc65a3633d942\",\n \"7c4a8a6dbfa3e105388e65bea6ee5fcb9fb1e88c\",\n \"7c4a8a6fbbd8033c7dbc0c6f91e6988e952ebf9e\",\n \"7c4a8a7330926e1bfd70c03110755d90b8dc1a76\",\n \"7c4a8a737c59aeac2cec00c913f960912f5f3ad3\",\n \"7c4a8a78e75b8f9f7cb065513db25635352e5f50\",\n \"7c4a8a7a104852813fe1d4a672603bb0982abec3\",\n \"7c4a8a7f3a7788035c8128cf50e3c42a09243060\",\n \"7c4a8a86549188da17980a9e6f19b14b29943aee\",\n \"7c4a8a89d21de122fd2c7843d89dae34c13d0eac\",\n \"7c4a8a8aa31ef87934dd7f80e6b73084fd262d6e\",\n \"7c4a8a8c716fb303157170839848f388fc82504d\",\n \"7c4a8a8e7f8560098d9a35de6c8f475742d750bc\",\n \"7c4a8a98190ceec3b6d3fbd51120d525f3afbe8f\",\n \"7c4a8a99440b4441f5100018330f5ed6d977fd8c\",\n \"7c4a8a9b0066f65b4876ed9d129a9c6cce412785\",\n \"7c4a8a9c5f84853963aab0e616f87c8de757bdf1\",\n \"7c4a8aa3b9f6f0c9f947a064269700810ae1dd1a\",\n \"7c4a8aa88942f7708c5c101b578f553254b6a705\",\n \"7c4a8aaa009a539caca400857c09477d80df4896\",\n \"7c4a8ab010974005f6c4f5719fc9b285991230eb\",\n \"7c4a8ab336b4c7e1f7ddb11f11a5c972a6e39d90\",\n \"7c4a8ab373cd7fad2566bacaa106a5b914557321\",\n \"7c4a8ac53744bf551fd54ca09c805bfd04feafcf\",\n \"7c4a8aca87c3a7b28191cd98028c5e4f5bff4cba\",\n \"7c4a8acb0228b1c08d74c17d94cc386a4d912adb\",\n \"7c4a8ad14d849a1e822b3e9e8a6887105f14912b\",\n \"7c4a8ad1e0acadefd2215c2c26ab9fcd96d96bd6\",\n \"7c4a8ad340ee31880e79dc30ad389ec9455a1247\",\n \"7c4a8ad71df492652cbfe1e6ecac648185f83c54\",\n \"7c4a8add77a474621166496041d680f11b6d93ec\",\n \"7c4a8aeb548d6dfbba289d045147f1009e003614\",\n \"7c4a8aeb5ebeca4def9adb287b041b3b1d4c1693\",\n \"7c4a8af08054022bd6a46372b6b5ae35ed8321bb\",\n \"7c4a8af78cc8ff0e16872b3d7cd3503b1f663dc1\",\n \"7c4a8afcc9a804cf9c833fce901223f74b7404c8\",\n \"7c4a8b011c2584240fbf690555d9c43803a18fcb\",\n \"7c4a8b0669bd4d9b99aa0af02d3056e728150350\",\n \"7c4a8b0a343282951d2219b33fde0e338bda7b63\",\n \"7c4a8b10e84ff9b4b14594bec936908efd02d764\",\n \"7c4a8b1365b931d0a7e118973fd09755caee4e0f\",\n \"7c4a8b1c5ef9005fb088f74eaa717c681ce6481a\",\n \"7c4a8b2602c6643d8138ffb41752bacdd8bc1320\",\n \"7c4a8b2bdf55616f06b628a384b6f96ea4f4127e\",\n \"7c4a8b342a003cb58faed3a2499b98381c958e51\",\n \"7c4a8b350b9e23351eb42637107652ab5ee79932\",\n \"7c4a8b3dca1fdf4f1b9c0f5f0ca060c747dcbe33\",\n \"7c4a8b403a9890370cec47a6c0be7cb7de6c6e99\",\n \"7c4a8b426da21b2d8b7204eb005bf26f97ccfe6f\",\n \"7c4a8b4302d8c56380019120a7edc71c476386ed\",\n \"7c4a8b47cb33e80dc72efe0aea1c86581040e2be\",\n \"7c4a8b493350377fcabcb226689335f41cbc7076\",\n \"7c4a8b4a06b24c38eef526a3b9c31e6caae6bd21\",\n \"7c4a8b4aa250191c1b382cef57f83f6d808f39ca\",\n \"7c4a8b4ed8148d52838afd96e253303a6a89fdc1\",\n \"7c4a8b5134fad920243f1bc60696a4b9d7a68bc0\",\n \"7c4a8b5c315609685b8c0cd083e0e59091ddc1f8\",\n \"7c4a8b6dbde0ffe8c477fd36806ef2462452b9f3\",\n \"7c4a8b79dae191f471155a72d29f902fe4ccdd74\",\n \"7c4a8b8541a1b995aead2ec2bc1ec1b65cfaecc3\",\n \"7c4a8b8616dc1d3ba4a0851a6a65f340a1a13482\",\n \"7c4a8b86dfdff8f6a120f76496a89fbd01f1ba9b\",\n \"7c4a8b88308d7ea9b82332f8bd551b91d7322592\",\n \"7c4a8b9267b0630919e3a9062dd134935655410c\",\n \"7c4a8b963c229f713edb22baacd367c712e021c4\",\n \"7c4a8b9709ead24fd4ada3d298d1b562a7912fa4\",\n \"7c4a8b983c366128faaf7e884afb777b20c3cd91\",\n \"7c4a8b9a967dc29200723580f300538ea350b16a\",\n \"7c4a8b9e394fda9c95ed9aded1cf6b0ec9ccc15c\",\n \"7c4a8ba9904d542adbeef7d4708eff92a685fb3b\",\n \"7c4a8baa5c8535b21bd035dab5820c625a53246d\",\n \"7c4a8bac81330ecb6a87a9d58a07124bce99d5e1\",\n \"7c4a8bb6070a6b2c1fb84070476e82a999caaeb5\",\n \"7c4a8bb6552e05b26d9d6cc14cd8f50c047d27fc\",\n \"7c4a8bbc0feffdce253c197d7cffcf7bdca28081\",\n \"7c4a8bc76304c9f20208b1edbc8e38ca1bdaba91\",\n \"7c4a8bcfe882c36e8fe8a703cd127dcc6bc0e214\",\n \"7c4a8bd6a4bfacc50331ffb15ed023827ba7cf28\",\n \"7c4a8be4b085ea333ea5465d06b9267565ad959f\",\n \"7c4a8be5cabd042bb18b38382dde5c788fe91a0f\",\n \"7c4a8bf4df10e5e7ff91711bf13d32add9549378\",\n \"7c4a8c071f994ffb274e4e4d4dae9fabe83a9ea6\",\n \"7c4a8c0ecddd10fcf10b76dac361fdb377e28a0d\",\n \"7c4a8c1689f0c131e48b19fbef403346f10c010d\",\n \"7c4a8c16b4383b70ea935b64ba705ba5b3040c30\",\n \"7c4a8c189fd96be647440698311a170b0364d739\",\n \"7c4a8c1a567d8b3c21975beb78d1dccdc5b71569\",\n \"7c4a8c1b828708dfa548b6a2a44b936ee77b01ae\",\n \"7c4a8c1ded88d4e6ae4a59d360054d1779a42275\",\n \"7c4a8c1e98842499122ed554c7af89741dddb06a\",\n \"7c4a8c237fa3c71546fb29547e7464257a2a5010\",\n \"7c4a8c23ca0a8f0d0b5c6006872eea484e110231\",\n \"7c4a8c339e6957f821063b2ed4f0beb8887bff70\",\n \"7c4a8c390a0cdee4b4716acf8979b9bd319434f0\",\n \"7c4a8c3c89bd455788a8a0ca91732fc0768b1ff6\",\n \"7c4a8c3db422f68876a87b7ef8e3f30d965fec4d\",\n \"7c4a8c3ec2f3df2f1edca9533537b51c76284692\",\n \"7c4a8c4052c9942c53a88a0a50edddf7306b5b7f\",\n \"7c4a8c44750e254f0da5a419e8560f2316e7803a\",\n \"7c4a8c498257e3313c8bae1d6bc367fdf730e740\",\n \"7c4a8c4c26cf0e570a62a7de138423de491cefb3\",\n \"7c4a8c4eef466b5552bcae0b355f5fff8a6f718a\",\n \"7c4a8c59b602f51c86081188c70857c6dea03e9a\",\n \"7c4a8c67dcb35947a7b88594f95107e7bfae075a\",\n \"7c4a8c6b6d75e1b1cb57bea56edcd6911a31f2ce\",\n \"7c4a8c6f38d9f847a47d5c30fc2c0f5d183e8416\",\n \"7c4a8c7488cc2b4d86f0fcabdec93e41181eafdf\",\n \"7c4a8c7af6ad921d0fea20b1a513548c80b7085d\",\n \"7c4a8c822a16e7f5c112a9dff7bcb4a2b8174f48\",\n \"7c4a8c84a4d14b3ba946253212e386fb00d3ecff\",\n \"7c4a8c8b9b65d792de039f5adfb6ac379db5a228\",\n \"7c4a8c8eb6889e5fcc1850d054491900a664fa3d\",\n \"7c4a8c9ab3ea5b49557183e303711ff994c87cf2\",\n \"7c4a8ca30225dd4663870eb52fc120428925ebd0\",\n \"7c4a8cb6ca37a2e90ab31bf624db47bc1d28d224\",\n \"7c4a8cb721a2c3636543d19550ee34e06f76db95\",\n \"7c4a8cbbf0f23ac44143367a7470a4bc4dcd92cc\",\n \"7c4a8cbc741e91262a587a41a8501862a71a2245\",\n \"7c4a8cbff071fcbb69f9c918d280dc222df53167\",\n \"7c4a8cc03292006ce56a2a9000463ce9acbfdb25\",\n \"7c4a8cc36645ad4c061dcc65b4d6a27d4214ba6c\",\n \"7c4a8cc6027b9f2e5eeb3062d9bef9fe108b2706\",\n \"7c4a8cc7a928465f0b46d4333103888357151618\",\n \"7c4a8ccb9e276974cc5609cdb0c69a03cbd5c437\",\n \"7c4a8ccf5d28c60d24fa86436994e7fe6ca15fcc\",\n \"7c4a8ce178ae0a84ae7a885bf1a7e3757bb75b24\",\n \"7c4a8cefe83c6648313698c44aa5821e9373c5c5\",\n \"7c4a8cefee7e2a9e04b4b0d46d6d69e88ceb08ba\",\n \"7c4a8cf35d5a59316f662bbfdf637f9e2d65d2fc\",\n \"7c4a8cf922e0da05b0e20d67afd1ac380ed221bc\",\n \"7c4a8cf97c31f7decc2bb7162407f9101b542a5a\",\n \"7c4a8cfecf0d59da4880a399b7fc19ea48d34b63\",\n \"7c4a8d01cff3583dda6607d167c59dcb47012719\",\n \"7c4a8d032e84b0aeb4e773555c73d6b13bea7a44\",\n \"7c4a8d09ca3762af61e59520943dc26494f8941b\",\n \"7c4a8d0a4aa2e841c50022bb2ea424e43f8fc403\",\n \"7c4a8d10b1f9d5901978256ce5b2ad832f292d5a\",\n \"7c4a8d13429975532e9c22e8502096bf91dc7707\",\n \"7c4a8d15baadfd6d69ce574de7bda9b0b8d0004f\",\n \"7c4a8d1618facc3854462b7a0ef41914d22c41b6\",\n \"7c4a8d21307cae168387a4c8e7559bc65382d1db\",\n \"7c4a8d29679dcc243a3807e47ce2f1aed7c783ed\",\n \"7c4a8d2c35272ca23211a29c1bfeea80885dfa37\",\n \"7c4a8d2ca4fea3bc9950da15e10dfa2e47a40c9b\",\n \"7c4a8d2dedaabd28cf2c47236f506eba6472019d\",\n \"7c4a8d2f5fa1c66ddcfde2d1c7fd29f535b4597e\",\n \"7c4a8d34e3ff9baae91b64d628ea2db3d7483a12\",\n \"7c4a8d3a915c34ab980c6fcffcc76efeff4a065f\",\n \"7c4a8d3c2df0568faba881c638c8a2cd284d7db9\",\n \"7c4a8d3d2ca897e470d39209466567a9c50aa4dc\",\n \"7c4a8d4af7281f5f8ad6887578fea5a632e8a6b7\",\n \"7c4a8d4b9290b0a0d0fdaf3725b06691166b4e69\",\n \"7c4a8d4f34569f4ac45b0388cebb89b27e95d962\",\n \"7c4a8d515020fb2c2355e7af5f8c2710af3d72e7\",\n \"7c4a8d5a9ef5fa1f73826212589d540edf78d08b\",\n \"7c4a8d62ee133bba04555e692617e56684a67c4e\",\n \"7c4a8d64b022e8194b9246cbdb5950de37dd752a\",\n \"7c4a8d67132b7c132d7d30a753b29a9355311824\",\n \"7c4a8d6ae9cd7e86b837fa650204c661348513e4\",\n \"7c4a8d6b0ecf46ae4a97268215cc66238eef3f2c\",\n \"7c4a8d6e138e3543e1c6fb23c4807df171e285a5\",\n \"7c4a8d713ad4f642e51d79c7d7fcecd23525f628\",\n \"7c4a8d7816165454ace2c208cd62e526799f8ca1\",\n \"7c4a8d7977896aaf18421f68b4751837c23eefa6\",\n \"7c4a8d7f20d435d1f9f7ffa96c28e216e981637f\",\n \"7c4a8d82a23a4ff0dfa9f91358da9482b30893cc\",\n \"7c4a8d871f8bc20dc668f076ea9f148f18dd63a7\",\n \"7c4a8d8a1624a5d337d3def73cbedc81b411e04d\",\n \"7c4a8d8c5b51df38136603e067e77af636fea1fe\",\n \"7c4a8d93d6945f3e351d26d6efae4cecdc71e31c\",\n \"7c4a8d94663c38d79b419240b69a632d0e8d321a\",\n \"7c4a8d9f3acd5bb793be3d7e3a2dc5396ba4bb9b\",\n \"7c4a8da0f55f189fb2255590c1036d7eb8e3fcfa\",\n \"7c4a8da1d058b53053a6d994e6247a14fd7c2eee\",\n \"7c4a8da4e1613389f571fec9962dd391e57d9f0f\",\n \"7c4a8daf025a31260a9359a5e5ad271e8c126fc5\",\n \"7c4a8db020b11b7744febc3d4c1f738248637b2f\",\n \"7c4a8db349f9a2fd570d6864df6124c75055c389\",\n \"7c4a8db58ef759838aba8a242a0c07498ccf30ce\",\n \"7c4a8db65d44831a1b9ef3b4ffc0b7c5d4329560\",\n \"7c4a8db99add3409242f52aebcfadbf7acd63337\",\n \"7c4a8dbd57c01000e2f13489f979342d7f90f581\",\n \"7c4a8dc16df8c0ec43e454dbf3bde1b5d3569e81\",\n \"7c4a8dc3aeb63a2676c378f1baed78f73050a558\",\n \"7c4a8dc53bdca9d563730ca7186f496e864e1240\",\n \"7c4a8dc787623abbd4003a32dee7ec761db115cc\",\n \"7c4a8dc80cd7cac743ed917e44fb07f911b2d565\",\n \"7c4a8dc93be9657502c10f10f997bcc514408384\",\n \"7c4a8dcf7495f8ec07980594765f2405f0ff367d\",\n \"7c4a8dd4480f5053914916a704dfb636d141177d\",\n \"7c4a8ddb420cec4ef1faa4ec2aabbe738edf2db1\",\n \"7c4a8dde829eceb8d9909c0b2b0021c3591380d4\",\n \"7c4a8dded60adbb04ebda6ef7e2b3097b4edc592\",\n \"7c4a8ddfba830d4252d9fbf55c20996dddfe690e\",\n \"7c4a8de1b356ec02347c06db8897371f53ce2058\",\n \"7c4a8e0168bf3fa5f7db45cdf3a394f87eedcf0a\",\n \"7c4a8e06a10a1e4100c26d56042ecab005402776\",\n \"7c4a8e0afa58e50b752f7c889e66424cc6c0d04d\",\n \"7c4a8e0c63743ffda04a7ad2b353c13974a2f68f\",\n \"7c4a8e0e5a970fe5ee9b288d771102ddc3a2f0c6\",\n \"7c4a8e10b2b638294f7a5a33505467d81ee3dd9b\",\n \"7c4a8e16667e08c624d457749ea5a05b13d325b4\",\n \"7c4a8e1df7d7b6b8ff81b1f81bc95ae89a20243d\",\n \"7c4a8e28afd32b078d6d5fa4c3b5bafc4cf7e3ec\",\n \"7c4a8e29316a0f5d5a7c6999105e42f1fccf5297\",\n \"7c4a8e316ca786fc9958a9d26f45d9d8b801f0bf\",\n \"7c4a8e3466dee027ae5d1a11c393a4e138c4a3e0\",\n \"7c4a8e365bf7f57f74c953689dd0628621abdcc3\",\n \"7c4a8e47f43d2fe2b9a97cc2f72181e38c3c464d\",\n \"7c4a8e557b6fa2c0e716ccd22cb0a82553bbfb41\",\n \"7c4a8e55ee18b95d28fb8b206580012e77e36bfc\",\n \"7c4a8e584fcfdab14af39af20a37e2b0d3900699\",\n \"7c4a8e593eadad8b900f089f59abede506342b4f\",\n \"7c4a8e5a2acea23c61528bdea98f250231fda892\",\n \"7c4a8e5b99cf8367ff58d9911f18884e970d04f4\",\n \"7c4a8e6012955b30fb9a2168d49bffd177cde88c\",\n \"7c4a8e61df5c64df146f187ecec62c3f1bb89752\",\n \"7c4a8e631db66a3be39a190e86ca6dc423be30da\",\n \"7c4a8e6af35acab45b74ca5da191287fded10f58\",\n \"7c4a8e6ebcae928f10d9bef9893218d74777fd52\",\n \"7c4a8e70f0155df403ac1d0e1b1fb594b4127934\",\n \"7c4a8e8b6fa21cd35dbacd3e9a2d04adac1a2bae\",\n \"7c4a8e8c3c9ea6ab500cef2599132f7930ffd98c\",\n \"7c4a8e8c75e49e474d78e3302705cbe38653ad3f\",\n \"7c4a8e9319019eb187b2f33cc7971a9e9cb75add\",\n \"7c4a8ea7affb08a85baed77ddd244d8ba14b8d7a\",\n \"7c4a8eb342d9d71f609e54623b2e09f81ad3a3e2\",\n \"7c4a8eb83679909c7f87b6028f574f78f8730c13\",\n \"7c4a8ebcc28d3a4d927ee62604a0346cc7504604\",\n \"7c4a8ec6a52fed703ed94b654062e3141ee414c4\",\n \"7c4a8ec6dd15171d74b7768eedd82b67f0648188\",\n \"7c4a8ec98bc75c2340d3d0c846ef5186706486f0\",\n \"7c4a8eca48835f0e1a5241c9ad3ad2ca37c156d1\",\n \"7c4a8ecf5ecdbd2869cf017e655f080361188ce0\",\n \"7c4a8ed03d2ae7ea3dc2ff1e3c67decd4f6f0208\",\n \"7c4a8edbfe186a4234dad96ed529367eca6a3806\",\n \"7c4a8ee104292dfe09eaf21bf924e560f08dcc8c\",\n \"7c4a8ee868e4b04bc55dfcc4d58b17a17ad3a5e3\",\n \"7c4a8eeb736a7981995f4fa441122da1e49abe9a\",\n \"7c4a8ef09b6f1a4d30637d4a6342af0d20ed68e6\",\n \"7c4a8ef38871ad29ddccefe8de2c6b17acc3c8d9\",\n \"7c4a8ef4632848815ea506f0e9ce8489d2d26b6f\",\n \"7c4a8ef6623edbcae4b5326df407e0b7f8d2988d\",\n \"7c4a8efd8634a7b691e3a5ecae8f79fd74acb580\",\n \"7c4a8eff942a37dc6c7aa83906a950d94db65f9e\",\n \"7c4a8f0770ffd4233df8d7729dee670f6f39541a\",\n \"7c4a8f0cf01f08c457cef23e30fe1dca2ef4e13f\",\n \"7c4a8f127bbfa2940cd4bde18578f53342ba7356\",\n \"7c4a8f17760005bc5d5205e327333221fba2c1f8\",\n \"7c4a8f1ce14fe8c6b108dafe25fd7c15f04d0994\",\n \"7c4a8f20887ef20a31ec20bcd9414f256fbf1f30\",\n \"7c4a8f23518f666608d1822a5f3ca7d703473fd2\",\n \"7c4a8f24f10ec017cc850d39b7bfc30e9aaa44a5\",\n \"7c4a8f256864050347abf115bbbfaafb229f172e\",\n \"7c4a8f266c786985fd1a895a9dc67a295a00ce9a\",\n \"7c4a8f268c52689df3f2781c49210ace848f8724\",\n \"7c4a8f292ad79ec1f0ab11848a039eaa6a3cb1e1\",\n \"7c4a8f2a233edd7ed499ef6f33dc806f75cb0601\",\n \"7c4a8f2b809347cedc278d4a76d75cbffdefca9d\",\n \"7c4a8f2dad7ab23148b237531ba3fd0c29db7f45\",\n \"7c4a8f30567ea126b61005d553fe556333dd38e1\",\n \"7c4a8f306e8af4726452230c213fec11a5b97596\",\n \"7c4a8f4226027964fad16b03b6ebf0b0675bcd0f\",\n \"7c4a8f45a47d24ca50b4c7db721db674abe63d1d\",\n \"7c4a8f488a7c795065c68db9ea0c80cd44d83697\",\n \"7c4a8f54671b1432901e6dbbd4ab4efe04c25b6b\",\n \"7c4a8f549aaaa97c5d91be85b482fc8c0917e794\",\n \"7c4a8f56006ba9c544d6fea2b78ce888badece4d\",\n \"7c4a8f56c8791b4de487f7a6785435e7ee9685c7\",\n \"7c4a8f587918aa3bf1bf8656e82dfd2e43bd38a8\",\n \"7c4a8f628872210912565ea9339ad418a42dfe75\",\n \"7c4a8f6679e9bf80cc88e9251cf7d6f98af6c7c2\",\n \"7c4a8f6a07ae88429ed6a5da1770bf2e30d9806e\",\n \"7c4a8f6d987213caadd2371c591151900b19c831\",\n \"7c4a8f7117dee9dfbf782d1d060fe0470299d2b8\",\n \"7c4a8f71cf7930cf4ff368e6b98b3594a96a50f8\",\n \"7c4a8f746c64126ab8b6ff881b356f4e51b68178\",\n \"7c4a8f82693839e33ab46d5ef08429a975254485\",\n \"7c4a8f87f283669a303b9bb90937e774acf6a18d\",\n \"7c4a8f89408ded12dc39c8c4b6d10051a0b81ba6\",\n \"7c4a8f89a2313f1d483d783af3a3102d11c8f3be\",\n \"7c4a8f92ccfcb8e10e287cd9accb82960ad43ef2\",\n \"7c4a8f959859d8832d61c88afe723b9a5586f0ba\",\n \"7c4a8f9c0189829a3526052921824eed436fd0ce\",\n \"7c4a8f9cc6df9454d9f23bdf8bc269cf1ff1a388\",\n \"7c4a8fa79e6d266a6b04763f8a3b112a7bb8bfb0\",\n \"7c4a8fa93ed883e0e1f59d46ef36ef7943ef69a4\",\n \"7c4a8fae4548a0615285c3c4e80adc12cbca9f93\",\n \"7c4a8fbcceec045112788632051a4784566a2b2a\",\n \"7c4a8fc23efc7f7a58c4f9cc4c227642de5939a3\",\n \"7c4a8fc33924cd20baf901b811e971b6642e38b0\",\n \"7c4a8fc382c373799eca06fafd4681e804aabd57\",\n \"7c4a8fc6ddf0929f7f09e668f8c42611860a1238\",\n \"7c4a8fcd47dcdbcc4ba6226f67335ce72a54fb9c\",\n \"7c4a8fd14b5685c2c5382a4bf852e5d6c8125306\",\n \"7c4a8fd57ccd669b1fc74f5043b71e48e54dcdf4\",\n \"7c4a8fdb537b16fa17005abd2038684d0377345c\",\n \"7c4a8fe2c78460c8eaecb348986c59be63e653a2\",\n \"7c4a8fe73c3db356a2ff28c505d3286e9f27baf8\",\n \"7c4a8ff4214e58a670fd29e550ff27983b61a414\",\n \"7c4a8ff6651db3fc2a34a006f98cf9d5d17c81f2\",\n \"7c4a8ff849c5de93593756ddf7aecbbe40b9a947\",\n \"7c4a8ff90fee99c8e2961ad1077adee4c6feff30\",\n \"7c4a8ffa7b0ad1884d08b5ae2644c8d9d76bd4b5\"\n]" } ] }, { "name": "Hashes", "request": { "method": "POST", "header": [], "body": { "mode": "raw", "raw": "{\n \"range\": \"7c4a8\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/api/1.0/service/hashes", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "service", "hashes" ] }, "description": "[The full and up-to-date documentation for the hashes endpoint can be found in the wiki.](https://git.mdns.eu/nextcloud/passwords/-/wikis/Developers/Api/Service-API/Hashes-API)\n\n#### Request\nThis endpoint accepts a JSON formatted request body with an object with the following properties.\n\n| Property | Type | Default | Required | Description |\n|----------|--------|---------|----------|------------------------------------------------------------------|\n| range | string | - | yes | 5-40 characters of a SHA-1 hash to check against in the database |\n\n#### Restrictions\n- Nextcloud Authentication **required**\n- User rate limit of **10 requests per 10 seconds**\n\n#### Response\nThe API will respond with a list of SHA-1 hashes matching the provided range.\nIf no hashes match the given range, the response will have a 404 status code.\n\n| Status | MIME | Type | Description |\n|--------|------------------|----------|---------------------------|\n| 200 | application/json | string[] | A list of breached hashes |\n| 404 | application/json | string[] | An empty list |\n| 429 | text/html | - | Rate limit exceeded |\n| 400 | application/json | object | Error message |\n\n#### Errors\n| Code | Message | Description |\n|----------|---------------|------------------------------------------------------------------------------------------------------|\n| 49f5c936 | Invalid range | The hash range provided to the hashes endpoint is not within the allowed range of 5 - 40 characters. |\n\n#### Notes\n- In case of a 404 status code, some servers may replace the response with an HTML page.\n For any 404 response, the client can always assume that no hashes match the range." }, "response": [ { "name": "Example Response", "originalRequest": { "method": "POST", "header": [], "body": { "mode": "raw", "raw": "{\n \"range\": \"7c4a8\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/api/1.0/service/hashes", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "service", "hashes" ] } }, "status": "OK", "code": 200, "_postman_previewlanguage": "json", "header": [ { "key": "Server", "value": "nginx" }, { "key": "Date", "value": "Sun, 04 Feb 2024 08:44:14 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Content-Length", "value": "18947" }, { "key": "Connection", "value": "keep-alive" }, { "key": "Referrer-Policy", "value": "no-referrer" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "X-Robots-Tag", "value": "noindex, nofollow" }, { "key": "X-XSS-Protection", "value": "1; mode=block" }, { "key": "X-Powered-By", "value": "PHP/8.2.15" }, { "key": "Expires", "value": "Thu, 19 Nov 1981 08:52:00 GMT" }, { "key": "Cache-Control", "value": "no-cache, no-store, must-revalidate" }, { "key": "Pragma", "value": "no-cache" }, { "key": "Content-Security-Policy", "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" }, { "key": "Set-Cookie", "value": "PWTESTnc28=835e9a8be7739866410402b783ef5d83; path=/; secure; HttpOnly; SameSite=Lax" }, { "key": "Set-Cookie", "value": "PWTESTnc28=835e9a8be7739866410402b783ef5d83; path=/; secure; HttpOnly; SameSite=Lax" }, { "key": "Set-Cookie", "value": "PWTESTnc28=835e9a8be7739866410402b783ef5d83; path=/; secure; HttpOnly; SameSite=Lax" }, { "key": "Set-Cookie", "value": "PWTESTnc28=835e9a8be7739866410402b783ef5d83; path=/; secure; HttpOnly; SameSite=Lax" }, { "key": "Set-Cookie", "value": "PWTESTnc28=835e9a8be7739866410402b783ef5d83; path=/; secure; HttpOnly; SameSite=Lax" }, { "key": "Set-Cookie", "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; secure; HttpOnly" }, { "key": "Set-Cookie", "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; secure; HttpOnly" }, { "key": "Set-Cookie", "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; secure; HttpOnly" }, { "key": "Set-Cookie", "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; secure; HttpOnly" }, { "key": "Set-Cookie", "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; secure; HttpOnly" }, { "key": "Set-Cookie", "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; secure; HttpOnly" }, { "key": "Set-Cookie", "value": "PWTESTnc28=835e9a8be7739866410402b783ef5d83; path=/; secure; HttpOnly; SameSite=Lax" }, { "key": "Set-Cookie", "value": "PWTESTnc28=854f224a354f8cb6a6cc7260f00aed4f; path=/; secure; HttpOnly; SameSite=Lax" }, { "key": "Set-Cookie", "value": "PWTESTnc28=854f224a354f8cb6a6cc7260f00aed4f; path=/; secure; HttpOnly; SameSite=Lax" }, { "key": "Set-Cookie", "value": "PWTESTnc28=854f224a354f8cb6a6cc7260f00aed4f; path=/; secure; HttpOnly; SameSite=Lax" }, { "key": "Set-Cookie", "value": "PWTESTnc28=6347148b33400458fea65e0ae97d6c47; path=/; secure; HttpOnly; SameSite=Lax" }, { "key": "Set-Cookie", "value": "nc_passwords=e20292ebe776ed195e060d0f0a3fb365614857017b24320d7df0223419edcb7466785b46e78b2699422b9f77a0b3155f149f21e1917a8f054f0c47a4736f41dc68aa277696527b6d2c05f9e9ed7ab5db%7Cab7dd327536db095a4bd759f30f54035%7Cb3546a4dca52744ae57b25d4d2f3c173066676819db8732fcab9353755abbe4cf17fa4df5036032d1e89543601d6e263690d010c4fdd84bcb822a4c5db420b32%7C3; path=/; secure; HttpOnly; SameSite=Lax" }, { "key": "X-Request-Id", "value": "q8fq069ue2WFq77dSDst" }, { "key": "Feature-Policy", "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" }, { "key": "X-API-SESSION", "value": "e20292ebe776ed195e060d0f0a3fb365614857017b24320d7df0223419edcb7466785b46e78b2699422b9f77a0b3155f149f21e1917a8f054f0c47a4736f41dc68aa277696527b6d2c05f9e9ed7ab5db|ab7dd327536db095a4bd759f30f54035|b3546a4dca52744ae57b25d4d2f3c173066676819db8732fcab9353755abbe4cf17fa4df5036032d1e89543601d6e263690d010c4fdd84bcb822a4c5db420b32|3" }, { "key": "Content-Encoding", "value": "gzip" }, { "key": "Strict-Transport-Security", "value": "max-age=31536000; includeSubDomains; preload" } ], "cookie": [], "body": "[\n \"7c4a8001ce884342580d934a29d94060b3796c30\",\n \"7c4a800ad0fc3fa522d0474f9a28fd478c06669d\",\n \"7c4a800d7955ef1fff374f6759d8ae026c09eea0\",\n \"7c4a80118adfc3190a4fe3450bee0bf217def27f\",\n \"7c4a801667d07e8977f234df1592b6d08c273298\",\n \"7c4a8016cf4a4ab98ad25ca4dde9b89571620585\",\n \"7c4a801bee2b9f06a73e5699ef366ded3f9e3899\",\n \"7c4a8022307332788f61466348961717994700af\",\n \"7c4a8022b27dc5df36dd9f0fbaa565b2c7a532aa\",\n \"7c4a8025ea843e36ab462512e53b2e50ef9c7e03\",\n \"7c4a8026c65089493eaf6ea1365a424566f5c3a1\",\n \"7c4a802a10f1df0c8c00e3dae6c56dc98452c26a\",\n \"7c4a80333483fe868164d13d58b9ea1e7431f769\",\n \"7c4a803abf996b5ea6aa91ebdf3d5a94985156fb\",\n \"7c4a803b0c3d111b760cda695a063c3cc85fcec5\",\n \"7c4a803e45f100ebf12d130e5dc303a362176772\",\n \"7c4a803f0e2e29364398505b300c983223baae7f\",\n \"7c4a8041088c4afacf438ccb66a4bab2acf89f09\",\n \"7c4a80413dda2b49f939f81eb0a1bec6c20c749b\",\n \"7c4a80444bedc5f72570ab7ecb7187ab0659b94e\",\n \"7c4a80451dc486a2f078de639a1652fb68b6adac\",\n \"7c4a80466801a41dc4200dcad3252a5f15f39407\",\n \"7c4a804f98d9238ae74bfefd62ef3ba6cd6edfbe\",\n \"7c4a804fd415e9379dacc808337599698d810765\",\n \"7c4a804ff0f9b9ec7f6addc51a2cdcf56fef2634\",\n \"7c4a8051572dcbc01586b7ab9b53cdb39f35bae6\",\n \"7c4a8054368799950782e40526f6f7711e23a69e\",\n \"7c4a8056e0d023c7cb6cd3cc356d88de5c9f191e\",\n \"7c4a8057fc4413c172058479ba1be13f1be50a42\",\n \"7c4a805aed103d08f77a63dec40ed84a68727262\",\n \"7c4a8060d658503b11cd695bea2bccb9c91c879b\",\n \"7c4a8062252cd3a5864d9845ec1f747cb49557dd\",\n \"7c4a806419589bb9b04ee14853d45265d93023aa\",\n \"7c4a8064dca94b75c829f8af833d0a73bc35b565\",\n \"7c4a80651be464fe5ce1768442c45bbfa9ddf375\",\n \"7c4a8071f073466c6db3aa801a3ca3161e950776\",\n \"7c4a807a7282f035fe06aa9f18592b459f1794f2\",\n \"7c4a807b931940f4e08e3e62532f3d4551e22bc6\",\n \"7c4a807d4c46a5044a95182dc53c4f0b9c06b265\",\n \"7c4a8089e9da3acc0e98bbe252c6ca73c5eb96d7\",\n \"7c4a80986914f82e9b31f9f78ed58cc082399b10\",\n \"7c4a809984c44c18f03975483a0f9032d269a971\",\n \"7c4a80a0ac5a1ca2d500d3ea9770c4e25d2079ca\",\n \"7c4a80a5f625413487626532b5d37159eaf38065\",\n \"7c4a80a90e45be69c56928ae3275330b5320b426\",\n \"7c4a80abfb2a59e613cffc71e93a505a510ba22b\",\n \"7c4a80afd28232afbf995860d066b9cce92c75c6\",\n \"7c4a80b6508b359443ec01adb5dd699c6bbf9c90\",\n \"7c4a80be73397473b4ead7721f0925d9437f5f73\",\n \"7c4a80c6d8ec44bc0ccd351b98c9136572e1dadb\",\n \"7c4a80c72b60c0bd23cc58d85a91655702fadb10\",\n \"7c4a80c9680197d57409de7843f4d406ac3a655c\",\n \"7c4a80d23c4049b3cc6cfbea8a7333902f08b63b\",\n \"7c4a80d2a36e85b0175a2fdece3b7cdd8e036ffc\",\n \"7c4a80d342315be050c0e3701e38a907d61abf22\",\n \"7c4a80d389c3e53b47dd87b7e1c34e5d58ad9132\",\n \"7c4a80d81e4dad2f075347f108180273fbcf73dd\",\n \"7c4a80d93443b274c06bb0015fc3a3f6494ebb1a\",\n \"7c4a80de30fdc810661c387d0195f6a25c82a883\",\n \"7c4a80e85bd2f2a4c647f9b41ccad0c1ff0b9ed4\",\n \"7c4a80ecd887b0a717b836500c68421280e6a277\",\n \"7c4a80f18874d4f6084957da3d8321b307af15cd\",\n \"7c4a80f868316f3f54750b8106776aa1e2367b9e\",\n \"7c4a80fea93a07650e678ac3fb96f3ff7bf55740\",\n \"7c4a8109fe0e16d820237a8dcb4dcbe78658b948\",\n \"7c4a81119713dbfcbaaadf24d35c9b52a19eb0ec\",\n \"7c4a81143d64dd89347cae1cbf337323db45ee1b\",\n \"7c4a81167f31924266d5340308273afad4680bcb\",\n \"7c4a811a5b1c91a5f8dc5d25c48edfb3b5c7361b\",\n \"7c4a811b8df97a8ff1b5535748eac38432db6bcf\",\n \"7c4a811d33dd52a1f00f2c2534db0b2140be7ae1\",\n \"7c4a81272fdfb6fbc3d9466a60013d88dfad1ae6\",\n \"7c4a812a04ceb6bf213a53aac1d32d0b364d6a95\",\n \"7c4a812f9d6c53aec89547b73188e8a32c6d8ec6\",\n \"7c4a81324b35d91c83f1d8b04f2228af23296606\",\n \"7c4a8139a3802df0e09a6fdd05c89aab21680eb1\",\n \"7c4a813bbc309d4fc13562a5dcfaafa7915d721e\",\n \"7c4a81472d3c8727330c4a5a03ae3f835c62f47f\",\n \"7c4a815911700e9829c3a0187955faa314e3ce9e\",\n \"7c4a815aa3fe31fbbea874b8e7e4851fcb87f1dd\",\n \"7c4a815c8595d36b9ffbe4bfd7c3a69899372d1f\",\n \"7c4a815d097e4b8897fae2221fe261e40aaaff06\",\n \"7c4a815da00a400e42a4e84062e0c10e9e9a871d\",\n \"7c4a816b26d1584174040f86a67e586d335ae9cf\",\n \"7c4a816bc4ec0186a42a689faf3d0a73aefe1303\",\n \"7c4a816c66d25779beee29a95f14b4a3845fd516\",\n \"7c4a816ebeaf3aca8a5e88fee971dba46207a768\",\n \"7c4a816f1e0b84d34f40538fd7a34aa7e9979bf2\",\n \"7c4a81719b6367377d3b52cd3fa79b25a690ea84\",\n \"7c4a817cce97518c8427fed8e3f9a15f61e4441a\",\n \"7c4a817fd56b7be499e739640e7df89211717db4\",\n \"7c4a8187d6ee5ba4aec8babffab7ea199634f6bd\",\n \"7c4a81907e79ad73a9beba43ef964b4ecb2e4035\",\n \"7c4a8195853bfd774ed4622abe9f85c62e137653\",\n \"7c4a8199f2b665e065d8d2397d6cae2c34dec27b\",\n \"7c4a819b16a278320592fe1ae1ed3869bfb7d079\",\n \"7c4a819cc999b0cb24e45728220891d1b9e60fd2\",\n \"7c4a819debac7c6f7830710226371ebd967484ed\",\n \"7c4a81b3f05432b562b609d0c04c8e890ddd4f61\",\n \"7c4a81bf3ed8b157ab6ae9b91f463dda1f279162\",\n \"7c4a81c80743d1af9cad05c4a813cec322f2dfdb\",\n \"7c4a81da15348fc3455e1959e908c57be05b040d\",\n \"7c4a81dbb80acc933dba65299288db6040a8d494\",\n \"7c4a81e251eeac6f45ea6d240b60fac0e5f222ed\",\n \"7c4a81e52f8e6da47e6ac45975261084766b0c5f\",\n \"7c4a81e6d7d94a1a3f00008f09e1af544883a05b\",\n \"7c4a81ef9221fb10afc096e19374fbc5083f8be4\",\n \"7c4a81f8f2d0d3fdd67d0ce87acfce114e2bd0e4\",\n \"7c4a81fea11c951ecc0a86889f19fdcf9072dc96\",\n \"7c4a82042b5518af4d807bee891f25f531df15ab\",\n \"7c4a820639c6e14d594548a3c07a0405020b8f23\",\n \"7c4a8206660ec79cbe523d861f8cfef848cc5263\",\n \"7c4a820eba52957907902290757cf533b76fff69\",\n \"7c4a82136c18016b22291316589c7054c302b043\",\n \"7c4a82183d78e9b8470985fb1bc5169efadd32fa\",\n \"7c4a821bda8530b1969225dee72a4e977882d820\",\n \"7c4a821d2e05d9666962964ebb6d24f1acd18559\",\n \"7c4a821ecba92116a12711d09b5c913d982ba1a5\",\n \"7c4a82203aca5a663804c54a15665b0fb13f8b4a\",\n \"7c4a822326c893877548e7b0ee47d2ba1a152b9a\",\n \"7c4a822a10e853922915292eb3554b863165c646\",\n \"7c4a823259f94104645dd276804ad1fd0046507f\",\n \"7c4a823bff316bfffc8cef2e7a444720110d9734\",\n \"7c4a823c796195e0a075a1299ed290a0716258d6\",\n \"7c4a8241d060f66955338c44b4932b4ed21ac5bd\",\n \"7c4a82423974086e6cb6f0440ddf3bfe24f69cdf\",\n \"7c4a8244f7584819bb5301080b0d9934d908484e\",\n \"7c4a82452ab11e13da25b5c014639fa21fbdddc5\",\n \"7c4a824db274d7b1e570d3f30398ece8c6e7d4ac\",\n \"7c4a824eb3ac33a1573f4f9169b75a341891fe53\",\n \"7c4a825730553f492d027270ca4df0cf37dae786\",\n \"7c4a825817984b374543c5f6cf0406da816bcccb\",\n \"7c4a825c2eb877b11d2d0f886b36b96d6271ca31\",\n \"7c4a82622a9a345f133af6e38607659ad53bb1e7\",\n \"7c4a8262b6a4bb4f7e9d768a15c0fd88b85edf39\",\n \"7c4a8264b526a35685bdc7f8612a4ad5ff242fa2\",\n \"7c4a8266b20e01066a54c6f8dfa22050610d79e1\",\n \"7c4a8268647e407a9d4a105b9dc320838fc5c7d8\",\n \"7c4a8269186687651e65a9b94421809cc53431a3\",\n \"7c4a826c0defed52119e9f4c58e49a007d0c9d5d\",\n \"7c4a826c721103384fe8f43be4bfdcf1fc3f25c0\",\n \"7c4a82714cc0d53f063140ab1877fb76d9f1fcd6\",\n \"7c4a827355dfd1aa3d0b56db5fa8aa10973bb39f\",\n \"7c4a8278bc9b7f14fcd770a62ce1b57238c66ca4\",\n \"7c4a82796b8c5b85237ed1c96be0aaffea98fbde\",\n \"7c4a827b29cb9e4223fb079ce3c87ecc8b084a3b\",\n \"7c4a8292815075607294335f393cac11518b858a\",\n \"7c4a8294e4760a43801a2955fc5776b9406622b8\",\n \"7c4a829609a6652627e31d1d7087de318de43692\",\n \"7c4a82a59118e1894002c04738857517e58d0ba3\",\n \"7c4a82b673212d30f8f5c8e02ef07f984ea89e4a\",\n \"7c4a82b9c163938d7487e404bfe7f36c3da61408\",\n \"7c4a82ca2090e9c9e0ab5f4651a08e2a6243e6a4\",\n \"7c4a82cfc5cf7360ffd384802790cd9360019f75\",\n \"7c4a82d40852d3d349ac963741ccc4f8c1fdd63d\",\n \"7c4a82d5a46fad47c92ff24f8c4eedb0a0639a19\",\n \"7c4a82d881d79e6e4d56d6f0576858fc7b029cc8\",\n \"7c4a82d940e908c57eeefb210d968dc8ea0abb6e\",\n \"7c4a82e1812be6a46badab88eab309b759a309c4\",\n \"7c4a82e1aeee3f07a95ab3e1df77f3f6479c3c12\",\n \"7c4a82e1d5672dad9cc8f4e0630f7a44777e3788\",\n \"7c4a82e38e3a300364f5bb231321670aead179de\",\n \"7c4a82e530e64834c80fbb0ca6d4afd46aba55ea\",\n \"7c4a82e5fca01d6eb96be2e4a8cefbac7f30310f\",\n \"7c4a82f2703d10f4b9bedf383c1db3ef68229ecd\",\n \"7c4a82f39cf258d9fe417efe7a7f1662624b21d5\",\n \"7c4a82fb76764f8fefb4be94ef9137b8533ad509\",\n \"7c4a82fc0fd38424b6a5d9a94335722559131776\",\n \"7c4a82fe005433b383077060b4868926378bb9d7\",\n \"7c4a82fe197ef4c180f9c76135af6161a5aa8aed\",\n \"7c4a83064665f277b8ac884014bbe47561815b88\",\n \"7c4a83066ab9382c8d3713be1ea4a0aa6f370a5a\",\n \"7c4a8308af46c3f6ff0f076a7269a87f14a07a5b\",\n \"7c4a83131f65de6b258a8bb2a6b72bfb72690faa\",\n \"7c4a831764e07bd1de7dd4a81af5e4dc32953c92\",\n \"7c4a831c64d04eea1d8fedade0d56e8479ac90f3\",\n \"7c4a831f697da60ecda0cd4464428688f30c108c\",\n \"7c4a8322ef4876d6f9e49dea156f364cd6b8b79c\",\n \"7c4a8327007f2ce9008881376b8979fba19ee170\",\n \"7c4a832764736be3278c450cb53f99519db143d6\",\n \"7c4a832c00ce519ff3acba38f74c948ddffb8c60\",\n \"7c4a832cf35db5333910e79366b85b91c75754bf\",\n \"7c4a832f19ac50e847305247866217a5e9cf5147\",\n \"7c4a832fa39dbd40dbae38a7b42b3272b5b03d98\",\n \"7c4a8333f31b766763ac9824d0a876ac966a9be0\",\n \"7c4a83401bcb4b9d07c0bb9b89b9692d1d761857\",\n \"7c4a8342f4a28a2b97e1fcac8829827dffb0394f\",\n \"7c4a83438764ea8930b2f188ca380150d19a5f7f\",\n \"7c4a83456898e510d6777fef5b346a5aa3801619\",\n \"7c4a8347ca2220fe51ad74d24d41f9860795d3a1\",\n \"7c4a83541a8491f2dd2d61a2c0c01711979a3134\",\n \"7c4a8355786a5bba906fa822ce54d5a44c36c02e\",\n \"7c4a835683cb442ff284c5239a01633ad856f994\",\n \"7c4a83575ab1c9e2027ccc47a8222d41ffc3d575\",\n \"7c4a835d22fe0e3e4bc8ece6e40da8e47ec62abd\",\n \"7c4a835ebf54c50a52935afa771314252132e9b8\",\n \"7c4a8373444a0b04073cf481d5b143e818732c7f\",\n \"7c4a837411a3a8c0e83d1cc9f94a5cfb068d25b6\",\n \"7c4a837be565a47b9e4fe238b02cc75e9e27530d\",\n \"7c4a837c44ab7dac0526683deca7bacb9fdd245b\",\n \"7c4a837c7062d55d09ad142b67692ecdbe4d5d97\",\n \"7c4a837cdf2858de154df964dcdcc185b5626d4f\",\n \"7c4a838bef77e07451e94da7d72db71d52c04fb8\",\n \"7c4a83962a2a48293a4b8d13ac2c07d8d1f12f39\",\n \"7c4a839f471db104bea5e1a22424338cb43b2416\",\n \"7c4a83a289198057b36c5d7b33c318d1704d0546\",\n \"7c4a83a844bafea68704be83cc46b43e81db9f70\",\n \"7c4a83a90fd61af2317d4d3d5b9975cac3dc6680\",\n \"7c4a83afd811f6971e9d222396a87895d432055b\",\n \"7c4a83b37e5d9ac8031d4645994d5fa9c6be6922\",\n \"7c4a83c03e701d032ef31c97a3855bc94cd4ca8c\",\n \"7c4a83c6d75de42471b435c01761ecf054f6177f\",\n \"7c4a83cc44fafcd8ef0d2dbde2db918d13282ab7\",\n \"7c4a83d2476b68cbc41e040aff17f418351e4c13\",\n \"7c4a83d3bde007d714f8f18a4089784a03e1361d\",\n \"7c4a83d7dd600aa410ee128676e5575b22bf106c\",\n \"7c4a83da0ce99104bc7c42f8da8831284083ecb4\",\n \"7c4a83db1459ecce283f85be048856feb7c89efb\",\n \"7c4a83de0bfde23a53f9e9aaa2d7b8df0fb0e724\",\n \"7c4a83e57b3f119da474cad0cd38ee4b3e9e2e14\",\n \"7c4a83ee2626bfd37017f0400c802838e025c73e\",\n \"7c4a83f13ce082c502821300eb20510508da9589\",\n \"7c4a83f3200c04a48c9dc7f5cbe6b333bec80fc8\",\n \"7c4a83f397dfcbacbd95d740176eff8238090ca0\",\n \"7c4a83f73b5fce60f4eaf725a79c411b7e2be5d3\",\n \"7c4a83f77a8ce65cbd0b33e789aa9571f40cbf4b\",\n \"7c4a83fd1d43d2eb9eb665d38e8e2e633c8310e1\",\n \"7c4a840258f4403e80cdebc5a8cdaceaabbcd518\",\n \"7c4a8403dfa46449bedb34043b07d801807da59e\",\n \"7c4a840668bea3aef591f8d25b9176336af41715\",\n \"7c4a8406deafbef00411ee19be0e013763251db5\",\n \"7c4a84072d4b205e9caad1d9af27aea554f1eea8\",\n \"7c4a840c54f3d360c851704d64270e34d00546ac\",\n \"7c4a8410bb833092dc458e3a2ac92985e110fff1\",\n \"7c4a8411c90562c24e9f5f274705f0a2864110be\",\n \"7c4a8414f569abc0c885ef866ae7a9732076895e\",\n \"7c4a84170d8032f99caa51af55d94f6c561f7235\",\n \"7c4a841c5fb771d2e723cbdd3f5483e18b9f3fae\",\n \"7c4a841efe243dfa586b95758303b3d967a42675\",\n \"7c4a8423b42608103142670e964c27ebdb726792\",\n \"7c4a84250bc415018b440354b3f5a9dcc63657a7\",\n \"7c4a84296a861072e558567ba6e22d1bbe000086\",\n \"7c4a8439d4496848723333c19ac5b61af7257280\",\n \"7c4a84434dc60fe507d371f4d3b4b840e34a450b\",\n \"7c4a84444c9d20d57e15a1bc247e60f6ba5965c0\",\n \"7c4a84490a42071c2f672dba8ed9e2aee59d40df\",\n \"7c4a845b0d49a3d4077e4b8f02dd07a856089101\",\n \"7c4a845c28edf01aa218ab8ae1f0698ff9f6878a\",\n \"7c4a845e13e5b5e17cc4384b15683c7965fe7196\",\n \"7c4a84692a5ad011bd764df901dfd4c7a74fbb21\",\n \"7c4a846b5d2f68d1d5b5257ffb884564445695d2\",\n \"7c4a846b963fa7a877e43519961a3dc045bcf153\",\n \"7c4a8473537b295a70eaf4ef3a5fe9805cc65198\",\n \"7c4a847fdce8194deadb481e45fa8d0d6ba89c69\",\n \"7c4a84802ce62daff0f11764fbc468545e170463\",\n \"7c4a84945fd7b5bea12dd2f38c6fbd00d281c771\",\n \"7c4a849de8a2500a5c1804779a20da592e3dcc7f\",\n \"7c4a84a3b4e4c58678e67ab8e250430728129d95\",\n \"7c4a84a4156e5e9d168ed50c4024e162b020407a\",\n \"7c4a84a4c02b9f45cecb33df92648c77c0954632\",\n \"7c4a84a9c8f2e0e1a37a71a6fa457229d66b0407\",\n \"7c4a84aaf1cae1323a1505bd4968773d10680651\",\n \"7c4a84ad3e0f42ee91e4314998d98c0acd156c75\",\n \"7c4a84af281231eb9db185f19284e94eb0e283b5\",\n \"7c4a84b0e719bd7b1b48f01f3b4c022ed5f6349c\",\n \"7c4a84b448cbb8fe6480a59b9f99e91d6f655192\",\n \"7c4a84b669ae45dfe42b62ebe2df1a6f7e22aa98\",\n \"7c4a84bddc23de98982312dd220238b67c1bbc0a\",\n \"7c4a84c0d51432c2985abbccd1a365e3b85f9c96\",\n \"7c4a84c4b77a887701f6573f45ed4f8fe513aec8\",\n \"7c4a84c82c39b4a1d7d3810d25cfd514f90886fe\",\n \"7c4a84e112e5fd9dc61f4c53a9f35dd872977511\",\n \"7c4a84e62f420e6c54c79f68384be7f2eb87f6e3\",\n \"7c4a84e65dd2f62676ae503b28aea9501a88aac9\",\n \"7c4a84e822f935e8e06ec3a5c3b60c57ba75423d\",\n \"7c4a84f2ba78a48e5313d6191aed2ba387539fdd\",\n \"7c4a84f5898eec2d8662f29677664d35548e24b1\",\n \"7c4a84f9c060a058664c90efc958630523efd491\",\n \"7c4a84fd1c181a3f831aa99ccabec2379981ef12\",\n \"7c4a85000deeda84c38cff79c810594b95e36aff\",\n \"7c4a8504ee60104209f7ac904d669cbe9f4ede58\",\n \"7c4a850a5a1e3d405b9f26c27937ee47dba94163\",\n \"7c4a850c5424d4b16f3c86057275a57ab8c6fe17\",\n \"7c4a850fa3edc8d50183b4707a17bcf4529e05b7\",\n \"7c4a8515c791c810bfb0d01f13109c004ffc6384\",\n \"7c4a85195d8b7fe42dda1ea7590a03615968d69d\",\n \"7c4a851c0b1e32942dfd97acfbdcbbef3035888b\",\n \"7c4a8525f844945d89ca65f776d0f4aee2a34c9c\",\n \"7c4a852e9201af74e1a7e00a446739a1aa91de69\",\n \"7c4a8531e990c2a6b4354d24268a899905f672f6\",\n \"7c4a8533ecc6a7f4d042fb17c70a690e9043d1e4\",\n \"7c4a854429925cc59dcc4b6a2441d600f35e44e5\",\n \"7c4a854e50fc9ba1ffee7de4b60c8983d9fed34e\",\n \"7c4a85515308e5d357fdac856c1f4d4a89a0ab85\",\n \"7c4a8557b71a050832efe1259246b05b76c25d75\",\n \"7c4a855817cde243e1e55d6f79a8b75ddfc40ade\",\n \"7c4a8563ac249226d309aa49345d06084c19b46e\",\n \"7c4a85656ade1e4f5aed05d9e819e0ea376fab00\",\n \"7c4a8567b1cb99047dbbc73e8e977d1a5e1a3b5e\",\n \"7c4a85709163b6ffa8e67c8b87dfbcb6e334683f\",\n \"7c4a8573c1d03acac27baf1e9660dfd2ff48b75d\",\n \"7c4a85747fd7e7838342f0553746ae0773521562\",\n \"7c4a857e54f80a8769b9f7552ce03a42fdb67205\",\n \"7c4a8581761d6998044d6ca54918a9923582f9cc\",\n \"7c4a85850e794ebaa9fec01b5aee0295c53a61c0\",\n \"7c4a85884ae3c91f7e00d15de64605fa27857076\",\n \"7c4a858c872d60c1cf61ccc688192de452820df9\",\n \"7c4a858d827e5fb29c2170918b1299bcd4f90c15\",\n \"7c4a8597c5b1a1b82f22675493de31a7c357725f\",\n \"7c4a859a1f2d33db8a3be8a08cafb9b150aa6ea7\",\n \"7c4a859a5f9bb9b831951f1c2034db3f14ad18d0\",\n \"7c4a859b597fe45f0cd2bbf521dbdfda7d82593c\",\n \"7c4a85a9e6f802336990514d94d3e8ef56710211\",\n \"7c4a85ad071ff4b95e93b62ab0bc3509e1231378\",\n \"7c4a85b25df2d106dea4fbe72feee650313e780d\",\n \"7c4a85b4f1256bcb1c6a7b86e2bef9d33ac2aa65\",\n \"7c4a85b4f60353e22693e054b8342d00942e6877\",\n \"7c4a85bdb5c42e991f2a94e73deb2ed70bce6921\",\n \"7c4a85bedb534cc7189a041822b2100321452e43\",\n \"7c4a85bfbcefbc8f84de89cf049880d3087a02f3\",\n \"7c4a85c400b5c829da9c2b81bac81a80920d1b77\",\n \"7c4a85c44b5d79bc451bb55026196245e3bb6e66\",\n \"7c4a85c6ab1a4926d74d7ac04c785a1a6acea68d\",\n \"7c4a85c78df3ba848828472f7e7d1671c020aab8\",\n \"7c4a85cabfa94a151351790983fd869e6bad36b3\",\n \"7c4a85d2d25502bdff1b9fa60f28db2ab3f13b69\",\n \"7c4a85d751d44ef9676104cb8789cb89258935ef\",\n \"7c4a85e1c155f5b6489b04c95ff5376cc79c985a\",\n \"7c4a85e641b4555da8c0519f4c456f4bd57dc727\",\n \"7c4a85e85c15a5c1c901123e25859b92540fcd3e\",\n \"7c4a85ef9a4978ffa6953977c7b4aaf80371e226\",\n \"7c4a85f1bdc3aa7834aa673547f1be1633809649\",\n \"7c4a85f86e922fe9b2e8585628b883a29e42a5fc\",\n \"7c4a85f99ec41b61fcc8d656b5b285f6cf309726\",\n \"7c4a8608b439d5554f5b49bf0eb024a9ab31d3aa\",\n \"7c4a8610a344f37f73a61782e5892c9ad84ffcfb\",\n \"7c4a86123eaab55cef5c5a6188e9464baefb2ece\",\n \"7c4a861b1e133167adad13da30920a503bb27428\",\n \"7c4a861dc5f95fe2592860925e171104946596fb\",\n \"7c4a8620f067a0bc6a12ed451c6ed4439f1921a4\",\n \"7c4a8622886911225a214a20db17b490a30b115a\",\n \"7c4a8629ade7b64b165786e01e5bf02053af1edb\",\n \"7c4a862d7411b05835ca02eb49aebd80be0f4144\",\n \"7c4a862e85b2b8204f2104a9ad344edde96855f6\",\n \"7c4a86372e22da60a3d72162f2d3d4ad6245f685\",\n \"7c4a863c1a48079e2a68822da259cbac5a9bc1ae\",\n \"7c4a863d6caa099b95638fb5466a891435279700\",\n \"7c4a8640e3c01e9b345e2138df64dd6ac868726f\",\n \"7c4a864c822fb7ed8b987e2a4d1ab4f4e3108d8d\",\n \"7c4a865da3eaef23da87cae656822dc96c06b37e\",\n \"7c4a867151e2f2f5eb01d83031f91ac311fda388\",\n \"7c4a867698cab97f77290df67cda35abd679c381\",\n \"7c4a868049465cbca6b7969de3ef49d5eef25795\",\n \"7c4a8682343e0f75d72550e117734304d2dc0ade\",\n \"7c4a868c7d2dee0f8c2b47f4f86f915436bb2ce3\",\n \"7c4a868d4d8f5f9374d61cc3016ed3799001e533\",\n \"7c4a8691d7f1946269f07616c1937807d007c8c9\",\n \"7c4a86951d5d3121160b4d08b060715318e5e34e\",\n \"7c4a869592658c7e78527282b7d84519781c3b49\",\n \"7c4a8696dd0f318382ff0b7d1967be36d0ac23de\",\n \"7c4a8696fb38518d5ece725b94203f1537927c62\",\n \"7c4a869977784a45373e3986df50ca1d11cbeddd\",\n \"7c4a8699fb79f4a4c4bea39513fbc31cff23dc7a\",\n \"7c4a869fe6204b6398b9db7e18436fae59d977d1\",\n \"7c4a86a422bf60b5b603562555efd43c1b83b88c\",\n \"7c4a86a42cae105797afcd9deb8a022063dc1f5f\",\n \"7c4a86b1407639376e3ca2854b00c6c97ec5e3ff\",\n \"7c4a86b249c8fc83086d56272fc4763e90d1d879\",\n \"7c4a86b4bbb6e17eacdb8bed191c5d0384374c8f\",\n \"7c4a86b6f9f2bd9c637ae27dac4bf9a2130079c1\",\n \"7c4a86b78be1fa0e972a2c5a933d7c289c064666\",\n \"7c4a86b9fc1a507808f04510633af62a5d33eee7\",\n \"7c4a86c05aaf3f50892095a555b318d536caeca9\",\n \"7c4a86c48fe4d86c94b8f28d22ffd27016842aa7\",\n \"7c4a86c7e81b8405041644f82dabbc7d43e83f91\",\n \"7c4a86c9558bb37e5c1511ce160699f07319be05\",\n \"7c4a86d133692cd122c977cdf1039632f278f895\",\n \"7c4a86e0c050040febd81b551655db3b829817d7\",\n \"7c4a86e1d542030c12ac1a38a550a33cc8675961\",\n \"7c4a86eaa4fe4e7471bc7a880d9fc728cb6ee628\",\n \"7c4a86f8a073e8b2cfe2259894a36d1981e0ff03\",\n \"7c4a8704379425b911722fb68ebe66631ec25815\",\n \"7c4a870606b0cb3101e10889d1ae1f51a6670912\",\n \"7c4a870c827e844a5a0815889a5b2724ac79b666\",\n \"7c4a8714b2838becc880da803e8645ecf0d6cbc0\",\n \"7c4a8716eef2d1e3ac5e08a609794013d42ae6c2\",\n \"7c4a871829643fe7929b039c9ac513a55dbc1172\",\n \"7c4a87223940d49278aab705793f92a4d44d2df9\",\n \"7c4a8727139020838577363d411bd00ad9cc7577\",\n \"7c4a872f90e72eb65e865da543609430a5d2a733\",\n \"7c4a8733b0c56bb8f02bc8da0967b02b1ca4bf14\",\n \"7c4a8734cba3a39502cfa18e92169c92ef278f30\",\n \"7c4a87373d8e23c73780d124235163b077a33409\",\n \"7c4a8737fb32fb8f0ba2b6d0094cb40bfba2088e\",\n \"7c4a87392c164d98efa5e82e295da7969eba8086\",\n \"7c4a8741c31bee23a349154a5a3b11d553cc3c6f\",\n \"7c4a874598247e0017d28802986a66426bd63fcd\",\n \"7c4a8745de251ce279c69a748e716ac90e5e3595\",\n \"7c4a87514f177ffcefb0cd7de7c3d275596538e4\",\n \"7c4a875ec2ef618fe80c1338b6ddd1535f998a5f\",\n \"7c4a87680929bbab34fb1196094ce0a6ed5344de\",\n \"7c4a876a6890cebd61a91b325482281f360c340e\",\n \"7c4a877832ecafbbd9d76c56867472705c593e91\",\n \"7c4a877ca539dbebe2a54f169f79214592a0e5e9\",\n \"7c4a877db2e36a50926a3d442b26519f9464c6a5\",\n \"7c4a877db85169b5eed4438934a855434739cb4a\",\n \"7c4a877eaa6b6d595151105307c854b016fa41f0\",\n \"7c4a877f05c424e996543adb6721d245ce7a1d9e\",\n \"7c4a879177d0ec917b2eb55624ffc28a1e2a91e6\",\n \"7c4a87921bc9a4396ce7b70d7ab88dbb764f4086\",\n \"7c4a87a261368a0dd61298975afaec6c2aa4055c\",\n \"7c4a87a389bc3007720cc0509f8a860b85bd22b2\",\n \"7c4a87a429da2400ca56e708ce9c98441f742c49\",\n \"7c4a87ab9774542d09bdb30fa9c2ae43cda55f62\",\n \"7c4a87c447744d2bc40d7553fa62928f3f1367d0\",\n \"7c4a87ca240eb086a30414c8d76cce84966ec279\",\n \"7c4a87cb2145807aeee353650aa54c4a6e050384\",\n \"7c4a87d14bc705791d2b8978b671c6ec570702a0\",\n \"7c4a87da05fb259b0e251558fe77f60e6173ae22\",\n \"7c4a87deec14e3cfb7ac5e2d65a3e1b99693615b\",\n \"7c4a87defd592960786c5c6a169ce03e9802c061\",\n \"7c4a87ed9023a4409d2d9536735de43b1c7e6061\",\n \"7c4a87f036ab6ee8a4ddbe3945b94bd621429dfc\",\n \"7c4a87f3304bdee0becd2a35d783a36e79f58bac\",\n \"7c4a87f672b50c5e3a0e43fc29da69543d4c8664\",\n \"7c4a87f8f2df1f6a2ee73d2e6776a702a2e76849\",\n \"7c4a87ff60814694bcf6ca43168d2fcc8a2564b2\",\n \"7c4a88001b21272cc38577045d04750cfa7f9742\",\n \"7c4a8801e25b8519470add35af54841c8d13f356\",\n \"7c4a88036ef406fb6cbf1642779783a8979fd947\",\n \"7c4a88066b48adb9850e0a15321968bea1caf49e\",\n \"7c4a880af3080a61533116eed16e76f240b814d4\",\n \"7c4a880ba491ebece164964f90bd591064e22d6f\",\n \"7c4a8810ef737cae452ed03fb119a0808aae5da3\",\n \"7c4a881fc4cca0d26c1d68083e58a6402cf09d92\",\n \"7c4a8823ebd8d1abc129aa575c251c228042b1a7\",\n \"7c4a882ca99d18eaca039fe3da34fcf183f17b74\",\n \"7c4a882fe3777eecd9ff3c41217f2f102c708734\",\n \"7c4a8835156cb068c3abc61bfe13a3e5459d3d02\",\n \"7c4a8835fa264773d2ac274c698eb11beeb7cec8\",\n \"7c4a883872a15ba1b30cb6aac10ff29f6741e2cb\",\n \"7c4a88400f77a1184b802cba2ac3f1503f1dec8e\",\n \"7c4a88427fd8e539abe259742fb65e8a9e4f2974\",\n \"7c4a8846428e0ef01d89289f5c9c6e24cd8d25f6\",\n \"7c4a884e66104beee46db206bffe844b4508ffa1\",\n \"7c4a88520d9873a7f63e185da7f2024373743411\",\n \"7c4a8857ea1b2a835a5efc08245bc2d5193952a8\",\n \"7c4a886181a7d200c6bd87539fca5a1ca59d082c\",\n \"7c4a886c48e0eadf14ec52ce5cafc70c7b8b85e5\",\n \"7c4a886d052546fb5b30a3da2aa0232d62dab11b\",\n \"7c4a8874cce2459ffa4f6b0fcdbc6588d5c7cc65\",\n \"7c4a887553125a2511f202b51071a2cb6ed85295\",\n \"7c4a8875def1c1f7bbf734d4d97f1ae69c385019\",\n \"7c4a88780fad53da533ade91b990a0bcaf9f6cf4\",\n \"7c4a8878fa1b7ca54c4c2e0dc4599ef827ad0d4e\",\n \"7c4a887b06db9575a5e71da9b5a36b245ea6747b\",\n \"7c4a88801c2ecefcd0c3e39e73fd1fb6b45d5dc3\",\n \"7c4a8881d84c9bc580605d0fe200899e763f34dc\",\n \"7c4a8886c5255c278ec2cede82e105c4be772daf\",\n \"7c4a888aa0cde57dc884eb55c72e6ecbc3faf4e9\",\n \"7c4a888bd19f04f782ca100958f15ec88b555d01\",\n \"7c4a888dc5e7023b0346ffbf2e594716461c56cf\",\n \"7c4a888ef39a45bebe37ed2503ec4ea0cfc929c7\",\n \"7c4a8896dbc64354af9528454643db30f4973764\",\n \"7c4a88993c6ab998d18d8efcde47f58bb9a69f79\",\n \"7c4a8899feda55227cf2ef80ed053dd071f1ccec\",\n \"7c4a889f7908ca2bfeb8adb8ed1f5639e6e912fa\",\n \"7c4a88a34beb1eb190451923e9e0439e4e83e525\",\n \"7c4a88ac26a93a50c3513cdb104e4e1fb02ca509\",\n \"7c4a88afd6f6fc0da1f30466ad215f18fb2510d0\",\n \"7c4a88b66fcc8348867ac9f135054d7ac903412d\",\n \"7c4a88b8ca5b85048595e6943a0da72b4cc06a1c\",\n \"7c4a88bb087c0dc2c7de018248a680cc29f22981\",\n \"7c4a88beca2e62f80b37cd0469f3587bb295cd48\",\n \"7c4a88cc39b9b3fb67c7140c04bfc69d717e7200\",\n \"7c4a88d0812ec897f4a1a83efba6ea3c44acc505\",\n \"7c4a88e1e45448125092d21dde66f8d3f46ba2f9\",\n \"7c4a88e72e2c872de38ea65d5d90287603aac17f\",\n \"7c4a88f8f017d8c1d7617bb0f3607b9abe0b1fcf\",\n \"7c4a88fc385e4e22a6a77410d585b26668862a8a\",\n \"7c4a88fca8b1efcc758f639a555024fa6acee99e\",\n \"7c4a890788418c2bd0368eb162754901ddbe0d4b\",\n \"7c4a890ccb91e071657a221bbc9a43cb561fc7b1\",\n \"7c4a8910e546a8d158906eb959671a72c34a2205\",\n \"7c4a8916fa06e9b518e461d58760fef4a035ab5c\",\n \"7c4a891a620ac1d203faf74c74d7d1c262cf1f27\",\n \"7c4a891d30c6b5a48c0a5b39e317e9b4ae813954\",\n \"7c4a891e4d1b39c02c01d5b06ca6a9e8d4bf2afc\",\n \"7c4a891fdfa33eeb86cfad84387a841d23f24da8\",\n \"7c4a8922a90c7f69b9601be01a95a60d31234930\",\n \"7c4a89239a9844539b30a4e607a1c4302e30b85d\",\n \"7c4a8926df7c93a956f9ce920716ce1b559e8fd8\",\n \"7c4a893164cc7c581d77494eb731392bd1d4604f\",\n \"7c4a8937993f8b66346a8390894539123c750a0d\",\n \"7c4a893a24bce0922755fbe7f5d521a50c3177b8\",\n \"7c4a893aeb8097ff3336d813c1f5829d7491d1e7\",\n \"7c4a89409eb1355f1cbe7b4692ec993eb020fa3d\",\n \"7c4a8944ae553527eeeb523be110d965d4a907b9\",\n \"7c4a8948e481499226cbdabdae1698ff06964de6\",\n \"7c4a8952ca2f38da24f6564174fc363f14f9a078\",\n \"7c4a895b22584d5d3836c965a8ac713e30d028d8\",\n \"7c4a895f9ce9af8dc9ee85d8efce658ea71c0a7f\",\n \"7c4a8962ee93de58548ce7a72c0832bc0161e6f1\",\n \"7c4a8965b79eb2995e3ede952e2f752d9313426f\",\n \"7c4a8967fa5b3547c893cb7f3451a4a17702a73b\",\n \"7c4a89690f0feb5cc805e7847408d5f574f81e1a\",\n \"7c4a896a2660f1c031a0d5e4d87657494c956d32\",\n \"7c4a896bb07e0f28238c2fc750e890034cea1a86\",\n \"7c4a896cd553ca1ad48c4c436c317fc1579cde0a\",\n \"7c4a897697bfd20ff00afabbe918430640c3e817\",\n \"7c4a897a2e7aec0872806fbcb116f750f35dcdd5\",\n \"7c4a898c473a4bcfea77b648e7e0805c83bbcc7a\",\n \"7c4a898f4c5bf71f49747b74118155463db1fd18\",\n \"7c4a89926fa9458923f379a3d84d0504c2826147\",\n \"7c4a899ce375858981b41796ba35cae1720ef362\",\n \"7c4a899e6961cce043bcef78ebe4c09cc1c29bb4\",\n \"7c4a89a0d238e53b9cf13c3cf1e61d2f3f3dc9d8\",\n \"7c4a89a777c9a8459717b928865fe9a477843174\",\n \"7c4a89a80011ad497704cd0929a9217e34944f03\",\n \"7c4a89acfd311e0efebc424714373eb7fcf78fa1\",\n \"7c4a89b2fae67a2309bd1a2f899cef3c99fb1e2a\",\n \"7c4a89b3b497511ac97e2df6c0260f2c36f7381b\",\n \"7c4a89be9dd6fd7caeac1c2eb6ae8a80af311f14\",\n \"7c4a89c3b2bcae6fee5ba70cc16fee5c1ce31c07\",\n \"7c4a89cef59cac6631f34328274138a215739466\",\n \"7c4a89d00f94ff42853a786a4d93113de263ba56\",\n \"7c4a89d1d1981baa9edbada9b5b3e9286d8d50d7\",\n \"7c4a89d3b297526a4aa65e2a3e8859ba200d58b7\",\n \"7c4a89d854b5e8cce7c742bb0f85857076aa3811\",\n \"7c4a89d99de7b6ae5874648b9a583ff442cd80ac\",\n \"7c4a89da7b8b08bd46cc776a2bc4d796247dd3b0\",\n \"7c4a89e09f0c82bec6461bc496bc371c094db809\",\n \"7c4a89e47773d2d8356b8cd56c1cbbc61cf63af6\",\n \"7c4a89eb69750a8757913b8881bea55c3d9b662f\",\n \"7c4a89ebe90d609337cf1f0e37046eb83ee046d9\",\n \"7c4a89ed01b631708ea5e6bbe9a636d5c3f44c05\",\n \"7c4a89f94d8d42b99524f34cfc316016304278d0\",\n \"7c4a89fdd94eb6e09dbe1f108bd019577fe62868\",\n \"7c4a89ffb225ec993ccbb3245bfca0938ff56f04\",\n \"7c4a8a069b64a1fa467248225ac1315bab52f935\",\n \"7c4a8a097ce001c042d1dbbb653cfc8867280092\",\n \"7c4a8a0afd035bc091c2f7e9cdfdd2d2d6296998\",\n \"7c4a8a0d095ae9e2d30434a527b44822c6c8991a\",\n \"7c4a8a0fab7f0724c2a85652077a8ba655e56b84\",\n \"7c4a8a17e466f56e805bb105bad700367813cfe4\",\n \"7c4a8a199fdecaaf43eff2dfbae06a859f727bc7\",\n \"7c4a8a1aeb8011aeebee97d981e1e035f8201dc2\",\n \"7c4a8a1efe10a6b3573934df34a6dc2184d0bca2\",\n \"7c4a8a26480d6ffcc8d4d011d3d35c1fa23ddd0d\",\n \"7c4a8a283368f98fa1e625cc1b36a02ae34437a3\",\n \"7c4a8a2e463133ebf72cd5ee29ace6d2976f44ba\",\n \"7c4a8a31deffd4b6b6e0ffe60c05836d1f978483\",\n \"7c4a8a32112fa427b93e8a6c0533c6d856285ba5\",\n \"7c4a8a362e1013d6761d409caa028cb753ff66ee\",\n \"7c4a8a3ab2fd75101c799c7470c208a43f3e1e72\",\n \"7c4a8a3ad9f4ddcfd8acd30576df8341fd2517d3\",\n \"7c4a8a42d187f95518d30c0d7878df566d01e747\",\n \"7c4a8a439a6df4929842b9ae1a4e43d95a5ab41f\",\n \"7c4a8a4a23471fef3504e54205d057194e4639d4\",\n \"7c4a8a4b86713313a6dd132fdd82c92fd258f901\",\n \"7c4a8a4d3512bc36c85dd5bbc00e2f63449cf826\",\n \"7c4a8a4d44158a0426f03cf9b16f08c2e3df2cdd\",\n \"7c4a8a4eac0455d88c2aa783108752e131469283\",\n \"7c4a8a5e373862f2859745926323692fcf1348d8\",\n \"7c4a8a664674ee6f1ce407be60daaba1ecfbc12f\",\n \"7c4a8a6a4b63bc6988b216641762ac9284560e45\",\n \"7c4a8a6bfe2831c1063781705d0fc65a3633d942\",\n \"7c4a8a6dbfa3e105388e65bea6ee5fcb9fb1e88c\",\n \"7c4a8a6fbbd8033c7dbc0c6f91e6988e952ebf9e\",\n \"7c4a8a7330926e1bfd70c03110755d90b8dc1a76\",\n \"7c4a8a737c59aeac2cec00c913f960912f5f3ad3\",\n \"7c4a8a78e75b8f9f7cb065513db25635352e5f50\",\n \"7c4a8a7a104852813fe1d4a672603bb0982abec3\",\n \"7c4a8a7f3a7788035c8128cf50e3c42a09243060\",\n \"7c4a8a86549188da17980a9e6f19b14b29943aee\",\n \"7c4a8a89d21de122fd2c7843d89dae34c13d0eac\",\n \"7c4a8a8aa31ef87934dd7f80e6b73084fd262d6e\",\n \"7c4a8a8c716fb303157170839848f388fc82504d\",\n \"7c4a8a8e7f8560098d9a35de6c8f475742d750bc\",\n \"7c4a8a98190ceec3b6d3fbd51120d525f3afbe8f\",\n \"7c4a8a99440b4441f5100018330f5ed6d977fd8c\",\n \"7c4a8a9b0066f65b4876ed9d129a9c6cce412785\",\n \"7c4a8a9c5f84853963aab0e616f87c8de757bdf1\",\n \"7c4a8aa3b9f6f0c9f947a064269700810ae1dd1a\",\n \"7c4a8aa88942f7708c5c101b578f553254b6a705\",\n \"7c4a8aaa009a539caca400857c09477d80df4896\",\n \"7c4a8ab010974005f6c4f5719fc9b285991230eb\",\n \"7c4a8ab336b4c7e1f7ddb11f11a5c972a6e39d90\",\n \"7c4a8ab373cd7fad2566bacaa106a5b914557321\",\n \"7c4a8ac53744bf551fd54ca09c805bfd04feafcf\",\n \"7c4a8aca87c3a7b28191cd98028c5e4f5bff4cba\",\n \"7c4a8acb0228b1c08d74c17d94cc386a4d912adb\",\n \"7c4a8ad14d849a1e822b3e9e8a6887105f14912b\",\n \"7c4a8ad1e0acadefd2215c2c26ab9fcd96d96bd6\",\n \"7c4a8ad340ee31880e79dc30ad389ec9455a1247\",\n \"7c4a8ad71df492652cbfe1e6ecac648185f83c54\",\n \"7c4a8add77a474621166496041d680f11b6d93ec\",\n \"7c4a8aeb548d6dfbba289d045147f1009e003614\",\n \"7c4a8aeb5ebeca4def9adb287b041b3b1d4c1693\",\n \"7c4a8af08054022bd6a46372b6b5ae35ed8321bb\",\n \"7c4a8af78cc8ff0e16872b3d7cd3503b1f663dc1\",\n \"7c4a8afcc9a804cf9c833fce901223f74b7404c8\",\n \"7c4a8b011c2584240fbf690555d9c43803a18fcb\",\n \"7c4a8b0669bd4d9b99aa0af02d3056e728150350\",\n \"7c4a8b0a343282951d2219b33fde0e338bda7b63\",\n \"7c4a8b10e84ff9b4b14594bec936908efd02d764\",\n \"7c4a8b1365b931d0a7e118973fd09755caee4e0f\",\n \"7c4a8b1c5ef9005fb088f74eaa717c681ce6481a\",\n \"7c4a8b2602c6643d8138ffb41752bacdd8bc1320\",\n \"7c4a8b2bdf55616f06b628a384b6f96ea4f4127e\",\n \"7c4a8b342a003cb58faed3a2499b98381c958e51\",\n \"7c4a8b350b9e23351eb42637107652ab5ee79932\",\n \"7c4a8b3dca1fdf4f1b9c0f5f0ca060c747dcbe33\",\n \"7c4a8b403a9890370cec47a6c0be7cb7de6c6e99\",\n \"7c4a8b426da21b2d8b7204eb005bf26f97ccfe6f\",\n \"7c4a8b4302d8c56380019120a7edc71c476386ed\",\n \"7c4a8b47cb33e80dc72efe0aea1c86581040e2be\",\n \"7c4a8b493350377fcabcb226689335f41cbc7076\",\n \"7c4a8b4a06b24c38eef526a3b9c31e6caae6bd21\",\n \"7c4a8b4aa250191c1b382cef57f83f6d808f39ca\",\n \"7c4a8b4ed8148d52838afd96e253303a6a89fdc1\",\n \"7c4a8b5134fad920243f1bc60696a4b9d7a68bc0\",\n \"7c4a8b5c315609685b8c0cd083e0e59091ddc1f8\",\n \"7c4a8b6dbde0ffe8c477fd36806ef2462452b9f3\",\n \"7c4a8b79dae191f471155a72d29f902fe4ccdd74\",\n \"7c4a8b8541a1b995aead2ec2bc1ec1b65cfaecc3\",\n \"7c4a8b8616dc1d3ba4a0851a6a65f340a1a13482\",\n \"7c4a8b86dfdff8f6a120f76496a89fbd01f1ba9b\",\n \"7c4a8b88308d7ea9b82332f8bd551b91d7322592\",\n \"7c4a8b9267b0630919e3a9062dd134935655410c\",\n \"7c4a8b963c229f713edb22baacd367c712e021c4\",\n \"7c4a8b9709ead24fd4ada3d298d1b562a7912fa4\",\n \"7c4a8b983c366128faaf7e884afb777b20c3cd91\",\n \"7c4a8b9a967dc29200723580f300538ea350b16a\",\n \"7c4a8b9e394fda9c95ed9aded1cf6b0ec9ccc15c\",\n \"7c4a8ba9904d542adbeef7d4708eff92a685fb3b\",\n \"7c4a8baa5c8535b21bd035dab5820c625a53246d\",\n \"7c4a8bac81330ecb6a87a9d58a07124bce99d5e1\",\n \"7c4a8bb6070a6b2c1fb84070476e82a999caaeb5\",\n \"7c4a8bb6552e05b26d9d6cc14cd8f50c047d27fc\",\n \"7c4a8bbc0feffdce253c197d7cffcf7bdca28081\",\n \"7c4a8bc76304c9f20208b1edbc8e38ca1bdaba91\",\n \"7c4a8bcfe882c36e8fe8a703cd127dcc6bc0e214\",\n \"7c4a8bd6a4bfacc50331ffb15ed023827ba7cf28\",\n \"7c4a8be4b085ea333ea5465d06b9267565ad959f\",\n \"7c4a8be5cabd042bb18b38382dde5c788fe91a0f\",\n \"7c4a8bf4df10e5e7ff91711bf13d32add9549378\",\n \"7c4a8c071f994ffb274e4e4d4dae9fabe83a9ea6\",\n \"7c4a8c0ecddd10fcf10b76dac361fdb377e28a0d\",\n \"7c4a8c1689f0c131e48b19fbef403346f10c010d\",\n \"7c4a8c16b4383b70ea935b64ba705ba5b3040c30\",\n \"7c4a8c189fd96be647440698311a170b0364d739\",\n \"7c4a8c1a567d8b3c21975beb78d1dccdc5b71569\",\n \"7c4a8c1b828708dfa548b6a2a44b936ee77b01ae\",\n \"7c4a8c1ded88d4e6ae4a59d360054d1779a42275\",\n \"7c4a8c1e98842499122ed554c7af89741dddb06a\",\n \"7c4a8c237fa3c71546fb29547e7464257a2a5010\",\n \"7c4a8c23ca0a8f0d0b5c6006872eea484e110231\",\n \"7c4a8c339e6957f821063b2ed4f0beb8887bff70\",\n \"7c4a8c390a0cdee4b4716acf8979b9bd319434f0\",\n \"7c4a8c3c89bd455788a8a0ca91732fc0768b1ff6\",\n \"7c4a8c3db422f68876a87b7ef8e3f30d965fec4d\",\n \"7c4a8c3ec2f3df2f1edca9533537b51c76284692\",\n \"7c4a8c4052c9942c53a88a0a50edddf7306b5b7f\",\n \"7c4a8c44750e254f0da5a419e8560f2316e7803a\",\n \"7c4a8c498257e3313c8bae1d6bc367fdf730e740\",\n \"7c4a8c4c26cf0e570a62a7de138423de491cefb3\",\n \"7c4a8c4eef466b5552bcae0b355f5fff8a6f718a\",\n \"7c4a8c59b602f51c86081188c70857c6dea03e9a\",\n \"7c4a8c67dcb35947a7b88594f95107e7bfae075a\",\n \"7c4a8c6b6d75e1b1cb57bea56edcd6911a31f2ce\",\n \"7c4a8c6f38d9f847a47d5c30fc2c0f5d183e8416\",\n \"7c4a8c7488cc2b4d86f0fcabdec93e41181eafdf\",\n \"7c4a8c7af6ad921d0fea20b1a513548c80b7085d\",\n \"7c4a8c822a16e7f5c112a9dff7bcb4a2b8174f48\",\n \"7c4a8c84a4d14b3ba946253212e386fb00d3ecff\",\n \"7c4a8c8b9b65d792de039f5adfb6ac379db5a228\",\n \"7c4a8c8eb6889e5fcc1850d054491900a664fa3d\",\n \"7c4a8c9ab3ea5b49557183e303711ff994c87cf2\",\n \"7c4a8ca30225dd4663870eb52fc120428925ebd0\",\n \"7c4a8cb6ca37a2e90ab31bf624db47bc1d28d224\",\n \"7c4a8cb721a2c3636543d19550ee34e06f76db95\",\n \"7c4a8cbbf0f23ac44143367a7470a4bc4dcd92cc\",\n \"7c4a8cbc741e91262a587a41a8501862a71a2245\",\n \"7c4a8cbff071fcbb69f9c918d280dc222df53167\",\n \"7c4a8cc03292006ce56a2a9000463ce9acbfdb25\",\n \"7c4a8cc36645ad4c061dcc65b4d6a27d4214ba6c\",\n \"7c4a8cc6027b9f2e5eeb3062d9bef9fe108b2706\",\n \"7c4a8cc7a928465f0b46d4333103888357151618\",\n \"7c4a8ccb9e276974cc5609cdb0c69a03cbd5c437\",\n \"7c4a8ccf5d28c60d24fa86436994e7fe6ca15fcc\",\n \"7c4a8ce178ae0a84ae7a885bf1a7e3757bb75b24\",\n \"7c4a8cefe83c6648313698c44aa5821e9373c5c5\",\n \"7c4a8cefee7e2a9e04b4b0d46d6d69e88ceb08ba\",\n \"7c4a8cf35d5a59316f662bbfdf637f9e2d65d2fc\",\n \"7c4a8cf922e0da05b0e20d67afd1ac380ed221bc\",\n \"7c4a8cf97c31f7decc2bb7162407f9101b542a5a\",\n \"7c4a8cfecf0d59da4880a399b7fc19ea48d34b63\",\n \"7c4a8d01cff3583dda6607d167c59dcb47012719\",\n \"7c4a8d032e84b0aeb4e773555c73d6b13bea7a44\",\n \"7c4a8d09ca3762af61e59520943dc26494f8941b\",\n \"7c4a8d0a4aa2e841c50022bb2ea424e43f8fc403\",\n \"7c4a8d10b1f9d5901978256ce5b2ad832f292d5a\",\n \"7c4a8d13429975532e9c22e8502096bf91dc7707\",\n \"7c4a8d15baadfd6d69ce574de7bda9b0b8d0004f\",\n \"7c4a8d1618facc3854462b7a0ef41914d22c41b6\",\n \"7c4a8d21307cae168387a4c8e7559bc65382d1db\",\n \"7c4a8d29679dcc243a3807e47ce2f1aed7c783ed\",\n \"7c4a8d2c35272ca23211a29c1bfeea80885dfa37\",\n \"7c4a8d2ca4fea3bc9950da15e10dfa2e47a40c9b\",\n \"7c4a8d2dedaabd28cf2c47236f506eba6472019d\",\n \"7c4a8d2f5fa1c66ddcfde2d1c7fd29f535b4597e\",\n \"7c4a8d34e3ff9baae91b64d628ea2db3d7483a12\",\n \"7c4a8d3a915c34ab980c6fcffcc76efeff4a065f\",\n \"7c4a8d3c2df0568faba881c638c8a2cd284d7db9\",\n \"7c4a8d3d2ca897e470d39209466567a9c50aa4dc\",\n \"7c4a8d4af7281f5f8ad6887578fea5a632e8a6b7\",\n \"7c4a8d4b9290b0a0d0fdaf3725b06691166b4e69\",\n \"7c4a8d4f34569f4ac45b0388cebb89b27e95d962\",\n \"7c4a8d515020fb2c2355e7af5f8c2710af3d72e7\",\n \"7c4a8d5a9ef5fa1f73826212589d540edf78d08b\",\n \"7c4a8d62ee133bba04555e692617e56684a67c4e\",\n \"7c4a8d64b022e8194b9246cbdb5950de37dd752a\",\n \"7c4a8d67132b7c132d7d30a753b29a9355311824\",\n \"7c4a8d6ae9cd7e86b837fa650204c661348513e4\",\n \"7c4a8d6b0ecf46ae4a97268215cc66238eef3f2c\",\n \"7c4a8d6e138e3543e1c6fb23c4807df171e285a5\",\n \"7c4a8d713ad4f642e51d79c7d7fcecd23525f628\",\n \"7c4a8d7816165454ace2c208cd62e526799f8ca1\",\n \"7c4a8d7977896aaf18421f68b4751837c23eefa6\",\n \"7c4a8d7f20d435d1f9f7ffa96c28e216e981637f\",\n \"7c4a8d82a23a4ff0dfa9f91358da9482b30893cc\",\n \"7c4a8d871f8bc20dc668f076ea9f148f18dd63a7\",\n \"7c4a8d8a1624a5d337d3def73cbedc81b411e04d\",\n \"7c4a8d8c5b51df38136603e067e77af636fea1fe\",\n \"7c4a8d93d6945f3e351d26d6efae4cecdc71e31c\",\n \"7c4a8d94663c38d79b419240b69a632d0e8d321a\",\n \"7c4a8d9f3acd5bb793be3d7e3a2dc5396ba4bb9b\",\n \"7c4a8da0f55f189fb2255590c1036d7eb8e3fcfa\",\n \"7c4a8da1d058b53053a6d994e6247a14fd7c2eee\",\n \"7c4a8da4e1613389f571fec9962dd391e57d9f0f\",\n \"7c4a8daf025a31260a9359a5e5ad271e8c126fc5\",\n \"7c4a8db020b11b7744febc3d4c1f738248637b2f\",\n \"7c4a8db349f9a2fd570d6864df6124c75055c389\",\n \"7c4a8db58ef759838aba8a242a0c07498ccf30ce\",\n \"7c4a8db65d44831a1b9ef3b4ffc0b7c5d4329560\",\n \"7c4a8db99add3409242f52aebcfadbf7acd63337\",\n \"7c4a8dbd57c01000e2f13489f979342d7f90f581\",\n \"7c4a8dc16df8c0ec43e454dbf3bde1b5d3569e81\",\n \"7c4a8dc3aeb63a2676c378f1baed78f73050a558\",\n \"7c4a8dc53bdca9d563730ca7186f496e864e1240\",\n \"7c4a8dc787623abbd4003a32dee7ec761db115cc\",\n \"7c4a8dc80cd7cac743ed917e44fb07f911b2d565\",\n \"7c4a8dc93be9657502c10f10f997bcc514408384\",\n \"7c4a8dcf7495f8ec07980594765f2405f0ff367d\",\n \"7c4a8dd4480f5053914916a704dfb636d141177d\",\n \"7c4a8ddb420cec4ef1faa4ec2aabbe738edf2db1\",\n \"7c4a8dde829eceb8d9909c0b2b0021c3591380d4\",\n \"7c4a8dded60adbb04ebda6ef7e2b3097b4edc592\",\n \"7c4a8ddfba830d4252d9fbf55c20996dddfe690e\",\n \"7c4a8de1b356ec02347c06db8897371f53ce2058\",\n \"7c4a8e0168bf3fa5f7db45cdf3a394f87eedcf0a\",\n \"7c4a8e06a10a1e4100c26d56042ecab005402776\",\n \"7c4a8e0afa58e50b752f7c889e66424cc6c0d04d\",\n \"7c4a8e0c63743ffda04a7ad2b353c13974a2f68f\",\n \"7c4a8e0e5a970fe5ee9b288d771102ddc3a2f0c6\",\n \"7c4a8e10b2b638294f7a5a33505467d81ee3dd9b\",\n \"7c4a8e16667e08c624d457749ea5a05b13d325b4\",\n \"7c4a8e1df7d7b6b8ff81b1f81bc95ae89a20243d\",\n \"7c4a8e28afd32b078d6d5fa4c3b5bafc4cf7e3ec\",\n \"7c4a8e29316a0f5d5a7c6999105e42f1fccf5297\",\n \"7c4a8e316ca786fc9958a9d26f45d9d8b801f0bf\",\n \"7c4a8e3466dee027ae5d1a11c393a4e138c4a3e0\",\n \"7c4a8e365bf7f57f74c953689dd0628621abdcc3\",\n \"7c4a8e47f43d2fe2b9a97cc2f72181e38c3c464d\",\n \"7c4a8e557b6fa2c0e716ccd22cb0a82553bbfb41\",\n \"7c4a8e55ee18b95d28fb8b206580012e77e36bfc\",\n \"7c4a8e584fcfdab14af39af20a37e2b0d3900699\",\n \"7c4a8e593eadad8b900f089f59abede506342b4f\",\n \"7c4a8e5a2acea23c61528bdea98f250231fda892\",\n \"7c4a8e5b99cf8367ff58d9911f18884e970d04f4\",\n \"7c4a8e6012955b30fb9a2168d49bffd177cde88c\",\n \"7c4a8e61df5c64df146f187ecec62c3f1bb89752\",\n \"7c4a8e631db66a3be39a190e86ca6dc423be30da\",\n \"7c4a8e6af35acab45b74ca5da191287fded10f58\",\n \"7c4a8e6ebcae928f10d9bef9893218d74777fd52\",\n \"7c4a8e70f0155df403ac1d0e1b1fb594b4127934\",\n \"7c4a8e8b6fa21cd35dbacd3e9a2d04adac1a2bae\",\n \"7c4a8e8c3c9ea6ab500cef2599132f7930ffd98c\",\n \"7c4a8e8c75e49e474d78e3302705cbe38653ad3f\",\n \"7c4a8e9319019eb187b2f33cc7971a9e9cb75add\",\n \"7c4a8ea7affb08a85baed77ddd244d8ba14b8d7a\",\n \"7c4a8eb342d9d71f609e54623b2e09f81ad3a3e2\",\n \"7c4a8eb83679909c7f87b6028f574f78f8730c13\",\n \"7c4a8ebcc28d3a4d927ee62604a0346cc7504604\",\n \"7c4a8ec6a52fed703ed94b654062e3141ee414c4\",\n \"7c4a8ec6dd15171d74b7768eedd82b67f0648188\",\n \"7c4a8ec98bc75c2340d3d0c846ef5186706486f0\",\n \"7c4a8eca48835f0e1a5241c9ad3ad2ca37c156d1\",\n \"7c4a8ecf5ecdbd2869cf017e655f080361188ce0\",\n \"7c4a8ed03d2ae7ea3dc2ff1e3c67decd4f6f0208\",\n \"7c4a8edbfe186a4234dad96ed529367eca6a3806\",\n \"7c4a8ee104292dfe09eaf21bf924e560f08dcc8c\",\n \"7c4a8ee868e4b04bc55dfcc4d58b17a17ad3a5e3\",\n \"7c4a8eeb736a7981995f4fa441122da1e49abe9a\",\n \"7c4a8ef09b6f1a4d30637d4a6342af0d20ed68e6\",\n \"7c4a8ef38871ad29ddccefe8de2c6b17acc3c8d9\",\n \"7c4a8ef4632848815ea506f0e9ce8489d2d26b6f\",\n \"7c4a8ef6623edbcae4b5326df407e0b7f8d2988d\",\n \"7c4a8efd8634a7b691e3a5ecae8f79fd74acb580\",\n \"7c4a8eff942a37dc6c7aa83906a950d94db65f9e\",\n \"7c4a8f0770ffd4233df8d7729dee670f6f39541a\",\n \"7c4a8f0cf01f08c457cef23e30fe1dca2ef4e13f\",\n \"7c4a8f127bbfa2940cd4bde18578f53342ba7356\",\n \"7c4a8f17760005bc5d5205e327333221fba2c1f8\",\n \"7c4a8f1ce14fe8c6b108dafe25fd7c15f04d0994\",\n \"7c4a8f20887ef20a31ec20bcd9414f256fbf1f30\",\n \"7c4a8f23518f666608d1822a5f3ca7d703473fd2\",\n \"7c4a8f24f10ec017cc850d39b7bfc30e9aaa44a5\",\n \"7c4a8f256864050347abf115bbbfaafb229f172e\",\n \"7c4a8f266c786985fd1a895a9dc67a295a00ce9a\",\n \"7c4a8f268c52689df3f2781c49210ace848f8724\",\n \"7c4a8f292ad79ec1f0ab11848a039eaa6a3cb1e1\",\n \"7c4a8f2a233edd7ed499ef6f33dc806f75cb0601\",\n \"7c4a8f2b809347cedc278d4a76d75cbffdefca9d\",\n \"7c4a8f2dad7ab23148b237531ba3fd0c29db7f45\",\n \"7c4a8f30567ea126b61005d553fe556333dd38e1\",\n \"7c4a8f306e8af4726452230c213fec11a5b97596\",\n \"7c4a8f4226027964fad16b03b6ebf0b0675bcd0f\",\n \"7c4a8f45a47d24ca50b4c7db721db674abe63d1d\",\n \"7c4a8f488a7c795065c68db9ea0c80cd44d83697\",\n \"7c4a8f54671b1432901e6dbbd4ab4efe04c25b6b\",\n \"7c4a8f549aaaa97c5d91be85b482fc8c0917e794\",\n \"7c4a8f56006ba9c544d6fea2b78ce888badece4d\",\n \"7c4a8f56c8791b4de487f7a6785435e7ee9685c7\",\n \"7c4a8f587918aa3bf1bf8656e82dfd2e43bd38a8\",\n \"7c4a8f628872210912565ea9339ad418a42dfe75\",\n \"7c4a8f6679e9bf80cc88e9251cf7d6f98af6c7c2\",\n \"7c4a8f6a07ae88429ed6a5da1770bf2e30d9806e\",\n \"7c4a8f6d987213caadd2371c591151900b19c831\",\n \"7c4a8f7117dee9dfbf782d1d060fe0470299d2b8\",\n \"7c4a8f71cf7930cf4ff368e6b98b3594a96a50f8\",\n \"7c4a8f746c64126ab8b6ff881b356f4e51b68178\",\n \"7c4a8f82693839e33ab46d5ef08429a975254485\",\n \"7c4a8f87f283669a303b9bb90937e774acf6a18d\",\n \"7c4a8f89408ded12dc39c8c4b6d10051a0b81ba6\",\n \"7c4a8f89a2313f1d483d783af3a3102d11c8f3be\",\n \"7c4a8f92ccfcb8e10e287cd9accb82960ad43ef2\",\n \"7c4a8f959859d8832d61c88afe723b9a5586f0ba\",\n \"7c4a8f9c0189829a3526052921824eed436fd0ce\",\n \"7c4a8f9cc6df9454d9f23bdf8bc269cf1ff1a388\",\n \"7c4a8fa79e6d266a6b04763f8a3b112a7bb8bfb0\",\n \"7c4a8fa93ed883e0e1f59d46ef36ef7943ef69a4\",\n \"7c4a8fae4548a0615285c3c4e80adc12cbca9f93\",\n \"7c4a8fbcceec045112788632051a4784566a2b2a\",\n \"7c4a8fc23efc7f7a58c4f9cc4c227642de5939a3\",\n \"7c4a8fc33924cd20baf901b811e971b6642e38b0\",\n \"7c4a8fc382c373799eca06fafd4681e804aabd57\",\n \"7c4a8fc6ddf0929f7f09e668f8c42611860a1238\",\n \"7c4a8fcd47dcdbcc4ba6226f67335ce72a54fb9c\",\n \"7c4a8fd14b5685c2c5382a4bf852e5d6c8125306\",\n \"7c4a8fd57ccd669b1fc74f5043b71e48e54dcdf4\",\n \"7c4a8fdb537b16fa17005abd2038684d0377345c\",\n \"7c4a8fe2c78460c8eaecb348986c59be63e653a2\",\n \"7c4a8fe73c3db356a2ff28c505d3286e9f27baf8\",\n \"7c4a8ff4214e58a670fd29e550ff27983b61a414\",\n \"7c4a8ff6651db3fc2a34a006f98cf9d5d17c81f2\",\n \"7c4a8ff849c5de93593756ddf7aecbbe40b9a947\",\n \"7c4a8ff90fee99c8e2961ad1077adee4c6feff30\",\n \"7c4a8ffa7b0ad1884d08b5ae2644c8d9d76bd4b5\"\n]" } ] }, { "name": "Password Change URL", "request": { "method": "POST", "header": [], "body": { "mode": "raw", "raw": "{\n \"domain\": \"{{example_domain}}\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/api/1.0/service/password-change", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "service", "password-change" ] }, "description": "[The full and up-to-date documentation for the password change url endpoint can be found in the wiki.](https://git.mdns.eu/nextcloud/passwords/-/wikis/Developers/Api/Service-API/Password-Change-API)\n\n#### Request\nThis endpoint accepts a JSON formatted request body with an object with the following properties.\n\n| Property | Type | Default | Required | Description |\n|----------|--------|---------|----------|-----------------|\n| domain | string | - | yes | The domain name |\n\n#### Restrictions\n- Nextcloud Authentication **required**\n- Authenticated API Session **required**\n- User rate limit of **2 requests per 8 seconds**\n\n#### Response\nThe success status code is `200 Ok` and `404 Not Found` if no url could be determined.\n\n| Status | MIME | Type | Description |\n|--------|------------------|--------|----------------------------------------------------|\n| 200 | application/json | object | An object with the url of the password change page |\n| 404 | application/json | object | An object where the property `url` is `null`. |\n| 429 | text/html | - | Rate limit exceeded |\n\n| Property | Type | Description |\n|----------|--------|----------------------------------------------------|\n| url | string | The URL of the password change page for the domain |\n\n\n#### Notes\n- In case of a 404 status code, some servers may replace the response with an HTML page." }, "response": [ { "name": "Example Request", "originalRequest": { "method": "POST", "header": [], "body": { "mode": "raw", "raw": "{\n \"domain\": \"{{example_domain}}\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{base_url}}/api/1.0/service/password-change", "host": [ "{{base_url}}" ], "path": [ "api", "1.0", "service", "password-change" ] } }, "status": "OK", "code": 200, "_postman_previewlanguage": "json", "header": [ { "key": "Server", "value": "nginx" }, { "key": "Date", "value": "Sun, 04 Feb 2024 08:46:39 GMT" }, { "key": "Content-Type", "value": "application/json; charset=utf-8" }, { "key": "Content-Length", "value": "77" }, { "key": "Connection", "value": "keep-alive" }, { "key": "Referrer-Policy", "value": "no-referrer" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Frame-Options", "value": "SAMEORIGIN" }, { "key": "X-Permitted-Cross-Domain-Policies", "value": "none" }, { "key": "X-Robots-Tag", "value": "noindex, nofollow" }, { "key": "X-XSS-Protection", "value": "1; mode=block" }, { "key": "X-Powered-By", "value": "PHP/8.2.15" }, { "key": "Expires", "value": "Thu, 19 Nov 1981 08:52:00 GMT" }, { "key": "Cache-Control", "value": "no-cache, no-store, must-revalidate" }, { "key": "Pragma", "value": "no-cache" }, { "key": "Content-Security-Policy", "value": "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'" }, { "key": "Set-Cookie", "value": "PWTESTnc28=b89a895b46eac913519da14b0d722086; path=/; secure; HttpOnly; SameSite=Lax" }, { "key": "Set-Cookie", "value": "PWTESTnc28=b89a895b46eac913519da14b0d722086; path=/; secure; HttpOnly; SameSite=Lax" }, { "key": "Set-Cookie", "value": "PWTESTnc28=b89a895b46eac913519da14b0d722086; path=/; secure; HttpOnly; SameSite=Lax" }, { "key": "Set-Cookie", "value": "PWTESTnc28=b89a895b46eac913519da14b0d722086; path=/; secure; HttpOnly; SameSite=Lax" }, { "key": "Set-Cookie", "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; secure; HttpOnly" }, { "key": "Set-Cookie", "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; secure; HttpOnly" }, { "key": "Set-Cookie", "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; secure; HttpOnly" }, { "key": "Set-Cookie", "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; secure; HttpOnly" }, { "key": "Set-Cookie", "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; secure; HttpOnly" }, { "key": "Set-Cookie", "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; secure; HttpOnly" }, { "key": "Set-Cookie", "value": "PWTESTnc28=b89a895b46eac913519da14b0d722086; path=/; secure; HttpOnly; SameSite=Lax" }, { "key": "Set-Cookie", "value": "PWTESTnc28=8a319cc6d55d88f8a61af1bff5dd7d13; path=/; secure; HttpOnly; SameSite=Lax" }, { "key": "Set-Cookie", "value": "PWTESTnc28=8a319cc6d55d88f8a61af1bff5dd7d13; path=/; secure; HttpOnly; SameSite=Lax" }, { "key": "Set-Cookie", "value": "PWTESTnc28=8a319cc6d55d88f8a61af1bff5dd7d13; path=/; secure; HttpOnly; SameSite=Lax" }, { "key": "Set-Cookie", "value": "PWTESTnc28=28ac665da7e501250678df4ec55f340c; path=/; secure; HttpOnly; SameSite=Lax" }, { "key": "Set-Cookie", "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; secure; HttpOnly" }, { "key": "Set-Cookie", "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; secure; HttpOnly" }, { "key": "Set-Cookie", "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; secure; HttpOnly" }, { "key": "Set-Cookie", "value": "nc_username=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; secure; HttpOnly" }, { "key": "Set-Cookie", "value": "nc_token=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; secure; HttpOnly" }, { "key": "Set-Cookie", "value": "nc_session_id=deleted; expires=Thu, 01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/; secure; HttpOnly" }, { "key": "Set-Cookie", "value": "PWTESTnc28=2ff6fdca9f54f4b730b43c5708632424; path=/; secure; HttpOnly; SameSite=Lax" }, { "key": "Set-Cookie", "value": "PWTESTnc28=2ff6fdca9f54f4b730b43c5708632424; path=/; secure; HttpOnly; SameSite=Lax" }, { "key": "Set-Cookie", "value": "PWTESTnc28=04dd84e5520b5d2b92e6f01e31f5dd6a; path=/; secure; HttpOnly; SameSite=Lax" }, { "key": "Set-Cookie", "value": "nc_passwords=e20292ebe776ed195e060d0f0a3fb365614857017b24320d7df0223419edcb7466785b46e78b2699422b9f77a0b3155f149f21e1917a8f054f0c47a4736f41dc68aa277696527b6d2c05f9e9ed7ab5db%7Cab7dd327536db095a4bd759f30f54035%7Cb3546a4dca52744ae57b25d4d2f3c173066676819db8732fcab9353755abbe4cf17fa4df5036032d1e89543601d6e263690d010c4fdd84bcb822a4c5db420b32%7C3; path=/; secure; HttpOnly; SameSite=Lax" }, { "key": "X-Request-Id", "value": "Tu3EeX61Xas4BbaywEhK" }, { "key": "Feature-Policy", "value": "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'" }, { "key": "X-API-SESSION", "value": "e20292ebe776ed195e060d0f0a3fb365614857017b24320d7df0223419edcb7466785b46e78b2699422b9f77a0b3155f149f21e1917a8f054f0c47a4736f41dc68aa277696527b6d2c05f9e9ed7ab5db|ab7dd327536db095a4bd759f30f54035|b3546a4dca52744ae57b25d4d2f3c173066676819db8732fcab9353755abbe4cf17fa4df5036032d1e89543601d6e263690d010c4fdd84bcb822a4c5db420b32|3" }, { "key": "Content-Encoding", "value": "gzip" }, { "key": "Strict-Transport-Security", "value": "max-age=31536000; includeSubDomains; preload" } ], "cookie": [], "body": "{\n \"url\": \"https://help.nextcloud.com/login-preferences\"\n}" } ] } ], "description": "The [service api](https://git.mdns.eu/nextcloud/passwords/wikis/Developers/Api/Service-Api) provides access to general services provided by the Passwords app." } ], "auth": { "type": "basic", "basic": [ { "key": "password", "value": "{{http_auth_pass}}", "type": "string" }, { "key": "username", "value": "{{http_auth_user}}", "type": "string" } ] }, "event": [ { "listen": "prerequest", "script": { "type": "text/javascript", "exec": [ "" ] } }, { "listen": "test", "script": { "type": "text/javascript", "exec": [ "" ] } } ], "variable": [ { "key": "base_url", "value": "https://localhost/index.php/apps/passwords" }, { "key": "http_auth_user", "value": "admin" }, { "key": "http_auth_pass", "value": "admin" }, { "key": "http_api_session", "value": "" }, { "key": "password_id", "value": "1b6fafc6-7ecd-4d2b-b3ae-7496f114cf38" }, { "key": "password_revision", "value": "db48e68a-21a1-486f-86c0-cc60810b1ae4" }, { "key": "folder_id", "value": "7575ef5e-68ef-4bdb-bdb5-442accf73499" }, { "key": "folder_revision", "value": "30e852bb-516f-497a-abfd-6971ab57a540" }, { "key": "tag_id", "value": "d244b461-c48f-43b1-b4c4-6a4093f57ccf" }, { "key": "tag_revision", "value": "d3c74782-d042-4f80-899e-88f078c20242" }, { "key": "share_id", "value": "7e2cdd48-fdaf-4b68-8ced-80420cd93ae1" }, { "key": "token_provider", "value": "twofactor_nextcloud_notification" }, { "key": "domain", "value": "localhost", "type": "string" }, { "key": "example_domain", "value": "help.nextcloud.com", "type": "string" } ] }