{
"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'
Após se cadastrar, cada desenvolvedor recebe uma chave de acesso à API pessoal, uma combinação única de letras e dígitos para acessar nosso endpoint de API. Para autenticar com a Acesso Dinâmico a Ativos SecureGate API basta incluir seu token Bearer no cabeçalho Authorization.
| Cabeçalho | Descrição |
|---|---|
Authorization
|
Obrigatório
Deve ser Bearer access_key. Veja "Sua chave de acesso à API" acima quando você estiver inscrito.
|
Sem compromisso de longo prazo. Faça upgrade, downgrade ou cancele a qualquer momento. O teste gratuito inclui até 50 requisições.
(Economize 2 meses com cobrança anual 🎉)
Empresas líderes confiam em nós
Esta API gera tokens de acesso assinados que controlam o acesso a um arquivo, protegendo-o de ser compartilhado ou redistribuído livremente
Pontos de extremidade e funcionalidade:
Casos de uso típicos: proteger conteúdo de vídeo/curso premium, downloads digitais bloqueados, links de compartilhamento de arquivos temporários, entrega de chave de licença e qualquer cenário em que uma plataforma precise impedir que um link pago seja redistribuído livremente
Envie uma solicitação POST para /generate com a URL real do arquivo, o endereço IP do usuário final, o tempo de expiração e o número máximo de usos. A API retorna um link de acesso assinado que pode ser fornecido com segurança a esse usuário — a localização real do arquivo nunca é exposta
Cada link está vinculado ao endereço IP específico e à assinatura do navegador para o qual foi emitido expira após um tempo definido e só pode ser usado um número limitado de vezes Se o link for aberto de uma rede ou dispositivo diferente ou após expirar ou atingir seu limite de uso o acesso é negado
Sim Envie uma solicitação GET para /verify/:token para ver o tempo restante e a contagem de uso sem consumir uma tentativa de acesso Isso é útil para mostrar ao usuário uma contagem regressiva ou um indicador de downloads restantes antes que eles cliquem
Não A API recupera o arquivo do lado do servidor e o retransmite através do link assinado O local real do arquivo nunca aparece na barra de endereço do navegador nas solicitações de rede ou no código-fonte da página portanto não pode ser adicionado aos favoritos ou reutilizado após a expiração do link
Cada token é assinado cryptograficamente Qualquer modificação no link incluindo tentativas de estender sua expiração ou aumentar seu limite de uso invalida a assinatura e a solicitação é rejeitada imediatamente
O endpoint Gerar Link de Acesso Assinado retorna um objeto JSON contendo o status da solicitação a URL de acesso assinado o ID do arquivo o tempo de expiração o número máximo de usos permitidos e se o link é vinculado a IP ou cliente
O endpoint de Arquivo Protegido por Acesso requer um token assinado como parâmetro Esse token contém todas as informações necessárias para validação incluindo assinatura expiração e limites de uso
O endpoint Verificar Status do Link retorna um objeto JSON estruturado com campos indicando o status da solicitação validade do token ID do arquivo tempo de expiração segundos restantes usos restantes e informações de vinculação
Os campos principais incluem "status" (indicando sucesso) "accessUrl" (o link assinado) "fileId" (identificador do arquivo) "expiresAt" (timestamp de expiração) "maxUses" (número máximo de usos permitidos) e bandeiras de vinculação para IP e cliente
O endpoint de Verificar Status do Link fornece informações sobre a validade do token, tempo restante até a expiração, usos restantes e se o link é vinculado a um IP ou cliente sem consumir um uso
Os usuários podem personalizar solicitações especificando a URL do arquivo real, o endereço IP do usuário final, a duração desejada de expiração e o número máximo de usos ao enviar uma solicitação POST para o ponto de extremidade Gerar Link de Acesso Assinado
Se o endpoint de Arquivo Protegido por Acesso receber um token inválido (expirado, adulterado, com IP incompatível ou totalmente usado), ele rejeitará a solicitação e não transmitirá o arquivo, garantindo controle de acesso seguro
Os casos de uso típicos incluem a proteção de conteúdo de vídeo premium, downloads digitais restritos, links de compartilhamento de arquivo temporários e entrega segura de chaves de licença garantindo que o acesso seja controlado e monitorado