CUIK GUIDES
Understand and use Cuik.
Methods for client work, guides for your tools. Use what helps you.
Crawl
7 guidesFrom your first audit to advanced settings, automation and troubleshooting.
- Start your first crawl
- Crawl: explore and audit a site
- Advanced crawl configuration
- 'true', 'type' => 'hyperlink']); $curl = curl_init($url); $csv = false; try { curl_setopt_array($curl, [ curlopt_httpheader => ['authorization: ' . $key], curlopt_file => $file, curlopt_followlocation => false, curlopt_connecttimeout => 15, curlopt_timeout => 360, ]); $ok = curl_exec($curl); $status = curl_getinfo($curl, curlinfo_http_code); if ($ok === false || $status !== 200) { throw new runtimeexception('export http ' . $status . ' : ' . curl_error($curl)); } fflush($file); $csv = fopen('compress.zlib://' . $path, 'rb'); if ($csv === false) { throw new runtimeexception('unable to read the compressed csv.'); } $columns = fgetcsv($csv, 0, ',', '"', ''); while (($values = fgetcsv($csv, 0, ',', '"', '')) !== false) { $link = array_combine($columns, $values); // replace this with storage in your application. echo $link['source'] . ' -> ' . $link['destination'] . php_eol; } } finally { if (is_resource($csv)) fclose($csv); curl_close($curl); fclose($file); } ``` on **429**, respect `retry-after` before requesting the export again. on **503**, keep your previous results and try again later. a preparation failure never returns a partial file. if the download is interrupted, discard the incomplete local file before retrying. the http route `post /v1/mcp/query-crawl-sql` also remains available for small sql reads, but is not intended for bulk downloads. ## python example: find existing ids install `requests` with `python -m pip install requests`. this read-only example also helps locate a crawl after a network interruption. ```python import os import requests response = requests.get( "https://api.cuik.io/v1/crawls?limit=5&offset=0", headers={"authorization": os.environ["cuik_api_key"]}, timeout=120, ) response.raise_for_status() for crawl in response.json()["crawls"]: print(crawl["id"], crawl["site"], crawl["status"]) ``` ## common errors - **401**: check [authentication](/en/documentation/api-authentification). - **403**: access, insufficient credits or disabled beta; read the message. - **404**: unknown id or a crawl not accessible to your account. - **409 / 429**: state conflict or temporary capacity limit, depending on the operation; read the message before retrying. - **422**: invalid json or field type, such as a url without a protocol. examples and screenshots use fictional data, not evidence of an audit run on your account. existing audits are also available in the [crawl list](/en/crawl). ## set up regular monitoring after validating your first request, use [automate your crawls](/en/documentation/automatiser-crawls) to configure scheduling, monitoring and duplicate prevention. to interpret engine errors, see [crawl troubleshooting](/en/documentation/depanner-crawl). ">API: crawl, read and export links
- Schedule crawls with the API
- Fix crawl errors and access blocks
- HTTP 429: slow or interrupted crawls
Analytics & Search Console
3 guidesConnect your properties and understand traffic, visibility and conversions.
Reports
2 guidesTurn your analyses into a clear, branded client presentation.
MCP
2 guidesConnect your AI assistant and work with your Cuik data.
Client work
2 guidesOrganise missions, tasks and client conversations in your projects.
API
2 guidesAuthenticate your requests and connect Cuik to your own tools.
Log Analyzer
1 guideUnderstand what search engine bots actually crawl.
No guide matches your search.Try “Shopify”, “JavaScript” or “domain”.