Artsy API: Datos para entender el arte

Artsy API: Datos para entender el arte

Artsy es una empresa de corretaje de arte en línea con sede en Nueva York. Su página web le da servicio a numerosas galerías, museos y colecciones privadas en el mundo.

Como muchas otras páginas, Artsy API (Application Programming Interface o Interfaz de Programación de Aplicación) permite el fácil acceso a su base de datos.

Supongamos que queremos vender una obra de arte de nuestro bisabuelo, ¿dónde será mejor venderla para maximizar su precio de venta?, ¿en cuánto se venden obras de artistas similares?, ¿en qué momento del año es el mejor momento de vender? Preguntas de este tipo las podemos contestar mediante esta API.

El API de Artsy es sencillo de utilizar y accesible. Solo hay que registrarse para obtener una API key con la que podremos hacer requests utilizando las llamadas REST (REpresentational State Transfer).

En el presente artículo explicaré paso a paso cómo obtener datos de la API con Curl y Python.

Empecemos por crear una cuenta de desarrollador en la página de Artsy:

Crea y nombra tu app (¡no necesitas agregar redirect urls!), con lo que automáticamente te darán el Client ID. Al darle clic en edit veremos también el Client Secret. Estos dos campos son los más importantes para obtener tu token para consultas.

En la página Public API Documentation -> General -> Getting Started igualmente verás los datos de tu API y en el punto 4 te dirán cómo obtener el token.

Abre terminal o el command prompt en Windows (necesitas haber instalado Curl previamente) y copia y pega el link:

⚠️
Nota: Ten cuidado y no compartas los datos de tu API en público. Esta API la creé para este artículo y la borré terminando de escribirlo para brindarte un ejemplo de cómo luce.



Hasta abajo de la respuesta se lee: xapptoken, token: XXXX hasta donde dice expires_at.

Copia y pega el token en tu notebook en Python para tenerlo guardado, el cual  expirará en la fecha anunciada.

Para hacer consultas, necesitaremos conseguir un endpoint, el cual dependerá de los datos que queramos consultar. Todos los endpoints disponibles están en la documentación de Artsy.

Empecemos cargando las librerías que vamos a utilizar:

import numpy as np

import pandas as pd

import json

import os

import requests

⚠️
Nota: Necesitas tener una versión de Pandas superior a la 16 para utilizar este código.


Con print(pd.__version__) puedes verificar tu versión de Pandas.

Consultemos como ejemplo los datos de las ventas:

API_KEY = os.getenv("ARTSY_API_KEY")

headers = {

"X-XAPP-Token": "TU_TOKEN"

}

sales_endpoint = "https://api.artsy.net/api/sales?"

sales_response = requests.get(sales_endpoint, headers=headers)


El json de respuesta contiene tres campos. Dentro del campo ‘_embedded’ es donde encuentras los datos que te interesan para la base de datos. Convirtamos la consulta de json en un Pandas Data Frame y extraigamos los campos dentro de embedded y sales.

if sales_response.status_code== 200:

data = sales_response.json()

sales = data['_embedded']['sales']

auctionsData=pd.DataFrame(sales)

else:

raise Exception('Failed to get data from the API')

Esto nos dará un Data Frame:


Veamos cómo se ve la data en json para entender esto mejor: