Genera enlaces de acceso a prueba de manipulaciones, con límite de tiempo y vinculados a IP para proteger descargas premium y archivos de streaming de compartir sin autorización La ubicación real del archivo nunca se expone al usuario final
{
"status": "success",
"message": "SignedURL Pro API is running.",
"time": "2026-07-15T20:46:33.071Z"
}
curl --location --request GET 'https://zylalabs.com/api/13197/securegate+dynamic+asset+access+api/26929/health+check' --header 'Authorization: Bearer YOUR_API_KEY'
{
"status": "success",
"accessUrl": "https://signedurl-gatekeeper.cancap.workers.dev/access/eyJmaWxlVXJsIjoiaHR0cHM6Ly9weXBpLm9yZy9weXBpL3JlcXVlc3RzL2pzb24iLCJmaWxlSWQiOiJzYW1wbGUtZmlsZS0xIiwiaXAiOm51bGwsInVhSGFzaCI6bnVsbCwiZXhwIjoxNzg0MTQ5NTcxLCJtYXhVc2VzIjoyLCJub25jZSI6Ijg4YzllMDJmYjU0MGYyYjZjNzA2MGMzMWY1NmJjMDM4In0.feba462a71fbe444d3b78bf7c204c815ee37579a1a7c476c02aad12038a48a49",
"fileId": "sample-file-1",
"expiresAt": "2026-07-15T21:06:11.000Z",
"maxUses": 2,
"ipBound": false,
"clientBound": false
}
curl --location --request POST 'https://zylalabs.com/api/13197/securegate+dynamic+asset+access+api/26930/generate+signed+access+link' --header 'Authorization: Bearer YOUR_API_KEY'
--data-raw '{
"fileUrl": "https://pypi.org/pypi/requests/json",
"fileId": "sample-file-1",
"ttlSeconds": 900,
"maxUses": 2,
"bindIp": false,
"bindClient": false
}'
{"info":{"author":null,"author_email":"Kenneth Reitz <[email protected]>","bugtrack_url":null,"classifiers":["Development Status :: 5 - Production/Stable","Environment :: Web Environment","Intended Audience :: Developers","License :: OSI Approved :: Apache Software License","Natural Language :: English","Operating System :: OS Independent","Programming Language :: Python","Programming Language :: Python :: 3","Programming Language :: Python :: 3 :: Only","Programming Language :: Python :: 3.10","Programming Language :: Python :: 3.11","Programming Language :: Python :: 3.12","Programming Language :: Python :: 3.13","Programming Language :: Python :: 3.14","Programming Language :: Python :: 3.15","Programming Language :: Python :: Free Threading :: 2 - Beta","Programming Language :: Python :: Implementation :: CPython","Programming Language :: Python :: Implementation :: PyPy","Topic :: Internet :: WWW/HTTP","Topic :: Software Development :: Libraries"],"description":"# Requests\n\n[](https://pypi.org/project/requests/)\n[](https://pypi.org/project/requests)\n[](https://pepy.tech/project/requests)\n[](https://github.com/psf/requests/graphs/contributors)\n[](https://requests.readthedocs.io)\n\n**Requests** is a simple, yet elegant, HTTP library.\n\n```python\n>>> import requests\n>>> r = requests.get('https://httpbin.org/basic-auth/user/pass', auth=('user', 'pass'))\n>>> r.status_code\n200\n>>> r.headers['content-type']\n'application/json; charset=utf8'\n>>> r.encoding\n'utf-8'\n>>> r.text\n'{\"authenticated\": true, ...'\n>>> r.json()\n{'authenticated': True, ...}\n```\n\nRequests allows you to send HTTP/1.1 requests extremely easily. There’s no need to manually add query strings to your URLs, or to form-encode your `PUT` & `POST` data — but nowadays, just use the `json` method!\n\nRequests is one of the most downloaded Python packages today, pulling in around `300M downloads / week` — according to GitHub, Requests is currently [depended upon](https://github.com/psf/requests/network/dependents?package_id=UGFja2FnZS01NzA4OTExNg%3D%3D) by `4,000,000+` repositories.\n\n## Installing Requests and Supported Versions\n\nRequests is available on PyPI:\n\n```console\n$ python -m pip install requests\n```\n\nRequests officially supports Python 3.10+.\n\n## Supported Features & Best–Practices\n\nRequests is ready for the demands of building robust and reliable HTTP–speaking applications, for the needs of today.\n\n- Keep-Alive & Connection Pooling\n- International Domains and URLs\n- Sessions with Cookie Persistence\n- Browser-style TLS/SSL Verification\n- Basic & Digest Authentication\n- Familiar `dict`–like Cookies\n- Automatic Content Decompression and Decoding\n- Multi-part File Uploads\n- SOCKS Proxy Support\n- Connection Timeouts\n- Streaming Downloads\n- Automatic honoring of `.netrc`\n- Chunked HTTP Requests\n\n## Cloning the repository\n\nWhen cloning the Requests repository, you may need to add the `-c\nfetch.fsck.badTimezone=ignore` flag to avoid an error about a bad commit timestamp (see\n[this issue](https://github.com/psf/requests/issues/2690) for more background):\n\n```shell\ngit clone -c fetch.fsck.badTimezone=ignore https://github.com/psf/requests.git\n```\n\nYou can also apply this setting to your global Git config:\n\n```shell\ngit config --global fetch.fsck.badTimezone ignore\n```\n\n---\n\n[](https://kennethreitz.org) [](https://www.python.org/psf)\n","description_content_type":"text/markdown","docs_url":null,"download_url":null,"downloads":{"last_day":-1,"last_month":-1,"last_week":-1},"dynamic":["License-File"],"home_page":null,"keywords":null,"license":"Apache-2.0","license_expression":null,"license_files":["LICENSE","NOTICE"],"maintainer":null,"maintainer_email":"Ian Stapleton Cordasco <[email protected]>, Nate Prewitt <[email protected]>","name":"requests","package_url":"https://pypi.org/project/requests/","platform":null,"project_url":"https://pypi.org/project/requests/","project_urls":{"Documentation":"https://requests.readthedocs.io","Source":"https://github.com/psf/requests"},"provides_extra":["security","socks","use-chardet-on-py3"],"release_url":"https://pypi.org/project/requests/2.34.2/","requires_dist":["charset_normalizer<4,>=2","idna<4,>=2.5","urllib3<3,>=1.26","certifi>=2023.5.7","PySocks!=1.5.7,>=1.5.6; extra == \"socks\"","chardet<8,>=3.0.2; extra == \"use-chardet-on-py3\""],"requires_python":">=3.10","summary":"Python HTTP for Humans.","version":"2.34.2","yanked":false,"yanked_reason":null},"last_serial":37059094,"ownership":{"organization":null,"roles":[{"role":"Owner","user":"Lukasa"},{"role":"Owner","user":"graffatcolmingov"},{"role":"Owner","user":"nateprewitt"}]},"releases":{"0.0.1":[],"0.10.0":[{"comment_text":"","core-metadata":false,"digests":{"blake2b_256":"62350230421b8c4efad6624518028163329ad0c2df9e58e6b3bee013427bf8f6","md5":"c90a48af18eb4170dbe4832c1104440c","sha256":"210a82e678c45d433a4ad1f105974b3102a8ab5198872dc0a3238a8750d4c65e"},"downloads":-1,"filename":"requests-0.10.0.tar.gz","has_sig":false,"md5_digest":"c90a48af18eb4170dbe4832c1104440c","packagetype":"sdist","python_version":"source","requires_python":null,"size":62046,"upload_time":"2012-01-22T05:08:17","upload_time_iso_8601":"2012-01-22T05:08:17.091441Z","url":"https://files.pythonhosted.org/packages/62/35/0230421b8c4efad6624518028163329ad0c2df9e58e6b3bee013427bf8f6/requests-0.10.0.tar.gz","yanked":false,"yanked_reason":null}],"0.10.1":[{"comment_text":"","core-metadata":false,"digests":{"blake2b_256":"b456ba2d803383ec32d70f8faa7df5eb37ee9b3fc662ff68b7ab01ad9740b83a","md5":"699147d2143bff95238befa58980b912","sha256":"da6031575a30c7b65ea99465183468349b3645e6bf5322e49d53f565b27ed2b5"},"downloads":-1,"filename":"requests-0.10.1.tar.gz","has_sig":false,"md5_digest":"699147d2143bff95238befa58980b912","packagetype":"sdist","python_version":"source","requires_python":null,"size":63234,"upload_time":"2012-01-23T08:22:52","upload_time_iso_8601":"2012-01-23T08:22:52.352375Z","url":"https://files.pythonhosted.org/packages/b4/56/ba2d803383ec32d70f8faa7df5eb37ee9b3fc662ff68b7ab01ad9740b83a/requests-0.10.1.tar.gz","yanked":false,"yanked_reason":null}],"0.10.2":[{"comment_text":"","core-metadata":false,"digests":{"blake2b_256":"581e6b84552b6553f5beaf7cb0fe15115e7e4673326ed9188ad5338559ee8285","md5":"47c3cf85a0112d423137b43989663bef","sha256":"1546ef1e291ae337086369b621096fb0f69f88f6f67f60b1f6b7c18d1ca278e1"},"downloads":-1,"filename":"requests-0.10.2.tar.gz","has_sig":false,"md5_digest":"47c3cf85a0112d423137b43989663bef","packagetype":"sdist","python_version":"source","requires_python":null,"size":60158,"upload_time":"2012-02-15T09:48:52","upload_time_iso_8601":"2012-02-15T09:48:52.830436Z","url":"https://files.pythonhosted.org/packages/58/1e/6b84552b6553f5beaf7cb0fe15115e7e4673326ed9188ad5338559ee8285/requests-0.10.2.tar.gz","yanked":false,"yanked_reason":null}],"0.10.3":[{"comment_text":"","core-metadata":false,"digests":{"blake2b_256":"014439988315e036b79fe70428273053617266bf20d1363e91082346fae8450d","md5":"a055af00593f4828c3becd0ccfab503f","sha256":"8eeb24328304b015cbd59a49670e2738b77034b225b566729ddb19941899e490"},"downloads":-1,"filename":"requests-0.10.3.tar.gz","has_sig":false,"md5_digest":"a055af00593f4828c3becd0ccfab503f","packagetype":"sdist","python_version":"source","requires_python":null,"size":60493,"upload_time":"2012-02-20T20:10:57","upload_time_iso_8601":"2012-02-20T20:10:57.584946Z","url":"https://files.pythonhosted.org/packages/01/44/39988315e036b79fe70428273053617266bf20d1363e91082346fae8450d/requests-0.10.3.tar.gz","yanked":false,"yanked_reason":null}],"0.10.4":[{"comment_text":"","core-metadata":false,"digests":{"blake2b_256":"94ac5fa21e435ba8050d14db92ce29763c28196b727d4079dc608d39177fbf9b","md5":"5e465e9e739bcc9f71935ca4e9706168","sha256":"2ad4cc51d7595ca6f97373a0d697999e0cbdbbf1ba665d18f0f3dcec12b8be77"},"downloads":-1,"filename":"requests-0.10.4.tar.gz","has_sig":false,"md5_digest":"5e465e9e739bcc9f71935ca4e9706168","packagetype":"sdist","python_version":"source","requires_python":null,"size":60889,"upload_time":"2012-02-20T22:21:31","upload_time_iso_8601":"2012-02-20T22:21:31.091713Z","url":"https://files.pythonhosted.org/packages/94/ac/5fa21e435ba8050d14db92ce29763c28196b727d4079dc608d39177fbf9b/requests-0.10.4.tar.gz","yanked":false,"yanked_reason":null}],"0.10.6":[{"comment_text":"","core-metadata":false,"digests":{"blake2b_256":"b41f8f5430040fcf4391dc5bd324424a569e2e0d96595952b21eb82403602d98","md5":"c889401445de3cbbac98509208a73b83","sha256":"31134b4f35951730dcce59f2af334478b68caa5728902a1d6bd5e115ec677d8b"},"downloads":-1,"filename":"requests-0.10.6.tar.gz","has_sig":false,"md5_digest":"c889401445de3cbbac98509208a73b83","packagetype":"sdist","python_version":"source","requires_python":null,"size":61673,"upload_time":"2012-02-26T05:17:54","upload_time_iso_8601":"2012-02-26T05:17:54.135905Z","url":"https://files.pythonhosted.org/packages/b4/1f/8f5430040fcf4391dc5bd324424a569e2e0d96595952b21eb82403602d98/requests-0.10.6.tar.gz","yanked":false,"yanked_reason":null}],"0.10.7":[{"comment_text":"","core-metadata":false,"digests":{"blake2b_256":"c5cd0597f9c040db24ca6d23cc74faa102554cb0a93bdbffb855d7749547921f","md5":"a3ac9d431981dcfd592fd0f35c499e4a","sha256":"80f32a74bed8cf081a3a25512f8725e09ceda217101ea706efced262bb05aec6"},"downloads":-1,"filename":"requests-0.10.7.tar.gz","has_sig":false,"md5_digest":"a3ac9d431981dcfd592fd0f35c499e4a"}]},"_note":"Response truncated for documentation purposes"}
curl --location --request GET 'https://zylalabs.com/api/13197/securegate+dynamic+asset+access+api/26931/access+protected+file' --header 'Authorization: Bearer YOUR_API_KEY'
--data-raw 'eyJmaWxlVXJsIjoiaHR0cHM6Ly9weXBpLm9yZy9weXBpL3JlcXVlc3RzL2pzb24iLCJmaWxlSWQiOiJzYW1wbGUtZmlsZS0xIiwiaXAiOm51bGwsInVhSGFzaCI6bnVsbCwiZXhwIjoxNzg0MTQ5NTcxLCJtYXhVc2VzIjoyLCJub25jZSI6Ijg4YzllMDJmYjU0MGYyYjZjNzA2MGMzMWY1NmJjMDM4In0.feba462a71fbe444d3b78bf7c204c815ee37579a1a7c476c02aad12038a48a49'
{
"status": "success",
"valid": true,
"fileId": "sample-file-1",
"expiresAt": "2026-07-15T21:06:11.000Z",
"secondsRemaining": 395,
"usesRemaining": 1,
"ipBound": false,
"clientBound": false
}
curl --location --request GET 'https://zylalabs.com/api/13197/securegate+dynamic+asset+access+api/26932/verify+link+status' --header 'Authorization: Bearer YOUR_API_KEY'
--data-raw 'eyJmaWxlVXJsIjoiaHR0cHM6Ly9weXBpLm9yZy9weXBpL3JlcXVlc3RzL2pzb24iLCJmaWxlSWQiOiJzYW1wbGUtZmlsZS0xIiwiaXAiOm51bGwsInVhSGFzaCI6bnVsbCwiZXhwIjoxNzg0MTQ5NTcxLCJtYXhVc2VzIjoyLCJub25jZSI6Ijg4YzllMDJmYjU0MGYyYjZjNzA2MGMzMWY1NmJjMDM4In0.feba462a71fbe444d3b78bf7c204c815ee37579a1a7c476c02aad12038a48a49'
Después de registrarte, a cada desarrollador se le asigna una clave de acceso a la API personal, una combinación única de letras y dígitos proporcionada para acceder a nuestro endpoint de la API. Para autenticarte con el SecureGate Acceso Dinámico a Activos API simplemente incluye tu token de portador en el encabezado de Autorización.
| Encabezado | Descripción |
|---|---|
Autorización
|
Requerido
Debería ser Bearer access_key. Consulta "Tu Clave de Acceso a la API" arriba cuando estés suscrito.
|
Sin compromiso a largo plazo. Mejora, reduce o cancela en cualquier momento. La Prueba Gratuita incluye hasta 50 solicitudes.
(Ahorra 2 meses pagando anualmente 🎉)
Empresas líderes confían en nosotros
Esta API genera tokens de acceso firmados que controlan el acceso a un archivo, protegiéndolo de ser compartido o redistribuido libremente
Puntos finales y funcionalidad:
Casos de uso típicos: proteger contenido de video/curso premium, descargas digitales controladas, enlaces temporales para compartir archivos, entrega de claves de licencia y cualquier escenario donde una plataforma necesita evitar que un enlace pago sea redistribuido libremente
Envía una solicitud POST a /generate con la URL del archivo real, la dirección IP del usuario final, el tiempo de expiración y el número máximo de usos. La API devuelve un enlace de acceso firmado que se puede dar de forma segura a ese usuario — la ubicación real del archivo nunca se expone
Cada enlace está vinculado a la dirección IP específica y la firma del navegador para la que fue emitido expira después de un tiempo determinado y solo puede usarse un número limitado de veces Si el enlace se abre desde una red o dispositivo diferente o después de que expire o alcance su límite de uso el acceso es denegado
Sí Enviar una solicitud GET a /verify/:token para ver el tiempo restante y el conteo de uso sin consumir un intento de acceso Esto es útil para mostrar al usuario un temporizador de cuenta regresiva o un indicador de descargas restantes antes de que hagan clic
No La API recupera el archivo del lado del servidor y lo transmite a través del enlace firmado La ubicación real del archivo nunca aparece en la barra de direcciones del navegador en las solicitudes de red o en el código fuente de la página por lo que no se puede marcar ni reutilizar después de que el enlace expire
Cada token está firmado criptográficamente. Cualquier modificación al enlace, incluyendo intentos de extender su expiración o aumentar su límite de uso, invalida la firma y la solicitud es rechazada inmediatamente
El endpoint Generar enlace de acceso firmado devuelve un objeto JSON que contiene el estado de la solicitud la URL de acceso firmada el ID del archivo el tiempo de expiración el número máximo de usos permitidos y si el enlace está vinculado a una IP o a un cliente
El endpoint de Archivo Protegido por Acceso requiere un token firmado como parámetro Este token contiene toda la información necesaria para la validación incluida la firma la expiración y los límites de uso
El endpoint de Verificar Estado del Enlace devuelve un objeto JSON estructurado con campos que indican el estado de la solicitud validez del token ID del archivo tiempo de expiración segundos restantes usos restantes y información de enlace
Los campos clave incluyen "estado" (indicando éxito) "accesoUrl" (el enlace firmado) "fileId" (identificador del archivo) "expiraEn" (marca de tiempo de expiración) "maxUsos" (máximo de usos permitidos) y banderas de enlace para IP y cliente
El endpoint de Verificar Estado del Enlace proporciona información sobre la validez del token el tiempo restante hasta la expiración los usos restantes y si el enlace está vinculado a una IP o cliente sin consumir un uso
Los usuarios pueden personalizar las solicitudes especificando la URL del archivo real, la dirección IP del usuario final, la duración de expiración deseada y el número máximo de usos al enviar una solicitud POST al punto final Generar Enlace de Acceso Firmado
Si el endpoint de Archivo Protegido por Acceso recibe un token inválido (caducado, manipulado, con IP desajustada o completamente utilizado) rechazará la solicitud y no transmitirá el archivo asegurando un control de acceso seguro
Los casos de uso típicos incluyen la protección de contenido de video premium descargas digitales restringidas enlaces de compartición de archivos temporales y entrega segura de claves de licencia asegurando que el acceso esté controlado y monitoreado