Skip to main content

Python SDK for the Alternative Macro Signals API

Project description

AMS-SDK

Python Version License

ams-sdk is a wrapper around ams-api and handles the authentification and query process in just a few steps.

Please refer to AMS API documentation for a detailed description of the API endpoints, including parameters specification.


Features ✨

  • Easy Queries: Query from all AMS API endpoints in two lines of Python code

  • Authentication: SDK takes care of the full authentication process, with just your API key required (given by AMS)


Installation 🛠️

From PyPI (recommended):

pip install ams-sdk

Alternatively, directly from repo:

pip install git+https://github.com/alternative-macro-signals/ams-sdk.git

Requirements 📋

The following dependencies are necessary to use this SDK:

  • Python 3.7 or higher (likely to work with 3+ but not tested)
  • requests>=2.0.0 (installed automatically if needed)

Usage 📖

Initialization

First, initialize the AMSClient with the service URL and API key provided by AMS.

from ams_sdk.client import AMSClient
client = AMSClient(service_url=SERVICE_URL, api_key=API_KEY)

Authentication

Call the authenticate() method to fetch the bearer token required for further requests:

client.authenticate()

Querying Endpoints

Use the query_endpoint method to query specific AMS API endpoints:

result = client.query_endpoint("/nbstat", params={
 "location": "Japan",
 "txt": "rice",
 "start": "2023-01-01",
 "end": "2025-06-01"
})
print(result)
result = client.query_endpoint("/nipi", params={
 "location": "China",
 "sector": "Food",
})
print(result)

Note: see /nbstat and /nipi endpoints documentations for accepted parameters details.

Output

Transform the /nbstat or /nipi output in a Pandas dataframe:

import pandas as pd
df = pd.DataFrame(result.get('content'))
df['date'] = pd.to_datetime(df['date'])
df = df.set_index('date')
df.sort_index(inplace=True)

In order to get 7-day and 30-day rolling balances from /nbstat (similar to the NewsBot app):

df7 = df.rolling(7).mean()
df30 = df.rolling(30).mean()

Note: NIPI is already a 30-day rolling diffusion index.


API endpoints callable from AMSClient 🌐

/nbstat API Status

Retrieve Inflation News Balance and News Volumes associated with specific text queries.

/nipi API Status

Download NIPI data.


We welcome suggestions! 💡

📧: support@alternativemacrosignals.com


Project Structure 📂

  • client.py: Contains the AMSClient class which offers the core functionality for interacting with the API.
  • utils.py: AMSClient usage examples.
  • setup.py: Handles package configuration and installation details.
  • README.md: Documentation for the ams-sdk.

License 📜

This project is licensed under the MIT License. See the LICENSE file for details.


Author


© 2025 Alternative Macro Signals. All rights reserved. https://alt.ms Alternative Macro Signals Logo

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ams_sdk-1.0.7.tar.gz (7.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ams_sdk-1.0.7-py2.py3-none-any.whl (5.3 kB view details)

Uploaded Python 2Python 3

File details

Details for the file ams_sdk-1.0.7.tar.gz.

File metadata

  • Download URL: ams_sdk-1.0.7.tar.gz
  • Upload date:
  • Size: 7.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.12

File hashes

Hashes for ams_sdk-1.0.7.tar.gz
Algorithm Hash digest
SHA256 b9b8daed88ea21dca4ee6241b364fdd38c715cf3b3b20c07913fa3df920c9fa2
MD5 2f5fc18e598198cdf5959fa79b8f46c5
BLAKE2b-256 f4b2ea76ea3cb637139867d3881f7e52a9e09f9da9dc21156c883a1ea1288c43

See more details on using hashes here.

File details

Details for the file ams_sdk-1.0.7-py2.py3-none-any.whl.

File metadata

  • Download URL: ams_sdk-1.0.7-py2.py3-none-any.whl
  • Upload date:
  • Size: 5.3 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.12

File hashes

Hashes for ams_sdk-1.0.7-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 4f258523b98876f1c54956feedb77e1be559d18ecd13fca0bdb3b4a77fc038fa
MD5 4de7c6d084780a98f410683766d3a99b
BLAKE2b-256 4511753e34f208811fcf6a07b7777545a85959262814764e450de747c34bca43

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page