PSAStore API endpoint
Returns products, collections, and query suggestions from the PSA Team Store's (https://store.psacard.com) predictive search. The storefront URL is fixed server-side.
/psastore/search/suggestThis is a brand-pinned endpoint: the storefront URL (https://store.psacard.com) is fixed server-side, so unlike the generic /shopify/* family this wraps, there is no url request parameter. The same storefront is reachable through the generic family by passing url=https://store.psacard.com directly.
Query parameters:
q: required. Search query text.types: optional comma-separated suggestion types. Allowed values: product, collection, query. Defaults to product,collection,query.limit: optional. Defaults to 10, maximum 20.Notable response behavior:
200 with empty arrays.| Field | Filled in, of 5 checked | Values in the sample |
|---|---|---|
| id | 5 | |
| handle | 5 | |
| title | 5 | “Vaulted Card Case (4-Row)” and 4 other values |
| url | 5 | store.psacard.com |
| description | 5 | “Key Features Hard shell ribbed aluminum exterior and collec…” and 4 other values |
| vendor | 5 | PSA (4), Vaulted (1) |
| product_type | 2 | “All Cards” and 1 other value |
| price | 5 | 5,400 to 29,000, median 5,700 |
| featured_image | 5 | cdn.shopify.com |
| compare_at_price | 1 | 8,100 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| q | string | Yes | Search query | case | |
| types | string | No | Comma-separated suggestion types. Allowed values: product, collection, query | product,collection,query | |
| limit | integer | No | 10 and supports up to 20 | Maximum results per type, defaults to 10 and supports up to 20 | 10 |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/psastore/search/suggest?q=case&limit=10" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"store_url": "https://store.psacard.com",
"source_url": "https://store.psacard.com",
"query": "wool",
"types": [
"product",
"collection",
"query"
],
"limit": 10,
"products": [
{
"handle": "example-product",
"title": "Example Product"
}
],
"collections": [
{
"handle": "example-collection",
"title": "Example Collection"
}
],
"queries": [
{
"text": "wool",
"url": "https://store.psacard.com/search?q=wool"
}
]
}
}Request schema
No body schema
Response schema
#/definitions/shopifybrands.searchSuggestResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | shopify.SearchSuggestResponse | No | ||||
| data.collections | array | No | Collections suggested for the query. CollectionItem record, 9 fields: created_at, description, handle, id, products_count, published_at, title, updated_at, url. Described under PSA Store Collections API. | |||
| data.limit | integer | No | 10 | Maximum number of suggestions requested. | ||
| data.products | array | No | Products suggested for the query. ProductItem record, 57 fields: available, canonical_colour, collection_tags, colour, compare_at_price, condition, created_at, description, discount_percentage, featured_image, handle, id and 14 more. Described under PSA Store Products API. | |||
| data.queries | array | No | Search phrases suggested for the query. | |||
| data.queries[].text | string | No | wool | Suggested search phrase. | ||
| data.queries[].url | string | No | https://www.allbirds.com/search?q=wool | Storefront search results URL for the phrase. | ||
| data.query | string | No | wool | Search text that was run. | ||
| data.source_url | string | No | https://www.allbirds.com | URL the data was read from. | ||
| data.store_url | string | No | https://www.allbirds.com | Base URL of the Shopify storefront that was queried. | ||
| data.types | array | No | product,collection,query | Suggestion types returned: `product`, `collection` and `query`. | ||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 429 | Too Many Requests | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/psastore/search/suggest?q=case&limit=10" \
-H "x-api-key: $CRAWLORA_API_KEY"