Важное обновление API Маркета Метод /market/item_id/reserve будет удален 15 июня 2024 года. На данный момент он не выполняет никакой функции и более не требуется. Просьба обновить свои софты до этого времени.
Подскажите пожалуйста, в чем может быть проблема: сначала получаю список аккаунтов методом api.lzt.market/telegram? с параметрами, затем нужный мне акк покупаю методом fast-buy, затем после покупки пытаюсь дальше получать список аккаунтов тем же методом api.lzt.market/telegram?, ну цикл вроде понятен. До сегодняшнего дня всё работало отлично, но сегодня появилась проблема - после покупки сервер отказывается отвечать на запрос списка аккаунтов, тупо вылетает timed out. Если подождать некоторое время (секунд 10-30 или больше), то сервер снова выдает список нормально, но через какое то непродолжительное время опять вываливается timed out. Между запросами всегда минимум 3 сек пауза. В чем может быть проблема?
В связи с продолжительным и вопиющим использованием метода bulk-items для парсинга чужих товаров мы приняли решение ограничить получение информации о товарах, для которых вы не являетесь покупателем или продавцом.
Автопроверка на валид и автомарбитраж -Можно ли создать данный софт? (Дают ли за такое бан?) -В случае работы параллельно с парсером API?
Добавлен новый метод для управления заметкой аккаунта POST https://api.lzt.market/item_id/note-save параметр: text Идея lounya
Внимание всем пользователям API для загрузки аккаунтов: использование close_item в запросах на загрузку аккаунтов больше не поддерживается. Для коррекной работы необходимо использовать extra[close_item]: 1 или "extra": {"close_item": 1}. Использование close_item в запросе будет выдавать ошибку Изменение вступит в силу в 22:30 МСК.
Через Get Account получаю логин, но не пароль. Можно с помощью какого-нибудь метода пароль получить? (не меняя пароль на новый)
В extra для всех категорий появился новый параметр proxy, принимает ****** в следующем формате: http://user:pass@ip:port Используется для указания ****** без добавляения её в настройках, например если вы загружаете аккаунт с конкретной проксей с неизменяемым IP или страной Рекомендовано использовать именно proxy_id, а не новый параметр, так как это более корректный метод
Провели небольшие внутренние изменения в категории Steam: Касаемо поиска: параметры csgo_profile_rank_min и csgo_profile_rank_max переименованы в cs2_profile_rank_min и cs2_profile_rank_max соотвественно Касаемо параметров у аккаунтов: Переименованы: account_csgo_rank_id -> steam_cs2_rank_id steam_csgo_wingman_rank_id -> steam_cs2_wingman_rank_id steam_csgo_profile_rank -> steam_cs2_profile_rank account_country -> steam_country account_games -> steam_games account_full_games -> steam_full_games account_community_ban -> steam_community_ban account_balance -> steam_balance account_bans -> steam_bans steam_csgo_last_activity -> steam_cs2_last_activity steam_csgo_last_launched -> steam_cs2_last_launched steam_csgo_ban_date -> steam_cs2_ban_date steam_csgo_ban_type -> steam_cs2_ban_type steam_csgo_win_count -> steam_cs2_win_count steam_csgo_inv_value -> steam_cs2_inv_value steam_csgo_medals -> steam_cs2_medals В прочих заменена csgo на cs2 Удалено: last_update_time
Метод /{item_id}/guard-code удален из-за дублирования метода /{item_id}/mfa-code. Для продолжения получения кодов воспользуйтесь вторым методом.
OnlyLove, https://lzt-market.readme.io/reference/accountsmanaginggetemailcode This endpoint help you if your account is published on the market
Yooshyasha, Бро подскажи каким вообще запросом на эндпоинт, ты делаешь для получения кода авторизации telegram-?
Вопрос к пользователям, использующие апи для поиска аккаунтов с параметром parse_same_items=1, расскажите с какой целью вы смотрите массив sameItems, какие ключи вам там необходимы (можно приложить код). Информация нужна нам для решения проблемы с нехваткой памяти при отдачи ответа от сервера при поиске аккаунта.
RaysMorgan, лично мне нужны только история продавцов (ресался раньше или нет, трастовый ли первый селлер в случаи перепродажи) и отлега.
parse_same_items больше не поддерживается в API. Новый параметр parse_same_item_ids возвращает array<int> идентификаторов аккаунтов. { "errors": [ "`parse_same_items` is not supported now. Use `parse_same_item_ids` instead. Response will contains array of item ids (array<int>)" ], "system_info": { "visitor_id": 1, "time": 1739748710 } } JSON { "errors": [ "`parse_same_items` is not supported now. Use `parse_same_item_ids` instead. Response will contains array of item ids (array<int>)" ], "system_info": { "visitor_id": 1, "time": 1739748710 } } { // ... "item_id": 157051118, "item_state": "active", "category_id": 1, "resellItemId": 151459087, "sameItemsIds": [ 151459087, 157051118 ], "sameItemCount": 2, // ... } JSON { // ... "item_id": 157051118, "item_state": "active", "category_id": 1, "resellItemId": 151459087, "sameItemsIds": [ 151459087, 157051118 ], "sameItemCount": 2, // ... }
const { Client, GatewayIntentBits } = require('discord.js'); const axios = require('axios'); require('dotenv').config(); const client = new Client({ intents: [GatewayIntentBits.Guilds, GatewayIntentBits.GuildMessages, GatewayIntentBits.MessageContent] }); const DISCORD_TOKEN = process.env.DISCORD_TOKEN; const CHANNEL_ID = process.env.CHANNEL_ID; const CHECKER_URL = 'https://lzt.market/api/checkers/status'; // Replace with the correct API endpoint let checkerIsDown = false; client.once('ready', () => { console.log(`Logged in as ${client.user.tag}!`); monitorChecker(); setInterval(monitorChecker, 60000); // Check every 60 seconds }); async function monitorChecker() { try { const response = await axios.get(CHECKER_URL); if (response.data.status === 'online' && checkerIsDown) { checkerIsDown = false; notifyDiscord('✅ Checkers are back up!'); } else if (response.data.status === 'offline' && !checkerIsDown) { checkerIsDown = true; notifyDiscord('⚠ Checkers are down!'); } } catch (error) { console.error('Error fetching checker status:', error.message); } } async function notifyDiscord(message) { const channel = await client.channels.fetch(CHANNEL_ID); if (channel) { channel.send(message); } } client.login(DISCORD_TOKEN); Python const { Client, GatewayIntentBits } = require('discord.js'); const axios = require('axios'); require('dotenv').config(); const client = new Client({ intents: [GatewayIntentBits.Guilds, GatewayIntentBits.GuildMessages, GatewayIntentBits.MessageContent] }); const DISCORD_TOKEN = process.env.DISCORD_TOKEN; const CHANNEL_ID = process.env.CHANNEL_ID; const CHECKER_URL = 'https://lzt.market/api/checkers/status'; // Replace with the correct API endpoint let checkerIsDown = false; client.once('ready', () => { console.log(`Logged in as ${client.user.tag}!`); monitorChecker(); setInterval(monitorChecker, 60000); // Check every 60 seconds }); async function monitorChecker() { try { const response = await axios.get(CHECKER_URL); if (response.data.status === 'online' && checkerIsDown) { checkerIsDown = false; notifyDiscord('✅ Checkers are back up!'); } else if (response.data.status === 'offline' && !checkerIsDown) { checkerIsDown = true; notifyDiscord('⚠ Checkers are down!'); } } catch (error) { console.error('Error fetching checker status:', error.message); } } async function notifyDiscord(message) { const channel = await client.channels.fetch(CHANNEL_ID); if (channel) { channel.send(message); } } client.login(DISCORD_TOKEN); tis is what i have at the moment
import discord import aiohttp import asyncio import os from discord.ext import commands, tasks from dotenv import load_dotenv load_dotenv() DISCORD_TOKEN = os.getenv("DISCORD_TOKEN") CHANNEL_ID = int(os.getenv("CHANNEL_ID")) CHECKER_URL = "https://lzt.market/api/checkers/status" # Replace with the correct API endpoint intents = discord.Intents.default() client = commands.Bot(command_prefix="!", intents=intents) checker_is_down = False @client.event async def on_ready(): print(f"Logged in as {client.user}") monitor_checker.start() @tasks.loop(seconds=60) async def monitor_checker(): global checker_is_down async with aiohttp.ClientSession() as session: try: async with session.get(CHECKER_URL) as response: data = await response.json() if data.get("status") == "online" and checker_is_down: checker_is_down = False await notify_discord("✅ Checkers are back up!") elif data.get("status") == "offline" and not checker_is_down: checker_is_down = True await notify_discord("⚠ Checkers are down!") except Exception as e: print(f"Error fetching checker status: {e}") async def notify_discord(message): channel = client.get_channel(CHANNEL_ID) if channel: await channel.send(message) client.run(DISCORD_TOKEN) Python import discord import aiohttp import asyncio import os from discord.ext import commands, tasks from dotenv import load_dotenv load_dotenv() DISCORD_TOKEN = os.getenv("DISCORD_TOKEN") CHANNEL_ID = int(os.getenv("CHANNEL_ID")) CHECKER_URL = "https://lzt.market/api/checkers/status" # Replace with the correct API endpoint intents = discord.Intents.default() client = commands.Bot(command_prefix="!", intents=intents) checker_is_down = False @client.event async def on_ready(): print(f"Logged in as {client.user}") monitor_checker.start() @tasks.loop(seconds=60) async def monitor_checker(): global checker_is_down async with aiohttp.ClientSession() as session: try: async with session.get(CHECKER_URL) as response: data = await response.json() if data.get("status") == "online" and checker_is_down: checker_is_down = False await notify_discord("✅ Checkers are back up!") elif data.get("status") == "offline" and not checker_is_down: checker_is_down = True await notify_discord("⚠ Checkers are down!") except Exception as e: print(f"Error fetching checker status: {e}") async def notify_discord(message): channel = client.get_channel(CHANNEL_ID) if channel: await channel.send(message) client.run(DISCORD_TOKEN)
Появились два новых эндпоинта API: prod-api.lzt.market и prod-api.lolz.live ( prod-api.zelenka.guru) Это сделано с целью балансировки нагрузки на сервера, во избежании высокой нагрузки на основном сервере. Просьба заменить в своих проектах Base URI: api.lzt.market -> prod-api.lzt.market api.zelenka.guru -> prod-api.zelenka.guru В дальнейшем старые эндпоинты api.lzt.market и api.zelenka.guru перестанут работать
RaysMorgan, Смысл данного типа в апи если форумным функционалом такие розыгрыши создвать больше нельзя, а через апи если выбрать "by needed members" то ответ будет таким { "errors": [ "Пожалуйста, выберите тип розыгрыша." ]
Теперь временная почта получается в запросе на /item/add, а не через /goods/add. Метод /goods/add будет удален 15 мая. Будущие планы по изменению scopes, список будет таким: market - поиск аккаунтов, получение информации о аккаунте и т.д. read only операции (пока требует секретку, в будущем не будет) market:item - "безопасное" управление товарами, залив, редактирование заголовков, получение кодов с почт (не требует секретку) market:item:manage - "опасное" управление товарами, передача, одобрение скидок (требует секретку) market:p2p - P2P чтение ордеров и сделок, управление кошельком market:p2p:manage - P2P создание сделок и ордеров, добавление новых кошельков (требует секретку) market:payment - получение списка платежей (прошлый payment, пока требует секретку) market:payment:manage - переводы, покупка товаров, создание автоматических переводов (требует секретку) market:invoice - переименнованый invoice Пока что нету никаких сроков по введению этих скоупов, но мы обязательно уведомим заранее
где представлена актуальная информация о доступных endpoint-ах В ДОКУМЕНТАЦИИ? Мне нужен endpoint, на МОИ ПОКУПКИ в маркете через запрос API для последних покупок 1) endpoint или 2) endpoint недействителен? 1) "[ https://api.lzt.market/market/user/buys ]" 2) https://prod-api.lzt.market/user/purchases
Hello, I am considering buying access to the API, can you help me out for some things I didn't explicitly find in the docs: The fast-buy endpoint: https://lzt-market.readme.io/reference/purchasingfastbuy : 1. Does it take money from my account for purchase? 2. Is there any confirmation required to set up in my account settings to use it? 3. If no money in my account will it try to take from my card or some of my wallets for this transactions? 4. Can I use it to purchase my own listing? The user accounts endpoint: https://lzt-market.readme.io/reference/listuser : 1. Does it list all of my accounts that are currently for sale, if not, is there an endpoint to see my accounts that I have for sale? 2. Does it count for a search endpoint(for the 20 requests per minute rule)? Thank you in advance for the help.
venomrevenge, 1 Yup. 2 Nope, you just have to create a token with "market" scope, no any additional actions needed. 3 Nope, you will just get an err. 4 Nope, u will get an err 1 It shows all your accounts that you ever uploaded. There is a show parameter which can filter only selled/active/deleted/etc accounts. If you try to get another user accs, it will show only "active" ones 2 Nope We have a telegram group for api related questions, there you will get answer a lot quicker https://t.me/lztmarket_api
Вышла официальная библиотека для Go Пока что поддерживается только маркет https://github.com/ppdoew/lztapi