Get technical issue
One technical-issue type in full: what it is, why it matters, how to fix it, and every page it
currently affects, each with its specific evidence (which images, links, etc. triggered it). Get
issue_id from List technical issues.
GET /brands/{brand_id}/technical/issues/{issue_id}Authorization
| Header | Type | Required |
|---|---|---|
Authorization | Bearer asky_sk_… | required |
Path parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
brand_id | uuid | required | From List brands |
issue_id | uuid | required | From List technical issues |
Query parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
limit | integer | optional | Affected pages per page, 1 to 100. Defaults to 20. |
cursor | string | optional | Opaque cursor from the previous response. Treat it as a token, never construct one. |
Request
cURL
curl --request GET \
--url 'https://api.askylabs.com/v1/brands/242546de-4cee-4a7d-952e-f6aa60c63ef8/technical/issues/7b3f9c1a-4e6d-4a2b-8c5f-1d9a3b6e7f42?limit=20' \
--header 'Authorization: Bearer <api-key>'Response
200
{
"data": [
{
"url": "https://example.com/",
"title": "Example Co | Home",
"evidence": [
"https://example.com/images/hero-1.jpg",
"https://example.com/images/hero-2.jpg",
"https://example.com/images/logo-partner-a.png",
"https://example.com/images/logo-partner-b.png"
]
}
],
"pagination": {
"limit": 20,
"has_more": false,
"next_cursor": null
},
"meta": {
"id": "7b3f9c1a-4e6d-4a2b-8c5f-1d9a3b6e7f42",
"name": "Images with empty alt text",
"category": "images",
"issue_type": "error",
"severity": "high",
"description": "One or more images on the page have an `alt` attribute with no text in it (`alt=\"\"`, or only spaces) and nothing marking them as decorative. An empty alt tells screen readers to skip the image. That is right for decoration, but it hides content when the image shows something visitors need, such as a chart, a product photo or a logo that links somewhere.\n\nVisitors using a screen reader miss whatever the image conveys, and a link whose only content is such an image is left without a name. Meaningful images without a text alternative fail WCAG success criterion [1.1.1 Non-text Content](https://www.w3.org/WAI/WCAG22/Understanding/non-text-content.html) (Level A), and since June 2025 the European Accessibility Act requires many businesses selling to consumers online in the EU to meet it. Google [uses alt text](https://developers.google.com/search/docs/appearance/google-images) to understand images, and an empty one gives it nothing.",
"docs_url": "https://docs.askylabs.com/opportunities/technical/issues/images/missing-alt-text"
},
"request_id": "req_4e8c1a3f7b2d46f0ba9c"
}Response fields
| Field | Type | Description |
|---|---|---|
data | array | required. Every page currently affected, newest-detected first |
data[].url | string | null | |
data[].title | string | null | |
data[].evidence | string[] | required. The specific elements that triggered this issue on this page (image URLs, link URLs, etc). Empty when the issue is page-level rather than element-level |
pagination.limit | integer | required |
pagination.has_more | boolean | required |
pagination.next_cursor | string | null | Pass as cursor to get the next page. null once has_more is false |
meta.id | uuid | required |
meta.name | string | null | |
meta.category | string | null | e.g. images, links, url, meta_description |
meta.issue_type | string | required. One of critical, error, warning, opportunity |
meta.severity | string | required. One of high, medium, low |
meta.description | string | null | What the issue is and why it matters, in markdown: the first two sections of its page in the issue reference |
meta.docs_url | string | null | The issue’s page in the issue reference: what it is, how Asky checks it and how to fix it |
request_id | string | required. Also returned as the x-request-id header. Quote it when contacting support |
Errors
| Status | Code | When |
|---|---|---|
| 400 | invalid_request | A parameter is unknown or malformed. The message names it |
| 401 | invalid_token | The key is missing, malformed, or does not exist |
| 401 | token_expired | The key passed its expiry date |
| 401 | token_revoked | The key was revoked |
| 404 | not_found | The brand does not exist, the issue does not currently affect any of this brand’s pages, or this key is not allowed to reach either. All three are deliberately indistinguishable |
| 429 | rate_limited | Over 300 requests per minute. See the Retry-After header |
Notes
evidence shape varies by issue type. Element-level issues (missing alt text, broken links)
list the specific offending URLs. Page-level issues (a slow page, a missing meta description) have
no discrete elements to list and return an empty array: the page itself is the finding.
meta describes the whole issue group, not the current page of data. meta.severity and
meta.issue_type are the same representative values List technical issues
shows for this id, picked across every affected page and not just the ones on this response, so they
stay constant no matter which page of data you’re on.
A 404 here can mean the issue was fixed. Once every affected page is resolved, the group no
longer exists; poll List technical issues rather than
retrying this id indefinitely. An out-of-range cursor on an otherwise-real group returns an empty
data page, not a 404.