Estados Financieros

Estado de Resultados

import pandas as pd
import requests

API_KEY = 'api_key'

payload = {
   'key': API_KEY,
   'companies': ['EMPRESAS CMPC S.A.'],
   'type': 'EERR',
}
r = requests.post('https://dolphin.markets/api/financial-statements', json=payload)
df = pd.DataFrame(r.json())
print(df['company'].tolist())

Estado de Situación Financiera

Repetimos el código anterior, esta vez cambiando la variable type a ESF.

import pandas as pd
import requests

API_KEY = 'api_key'

payload = {
   'key': API_KEY,
   'companies': ['EMPRESAS CMPC S.A.'],
   'type': 'ESF',
}
r = requests.post('https://dolphin.markets/api/financial-statements', json=payload)
df = pd.DataFrame(r.json())
print(df['company'].tolist())

Estado de Flujo Efectivo

Y por último, el Estado de Flujo Efectivo lo podemos obtener cambiando ESF por EFE.

import pandas as pd
import requests

API_KEY = 'api_key'

payload = {
   'key': API_KEY,
   'companies': ['EMPRESAS CMPC S.A.'],
   'type': 'EFE',
}
r = requests.post('https://dolphin.markets/api/financial-statements', json=payload)
df = pd.DataFrame(r.json())
print(df['company'].tolist())

Listado de compañías disponibles

Si no estás seguro del nombre de una compañía o si quieres explorar todas las que que reportan a la CMF, tan solo al incorporar el signo ? dentro de la variable companies, la API te entrega el listado completo de empresas disponible en Dolphin Markets.

import pandas as pd
import requests

API_KEY = 'api_key'

payload = {
   'key': API_KEY,
   'companies': '?',
   'type': 'EERR',
}
r = requests.post('https://dolphin.markets/api/financial-statements', json=payload)
df = pd.DataFrame(r.json())
print(df['company'].tolist())

Obtener cuentas específicas

A modo de ejemplo, obtendremos la cuenta SBIF “Resultado de los propietarios” para algunos bancos, para luego agruparlos anualmente por institución bancaria.

import pandas as pd
import requests

API_KEY = 'api_key'

banks = {
   'BANCO DE CREDITO E INVERSIONES': 'BCI',
   'BANCO SANTANDER-CHILE': 'Santander',
   'BANCO DE CHILE': 'Chile',
   'ITAU CORPBANCA': 'Itaú',
}

payload = {
   "key": API_KEY,
   'companies': list(banks.keys()),
   'account': ['Resultado De Los Propietarios'],
}
r = requests.post('https://dolphin.markets/api/financial-statements', json=payload)
banks = pd.DataFrame(r.json())
banks['date'] = pd.to_datetime(banks['date'])

banks.company = banks.company.map(banks)

profit = banks.pivot_table(index='date', values='unit', columns='company', aggfunc='sum')
profit = profit.loc['2015':].resample('Y').sum().T
profit.columns = profit.columns.year
print(profit)

Obtener ratios financieros

import pandas as pd
import requests

API_KEY = 'api_key'

payload = {
   "key": API_KEY,
   'companies': ['EMPRESAS CMPC S.A.'],
   'ratios': ['net_debt_to_ebitda']
}
r = requests.post('https://dolphin.markets/api/ratios', json=payload)
df = pd.DataFrame(r.json())

Estados financieros de un período específico

import pandas as pd
import requests

API_KEY = 'api_key'

payload = {
   "key": API_KEY,
   'companies': ['EMPRESAS CMPC S.A.'],
   'type': 'ESF',
   'date': '2019-12-31',
}
r = requests.post('https://dolphin.markets/api/financial-statements', json=payload)

df = pd.DataFrame(r.json())
# si se requieren las cuentas en español (CMF)
df.pivot_table(index=['cmf_index', 'tag'], values='unit', columns='company')
# o en formato en inglés (IFRS)
df.pivot_table(index=['cmf_index', 'ifrs'], values='unit', columns='company')