MRKTAPI


NameMRKTAPI JSON
Version 1.0.3 PyPI version JSON
download
home_pagehttps://github.com/into-the-null/MRKTAPI
SummaryAPI library for MRKT app
upload_time2025-07-19 15:12:24
maintainerNone
docs_urlNone
authorinto-the-null
requires_python>=3.8
licenseMIT
keywords mrkt api library mrkt api telegram market
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # MRKTAPI

Библиотека для работы с Telegram Market API (MRKT) - платформой для торговли NFT подарками в Telegram.

## Описание

MRKTAPI предоставляет удобный Python интерфейс для взаимодействия с API платформы Telegram Market. Библиотека позволяет искать, покупать, продавать подарки, управлять балансом.

## Установка

```bash
pip install MRKTAPI
```

## Быстрый старт

### Получение токена

Для работы с API необходимо получить токен аутентификации:

```python
import asyncio
from MRKTAPI.auth import update_auth

async def get_token():
    
    # Используя api_id и api_hash
    token = await update_auth(
        api_id="YOUR_API_ID",
        api_hash="YOUR_API_HASH"
    )
    
    return token

    # Получаем токен
    token = asyncio.run(get_token())
    print(f"Токен получен: {token}")
```

### Основные операции

```python
import asyncio
from MRKTAPI import search, getBalance, buy, sale, getMyGifts

async def main():
    auth_data = "YOUR_TOKEN"
    
    # Получаем баланс
    balance = await getBalance(authData=auth_data)
    print(f"Баланс: {balance.hard} TON")
    
    # Ищем подарки
    gifts = await search(
        authData=auth_data,
        count=10,
        min_price=1.0,  # в TON
        max_price=10.0
    )
    
    for gift in gifts:
        print(f"Подарок: {gift.name}, Цена: {gift.price} TON")
    
    # Покупаем подарок
    if gifts:
        result = await buy(
            nft_id=gifts[0].id,
            price=gifts[0].price_nano,  # цена в нанотонах
            authData=auth_data
        )
        print("Покупка успешна!")
    
    # Получаем свои подарки
    my_gifts = await getMyGifts(authData=auth_data)
    print(f"У вас {len(my_gifts)} подарков")

asyncio.run(main())
```

## Основные функции

### Аутентификация
- `update_auth()` - получение токена для работы с API

### Баланс и торговля
- `getBalance(authData)` - получение баланса аккаунта
- `search(authData, **filters)` - поиск подарков на маркетплейсе
- `buy(nft_id, price, authData)` - покупка подарка
- `sale(nft_id, price, authData)` - выставление подарка на продажу
- `cancel(nft_ids, authData)` - отмена продажи подарков

### Управление подарками
- `getMyGifts(authData, **filters)` - получение списка своих подарков
- `giftsFloors(authData)` - получение минимальных цен коллекций
- `modelFloors(collection_name, authData)` - получение минимальных цен моделей

### Гивевеи
- `getGiveaways(giveaway_type, count, authData)` - получение списка гивевеев

### Утилиты
- `nanoToNormal(nano)` - конвертация нанотонов в TON
- `convertToNano(ton)` - конвертация TON в нанотоны
- `toShortName(name)` - сокращение названий
- `rarityPerMilleToPercent(per_mille)` - конвертация редкости

## Примеры использования

### Поиск подарков с фильтрами

```python
gifts = await search(
    authData=auth_data,
    count=20,
    collection_names=["Lol Pop"],
    model_names=["Satellite"],
    ordering="Price",
    low_to_high=True
)
```


### Получение минимальных цен

```python
# Минимальные цены всех коллекций
floors = await giftsFloors(auth_data)
print(f"Минимальная цена Collection1: {floors.floors['Collection1']} TON")

# Минимальные цены моделей в коллекции
model_floors = await modelFloors("Collection1", auth_data)
for model in model_floors.models:
    print(f"{model.name}: {model.floor_price} TON")
```


## Структуры данных

### MRKTGift
Объект подарка с полями:
- `id` - уникальный идентификатор
- `name` - название подарка
- `price` - цена в TON
- `price_nano` - цена в нанотонах
- `collection_name` - название коллекции
- `model_name` - название модели
- `backdrop_name` - название фона
- `symbol_name` - название символа
- `is_mintable` - можно ли минтить
- `is_new` - новый ли подарок

### MRKTBalance
Объект баланса с полями:
- `hard` - баланс в TON
- `hard_nano` - баланс в нанотонах


## Требования

