@brielov/mercadolibre

Mercadolibre SDK module for integration

Usage no npm install needed!

<script type="module">
  import brielovMercadolibre from 'https://cdn.skypack.dev/@brielov/mercadolibre';
</script>

README

MercadoLibre

MercadoLibre SDK for Node.js (That doesn't suck)

Install

npm install @brielov/mercadolibre

Or

yarn add @brielov/mercadolibre

Use

require:

import { Meli } from '@brielov/mercadolibre'

Or

const { Meli } = require('@brielov/mercadolibre');

Constructor:

const client_id = process.env.MELI_CLIENT_ID;
const client_secret = process.env.MELI_CLIENT_SECRET;
const redirect_uri = process.env.MELI_REDIRECT_URI;

const meli = new Meli({
    client_id: number,
    client_secret: string,
    redirect_uri: string,
    access_token: string,
    refresh_token: string,
});

authorize

const credentials = await meli.authorize(code: string);

refreshAccessToken

const credentials = await meli.refreshAccessToken();

Request methods

get

const response = await meli.get(path: string, params?: object);
Examples
//Get categories from mercado libre argentina
const categories = await meli.get('sites/MLA/categories');

[
    { id: 'MLA5725', name: 'Accesorios para Vehículos' },
    { id: 'MLA1071', name: 'Animales y Mascotas' },
    { id: 'MLA1367', name: 'Antigüedades' },
    { id: 'MLA1368', name: 'Arte y Artesanías' },
    { id: 'MLA1743', name: 'Autos, Motos y Otros' },
    { id: 'MLA1384', name: 'Bebés' },
]

//Get users with ids 145925943 and 145925951
const users = await meli.get('users', {
    ids: [145925943, 145925951]
});

[
    {
        id: 145925943,
        nickname: 'TETE2780570',
        registration_date: '2013-09-17T14:20:30.000-04:00',
        country_id: 'AR',
        address: { state: 'AR-C', city: 'Palermo' },
        user_type: 'normal',
        tags: [ 'normal', 'test_user', 'user_info_verified' ],
        logo: null,
        points: 100,
        site_id: 'MLA',
        permalink: 'http://perfil.mercadolibre.com.ar/TETE2780570',
        seller_reputation:
         { level_id: null,
           power_seller_status: null,
           transactions: [Object] },
        buyer_reputation: { tags: [] },
        status: { site_status: 'deactive' }
    },
    {
        id: 145925951,
        nickname: 'TETE1341752',
        registration_date: '2013-09-17T14:20:43.000-04:00',
        country_id: 'AR',
        address: { state: 'AR-C', city: 'Palermo' },
        user_type: 'normal',
        tags: [ 'normal', 'test_user', 'user_info_verified' ],
        logo: null,
        points: 100,
        site_id: 'MLA',
        permalink: 'http://perfil.mercadolibre.com.ar/TETE1341752',
        seller_reputation:
         { level_id: null,
           power_seller_status: null,
           transactions: [Object] },
        buyer_reputation: { tags: [] },
        status: { site_status: 'deactive' }
    }
]

post

const response = await meli.post(path: string, body?: object, params?: object);

upload (post with multipart)

const response = await meli.upload(path: string, body: File | Blob | Buffer, params?: object);

put

const response = await meli.put(path: string, body?: object, params?: object);

delete

const response = await meli.delete(path: string, params?: object);

Details necessary

The object passed in the params parameter in functions get, post, put and delete is automatically converted to a query string.

Example:

meli.get('/users/', { ids: [77169310, 1231233] });

The request is GET ​​to the following address:

https://api.mercadolibre.com/users/?ids=77169310,1231233