Free API Client packages
| Language | Github | Documentation |
|---|---|---|
| Python (AS7RIDENIED) | AS7RIDENIED/LOLZTEAM | Market.md |
| Python (medovi40k) | medovi40k/lolzteam-py | README.md |
| TypeScript | yeulette/lolzteam-api-ts | README.md |
| PHP | kyo-lzt/lolzteam-php | README.md |
| Go (lztapi) | ppdoew/lztapi | README.md |
| Go (fantolla123) | fantolla123/lzt-api-go | — |
| Rust | Mlinec/lolzteam-api-rs | README.md |
| Java | Mlinec/lolzteam-api-java | README.md |
| Dart | recate-rat237/lzt-dart | — |
| C# (dexsper) | dexsper/Lolzteam.Api | README.md |
| C# (fanidamn) | fanidamn/LolzMarketAPI | README.md |
About Market API
Market API almost completely repeats WEB requests. Query parameters match. The only differences are the presence of PUT and DELETE methods. For example, a request to add a tag to an account on the WEB looks like this: lzt.market/market/{item_id}/tag/add?tag_id={tag_id}, and an API request looks like this: prod-api.lzt.market/{item_id}/tag/add?tag_id={tag_id}.
API Rate Limits
The API enforces rate limits to protect the service. Every response includes headers that tell you your current limit status, and exceeding any limit returns a 429 Too Many Requests error.
Base Limits
Base limits apply to all requests unless an endpoint has its own counter:
- GET – 300r/60s
- non-GET – 30r/60s
Endpoints With Independent Limits
These endpoints have their own counters and are not counted toward the base limits:
| Endpoint(s) | Limit | Bucket name |
|---|---|---|
| /letters, /letters2 | 5/min (shared) | letters |
| /{item_id}/edit | 1000/min | – |
| /{item_id}/confirm-buy | 1000/min | – |
| /fast-sell, /{item_id}/fast-buy, /{item_id}/check-account, /{item_id}/goods-check | 300/min (shared) | check-account |
| GET /{item_id}, /user/{user_id}/items, search requests | 120/min (shared) | search |
| DELETE /{item_id} | 300/min | – |
| /email-code | 300/min | – |
| /batch | 20/min | batch |
Note on /batch: each nested request still counts against its own endpoint's limit independently. For example, batching 10 calls to /{item_id}/edit consumes 10 from the /{item_id}/edit limit and 1 from the /batch limit.
Exceeding any limit returns a 429 error.
Get Current Rate Limit Info
Each response carries rate-limit metadata in its headers and response body:
| Header | Example | Meaning |
|---|---|---|
X-RateLimit-Limit | 300 | Maximum number of requests allowed in the current window. |
X-RateLimit-Remaining | 300 | Amount of requests still available in the current rate-limit window. |
X-RateLimit-Reset | 1234567890 | When the limit resets, as a Unix timestamp. |
{
"system_info": {
"rate_limit": {
"limit": 300,
"remaining": 300,
"reset": 1234567890,
"bucket": "bucket_name")
},
"visitor_id": 1234567890,
"time": 1234567890,
"log_id": 1234567890
}
}
Search limit
20 requests per minute for only Category Search methods (3 seconds delay between per request). If you exceed the limit, you will receive an error message and response code 429.
Requests timeout
It's highly recommended to set the request timeout to 300+ seconds, because certain methods can take a long time to be processed.
Authorization & Token configuration
For using this API you need to create API Client and get Access Token with market scope.
You must pass the token in the request headers
- Header: "Authorization: Bearer token"
Status codes
| Code | Name | Description |
|---|---|---|
| 200 | OK | The request was successfully completed. |
| 400 | Bad Request | The request is invalid due to client error. |
| 401 | Unauthorized | Authentication is required. |
| 403 | Forbidden | You do not have permission to view this page or perform this action. |
| 429 | Too Many Requests | Too many requests in a short period. |
| 500 | Internal Server Error | An internal server error occurred, try again later or report it here. |
| 502 | Bad Gateway | The gateway encountered an error while processing the request, try again later. |
| 503 | Service Unavailable | The server is temporarily unavailable, try again later. |
| 504 | Gateway Timeout | The gateway timed out waiting for a response, try again later. |
SSL Verification Errors
If you encounter an SSL verification error, disable SSL/TLS certificate verification in your http client.
Common Parameters
i18n
All API requests accept locale parameter to switch user facing messages to specified language. The value must be a valid language code (ISO 639-1) with optional inclusion of a valid country code (ISO 3166-1 alpha 2) separated by a hyphen ("-"). If no complete match can be found, a language with the same language code (even with different country code) will be used. In the worst case that there are no installed languages of requested language code, the default language will be used.
Fields filtering
For API method with resource data like a forum or a thread, the data can be filtered to get interested fields only. The general format is "key.sub_key.deep_key" if you want to include/exclude a specific field. The including rules take precedence over excluding ones.
- fields_include: comma-separated list of fields of a resource. For additional fields, it is possible to use wildcard (*****) to include all default fields before specifying additional ones.
- fields_exclude: comma-separated list of fields of a resource to exclude in the response. It is possible to use wildcard as a prefix (e.g. "*.key") to exclude the field everywhere.
Content-Type
API always returns the response as application/json (With few exceptions). You should send requests to API with application/json or application/x-www-form-urlencoded content type.
Is for free access?
To use the Market API, you need to have 200 sympathies, or you can purchase a monthly subscription here.
OpenAPI JSON
You can import the API into Postman using this file.