{ "uuid": "9f8bfb6a-c85f-4956-a2b4-69bc4b341f9f", "lastMigration": 29, "name": "Digital Asset Links API", "endpointPrefix": "", "latency": 0, "port": 3000, "hostname": "", "routes": [ { "uuid": "9ae3df9b-69d3-4a4f-a646-445bb4b255fd", "documentation": "Send a bundle of statement checks in a single RPC to minimize latency and service load. Statements need not be all for the same source and/or target. We recommend using this method when you need to check more than one statement in a short period of time.", "method": "post", "endpoint": "v1/assetlinks:bulkCheck", "responses": [ { "uuid": "64b030b5-5827-43f3-86e8-70515a8f72ca", "body": "{\n \"bulkErrorCode\": \"{{oneOf (array 'ERROR_CODE_UNSPECIFIED' 'ERROR_CODE_INVALID_QUERY' 'ERROR_CODE_FETCH_ERROR' 'ERROR_CODE_FAILED_SSL_VALIDATION' 'ERROR_CODE_REDIRECT' 'ERROR_CODE_TOO_LARGE' 'ERROR_CODE_MALFORMED_HTTP_RESPONSE' 'ERROR_CODE_WRONG_CONTENT_TYPE' 'ERROR_CODE_MALFORMED_CONTENT' 'ERROR_CODE_SECURE_ASSET_INCLUDES_INSECURE' 'ERROR_CODE_FETCH_BUDGET_EXHAUSTED')}}\",\n \"checkResults\": [\n {\n \"debugString\": \"\",\n \"errorCode\": [\n \"{{oneOf (array 'ERROR_CODE_UNSPECIFIED' 'ERROR_CODE_INVALID_QUERY' 'ERROR_CODE_FETCH_ERROR' 'ERROR_CODE_FAILED_SSL_VALIDATION' 'ERROR_CODE_REDIRECT' 'ERROR_CODE_TOO_LARGE' 'ERROR_CODE_MALFORMED_HTTP_RESPONSE' 'ERROR_CODE_WRONG_CONTENT_TYPE' 'ERROR_CODE_MALFORMED_CONTENT' 'ERROR_CODE_SECURE_ASSET_INCLUDES_INSECURE' 'ERROR_CODE_FETCH_BUDGET_EXHAUSTED')}}\"\n ],\n \"linked\": {{faker 'datatype.boolean'}},\n \"maxAge\": \"\"\n }\n ]\n}", "latency": 0, "statusCode": 200, "label": "Successful response", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": true, "crudKey": "id" } ], "enabled": true, "responseMode": null, "type": "http" }, { "uuid": "cb48afb1-6950-4886-a037-9671a75b5069", "documentation": "Determines whether the specified (directional) relationship exists between the specified source and target assets. The relation describes the intent of the link between the two assets as claimed by the source asset. An example for such relationships is the delegation of privileges or permissions. This command is most often used by infrastructure systems to check preconditions for an action. For example, a client may want to know if it is OK to send a web URL to a particular mobile app instead. The client can check for the relevant asset link from the website to the mobile app to decide if the operation should be allowed. A note about security: if you specify a secure asset as the source, such as an HTTPS website or an Android app, the API will ensure that any statements used to generate the response have been made in a secure way by the owner of that asset. Conversely, if the source asset is an insecure HTTP website (that is, the URL starts with `http://` instead of `https://`), the API cannot verify its statements securely, and it is not possible to ensure that the website's statements have not been altered by a third party. For more information, see the [Digital Asset Links technical design specification](https://github.com/google/digitalassetlinks/blob/master/well-known/details.md).", "method": "get", "endpoint": "v1/assetlinks:check", "responses": [ { "uuid": "e072d9d2-83f2-4dbe-bba0-c8ff1d7e1d11", "body": "{\n \"debugString\": \"\",\n \"errorCode\": [\n \"{{oneOf (array 'ERROR_CODE_UNSPECIFIED' 'ERROR_CODE_INVALID_QUERY' 'ERROR_CODE_FETCH_ERROR' 'ERROR_CODE_FAILED_SSL_VALIDATION' 'ERROR_CODE_REDIRECT' 'ERROR_CODE_TOO_LARGE' 'ERROR_CODE_MALFORMED_HTTP_RESPONSE' 'ERROR_CODE_WRONG_CONTENT_TYPE' 'ERROR_CODE_MALFORMED_CONTENT' 'ERROR_CODE_SECURE_ASSET_INCLUDES_INSECURE' 'ERROR_CODE_FETCH_BUDGET_EXHAUSTED')}}\"\n ],\n \"linked\": {{faker 'datatype.boolean'}},\n \"maxAge\": \"\"\n}", "latency": 0, "statusCode": 200, "label": "Successful response", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": true, "crudKey": "id" } ], "enabled": true, "responseMode": null, "type": "http" }, { "uuid": "cf6862ca-4c7d-4be0-a039-0a1a07aadb6f", "documentation": "Retrieves a list of all statements from a given source that match the specified target and statement string. The API guarantees that all statements with secure source assets, such as HTTPS websites or Android apps, have been made in a secure way by the owner of those assets, as described in the [Digital Asset Links technical design specification](https://github.com/google/digitalassetlinks/blob/master/well-known/details.md). Specifically, you should consider that for insecure websites (that is, where the URL starts with `http://` instead of `https://`), this guarantee cannot be made. The `List` command is most useful in cases where the API client wants to know all the ways in which two assets are related, or enumerate all the relationships from a particular source asset. Example: a feature that helps users navigate to related items. When a mobile app is running on a device, the feature would make it easy to navigate to the corresponding web site or Google+ profile.", "method": "get", "endpoint": "v1/statements:list", "responses": [ { "uuid": "08ab08ab-2cf4-4bbb-a68d-99a82d2afdec", "body": "{\n \"debugString\": \"\",\n \"errorCode\": [\n \"{{oneOf (array 'ERROR_CODE_UNSPECIFIED' 'ERROR_CODE_INVALID_QUERY' 'ERROR_CODE_FETCH_ERROR' 'ERROR_CODE_FAILED_SSL_VALIDATION' 'ERROR_CODE_REDIRECT' 'ERROR_CODE_TOO_LARGE' 'ERROR_CODE_MALFORMED_HTTP_RESPONSE' 'ERROR_CODE_WRONG_CONTENT_TYPE' 'ERROR_CODE_MALFORMED_CONTENT' 'ERROR_CODE_SECURE_ASSET_INCLUDES_INSECURE' 'ERROR_CODE_FETCH_BUDGET_EXHAUSTED')}}\"\n ],\n \"maxAge\": \"\",\n \"statements\": [\n {\n \"relation\": \"\",\n \"source\": {\n \"androidApp\": {\n \"certificate\": {\n \"sha256Fingerprint\": \"\"\n },\n \"packageName\": \"\"\n },\n \"web\": {\n \"site\": \"\"\n }\n },\n \"target\": {\n \"androidApp\": {\n \"certificate\": {\n \"sha256Fingerprint\": \"\"\n },\n \"packageName\": \"\"\n },\n \"web\": {\n \"site\": \"\"\n }\n }\n }\n ]\n}", "latency": 0, "statusCode": 200, "label": "Successful response", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": true, "crudKey": "id" } ], "enabled": true, "responseMode": null, "type": "http" } ], "proxyMode": false, "proxyHost": "", "proxyRemovePrefix": false, "tlsOptions": { "enabled": false, "type": "CERT", "pfxPath": "", "certPath": "", "keyPath": "", "caPath": "", "passphrase": "" }, "cors": true, "headers": [], "proxyReqHeaders": [{ "key": "", "value": "" }], "proxyResHeaders": [{ "key": "", "value": "" }], "data": [], "folders": [], "rootChildren": [ { "type": "route", "uuid": "9ae3df9b-69d3-4a4f-a646-445bb4b255fd" }, { "type": "route", "uuid": "cb48afb1-6950-4886-a037-9671a75b5069" }, { "type": "route", "uuid": "cf6862ca-4c7d-4be0-a039-0a1a07aadb6f" } ] }