- Python 3.8+
- asyncio
- curl_cffi
- Kurigram


## Поддержка

При возникновении проблем создавайте issue в репозитории проекта.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/into-the-null/MRKTAPI",
    "name": "MRKTAPI",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "MRKT API library, MRKT API, Telegram Market",
    "author": "into-the-null",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/84/7c/a0972391f85692ae54f0c35022ea18d4008e3fdf4294459752a4fdaf7de7/mrktapi-1.0.3.tar.gz",
    "platform": null,
    "description": "# MRKTAPI\r\n\r\n\u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 Telegram Market API (MRKT) - \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u043e\u0439 \u0434\u043b\u044f \u0442\u043e\u0440\u0433\u043e\u0432\u043b\u0438 NFT \u043f\u043e\u0434\u0430\u0440\u043a\u0430\u043c\u0438 \u0432 Telegram.\r\n\r\n## \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\r\n\r\nMRKTAPI \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0443\u0434\u043e\u0431\u043d\u044b\u0439 Python \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0434\u043b\u044f \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0441 API \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b Telegram Market. \u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u0441\u043a\u0430\u0442\u044c, \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u044c, \u043f\u0440\u043e\u0434\u0430\u0432\u0430\u0442\u044c \u043f\u043e\u0434\u0430\u0440\u043a\u0438, \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0431\u0430\u043b\u0430\u043d\u0441\u043e\u043c.\r\n\r\n## \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430\r\n\r\n```bash\r\npip install MRKTAPI\r\n```\r\n\r\n## \u0411\u044b\u0441\u0442\u0440\u044b\u0439 \u0441\u0442\u0430\u0440\u0442\r\n\r\n### \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0442\u043e\u043a\u0435\u043d\u0430\r\n\r\n\u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 API \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0442\u043e\u043a\u0435\u043d \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438:\r\n\r\n```python\r\nimport asyncio\r\nfrom MRKTAPI.auth import update_auth\r\n\r\nasync def get_token():\r\n    \r\n    # \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f api_id \u0438 api_hash\r\n    token = await update_auth(\r\n        api_id=\"YOUR_API_ID\",\r\n        api_hash=\"YOUR_API_HASH\"\r\n    )\r\n    \r\n    return token\r\n\r\n    # \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0442\u043e\u043a\u0435\u043d\r\n    token = asyncio.run(get_token())\r\n    print(f\"\u0422\u043e\u043a\u0435\u043d \u043f\u043e\u043b\u0443\u0447\u0435\u043d: {token}\")\r\n```\r\n\r\n### \u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438\r\n\r\n```python\r\nimport asyncio\r\nfrom MRKTAPI import search, getBalance, buy, sale, getMyGifts\r\n\r\nasync def main():\r\n    auth_data = \"YOUR_TOKEN\"\r\n    \r\n    # \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0431\u0430\u043b\u0430\u043d\u0441\r\n    balance = await getBalance(authData=auth_data)\r\n    print(f\"\u0411\u0430\u043b\u0430\u043d\u0441: {balance.hard} TON\")\r\n    \r\n    # \u0418\u0449\u0435\u043c \u043f\u043e\u0434\u0430\u0440\u043a\u0438\r\n    gifts = await search(\r\n        authData=auth_data,\r\n        count=10,\r\n        min_price=1.0,  # \u0432 TON\r\n        max_price=10.0\r\n    )\r\n    \r\n    for gift in gifts:\r\n        print(f\"\u041f\u043e\u0434\u0430\u0440\u043e\u043a: {gift.name}, \u0426\u0435\u043d\u0430: {gift.price} TON\")\r\n    \r\n    # \u041f\u043e\u043a\u0443\u043f\u0430\u0435\u043c \u043f\u043e\u0434\u0430\u0440\u043e\u043a\r\n    if gifts:\r\n        result = await buy(\r\n            nft_id=gifts[0].id,\r\n            price=gifts[0].price_nano,  # \u0446\u0435\u043d\u0430 \u0432 \u043d\u0430\u043d\u043e\u0442\u043e\u043d\u0430\u0445\r\n            authData=auth_data\r\n        )\r\n        print(\"\u041f\u043e\u043a\u0443\u043f\u043a\u0430 \u0443\u0441\u043f\u0435\u0448\u043d\u0430!\")\r\n    \r\n    # \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441\u0432\u043e\u0438 \u043f\u043e\u0434\u0430\u0440\u043a\u0438\r\n    my_gifts = await getMyGifts(authData=auth_data)\r\n    print(f\"\u0423 \u0432\u0430\u0441 {len(my_gifts)} \u043f\u043e\u0434\u0430\u0440\u043a\u043e\u0432\")\r\n\r\nasyncio.run(main())\r\n```\r\n\r\n## \u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438\r\n\r\n### \u0410\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f\r\n- `update_auth()` - \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0442\u043e\u043a\u0435\u043d\u0430 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 API\r\n\r\n### \u0411\u0430\u043b\u0430\u043d\u0441 \u0438 \u0442\u043e\u0440\u0433\u043e\u0432\u043b\u044f\r\n- `getBalance(authData)` - \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0431\u0430\u043b\u0430\u043d\u0441\u0430 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430\r\n- `search(authData, **filters)` - \u043f\u043e\u0438\u0441\u043a \u043f\u043e\u0434\u0430\u0440\u043a\u043e\u0432 \u043d\u0430 \u043c\u0430\u0440\u043a\u0435\u0442\u043f\u043b\u0435\u0439\u0441\u0435\r\n- `buy(nft_id, price, authData)` - \u043f\u043e\u043a\u0443\u043f\u043a\u0430 \u043f\u043e\u0434\u0430\u0440\u043a\u0430\r\n- `sale(nft_id, price, authData)` - \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u0434\u0430\u0440\u043a\u0430 \u043d\u0430 \u043f\u0440\u043e\u0434\u0430\u0436\u0443\r\n- `cancel(nft_ids, authData)` - \u043e\u0442\u043c\u0435\u043d\u0430 \u043f\u0440\u043e\u0434\u0430\u0436\u0438 \u043f\u043e\u0434\u0430\u0440\u043a\u043e\u0432\r\n\r\n### \u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u0434\u0430\u0440\u043a\u0430\u043c\u0438\r\n- `getMyGifts(authData, **filters)` - \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0441\u043f\u0438\u0441\u043a\u0430 \u0441\u0432\u043e\u0438\u0445 \u043f\u043e\u0434\u0430\u0440\u043a\u043e\u0432\r\n- `giftsFloors(authData)` - \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0445 \u0446\u0435\u043d \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439\r\n- `modelFloors(collection_name, authData)` - \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0445 \u0446\u0435\u043d \u043c\u043e\u0434\u0435\u043b\u0435\u0439\r\n\r\n### \u0413\u0438\u0432\u0435\u0432\u0435\u0438\r\n- `getGiveaways(giveaway_type, count, authData)` - \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0441\u043f\u0438\u0441\u043a\u0430 \u0433\u0438\u0432\u0435\u0432\u0435\u0435\u0432\r\n\r\n### \u0423\u0442\u0438\u043b\u0438\u0442\u044b\r\n- `nanoToNormal(nano)` - \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0430\u0446\u0438\u044f \u043d\u0430\u043d\u043e\u0442\u043e\u043d\u043e\u0432 \u0432 TON\r\n- `convertToNano(ton)` - \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0430\u0446\u0438\u044f TON \u0432 \u043d\u0430\u043d\u043e\u0442\u043e\u043d\u044b\r\n- `toShortName(name)` - \u0441\u043e\u043a\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0439\r\n- `rarityPerMilleToPercent(per_mille)` - \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0430\u0446\u0438\u044f \u0440\u0435\u0434\u043a\u043e\u0441\u0442\u0438\r\n\r\n## \u041f\u0440\u0438\u043c\u0435\u0440\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f\r\n\r\n### \u041f\u043e\u0438\u0441\u043a \u043f\u043e\u0434\u0430\u0440\u043a\u043e\u0432 \u0441 \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u043c\u0438\r\n\r\n```python\r\ngifts = await search(\r\n    authData=auth_data,\r\n    count=20,\r\n    collection_names=[\"Lol Pop\"],\r\n    model_names=[\"Satellite\"],\r\n    ordering=\"Price\",\r\n    low_to_high=True\r\n)\r\n```\r\n\r\n\r\n### \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0445 \u0446\u0435\u043d\r\n\r\n```python\r\n# \u041c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0435 \u0446\u0435\u043d\u044b \u0432\u0441\u0435\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439\r\nfloors = await giftsFloors(auth_data)\r\nprint(f\"\u041c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0446\u0435\u043d\u0430 Collection1: {floors.floors['Collection1']} TON\")\r\n\r\n# \u041c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0435 \u0446\u0435\u043d\u044b \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u0432 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438\r\nmodel_floors = await modelFloors(\"Collection1\", auth_data)\r\nfor model in model_floors.models:\r\n    print(f\"{model.name}: {model.floor_price} TON\")\r\n```\r\n\r\n\r\n## \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0434\u0430\u043d\u043d\u044b\u0445\r\n\r\n### MRKTGift\r\n\u041e\u0431\u044a\u0435\u043a\u0442 \u043f\u043e\u0434\u0430\u0440\u043a\u0430 \u0441 \u043f\u043e\u043b\u044f\u043c\u0438:\r\n- `id` - \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\r\n- `name` - \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u0434\u0430\u0440\u043a\u0430\r\n- `price` - \u0446\u0435\u043d\u0430 \u0432 TON\r\n- `price_nano` - \u0446\u0435\u043d\u0430 \u0432 \u043d\u0430\u043d\u043e\u0442\u043e\u043d\u0430\u0445\r\n- `collection_name` - \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438\r\n- `model_name` - \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043c\u043e\u0434\u0435\u043b\u0438\r\n- `backdrop_name` - \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0444\u043e\u043d\u0430\r\n- `symbol_name` - \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u0430\r\n- `is_mintable` - \u043c\u043e\u0436\u043d\u043e \u043b\u0438 \u043c\u0438\u043d\u0442\u0438\u0442\u044c\r\n- `is_new` - \u043d\u043e\u0432\u044b\u0439 \u043b\u0438 \u043f\u043e\u0434\u0430\u0440\u043e\u043a\r\n\r\n### MRKTBalance\r\n\u041e\u0431\u044a\u0435\u043a\u0442 \u0431\u0430\u043b\u0430\u043d\u0441\u0430 \u0441 \u043f\u043e\u043b\u044f\u043c\u0438:\r\n- `hard` - \u0431\u0430\u043b\u0430\u043d\u0441 \u0432 TON\r\n- `hard_nano` - \u0431\u0430\u043b\u0430\u043d\u0441 \u0432 \u043d\u0430\u043d\u043e\u0442\u043e\u043d\u0430\u0445\r\n\r\n\r\n## \u0422\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f\r\n\r\n- Python 3.8+\r\n- asyncio\r\n- curl_cffi\r\n- Kurigram\r\n\r\n\r\n## \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430\r\n\r\n\u041f\u0440\u0438 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0439\u0442\u0435 issue \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430.\r\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "API library for MRKT app",
    "version": "1.0.3",
    "project_urls": {
        "Homepage": "https://github.com/into-the-null/MRKTAPI",
        "Issues": "https://github.com/into-the-null/MRKTAPI/issues",
        "Repository": "https://github.com/into-the-null/MRKTAPI"
    },
    "split_keywords": [
        "mrkt api library",
        " mrkt api",
        " telegram market"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "931be517c6383c33e2a082500c7f9dae9484f68266c88cee8f769250ff0c23fb",
                "md5": "6eff958ff1d57e0021f8de0f65a51c9d",
                "sha256": "20a1ee31ca59406858802390214de3bb0a3df752c06cbf19a867323f77430162"
            },
            "downloads": -1,
            "filename": "mrktapi-1.0.3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "6eff958ff1d57e0021f8de0f65a51c9d",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 18985,
            "upload_time": "2025-07-19T15:12:23",
            "upload_time_iso_8601": "2025-07-19T15:12:23.378110Z",
            "url": "https://files.pythonhosted.org/packages/93/1b/e517c6383c33e2a082500c7f9dae9484f68266c88cee8f769250ff0c23fb/mrktapi-1.0.3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "847ca0972391f85692ae54f0c35022ea18d4008e3fdf4294459752a4fdaf7de7",
                "md5": "9a6b3b38e0fff3590455f6aa036bd3c4",
                "sha256": "196503694e40ae99a66d303fb8dfcca6e2c9c3229d412a15fb2e83634031ae4d"
            },
            "downloads": -1,
            "filename": "mrktapi-1.0.3.tar.gz",
            "has_sig": false,
            "md5_digest": "9a6b3b38e0fff3590455f6aa036bd3c4",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 13017,
            "upload_time": "2025-07-19T15:12:24",
            "upload_time_iso_8601": "2025-07-19T15:12:24.925536Z",
            "url": "https://files.pythonhosted.org/packages/84/7c/a0972391f85692ae54f0c35022ea18d4008e3fdf4294459752a4fdaf7de7/mrktapi-1.0.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-19 15:12:24",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "into-the-null",
    "github_project": "MRKTAPI",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "mrktapi"
}
        
Elapsed time: 0.58133s