Skip to main content

tapline

Use tapline to collect live data from YouTube, Airbnb, GMGN, GeckoTerminal, GoPlus Security, Pons Family, Twitter (X), and Pinterest in Python.

PyPI Python License

What you can do

Service Use it to Full guide
YouTube Get transcripts, search videos, read video and channel details, list playlists, collect comments, inspect formats, and read replay heatmaps YouTube guide
Airbnb Find locations and listings, check prices and availability, and read listing details and reviews Airbnb guide
GMGN Find tokens, check security and market data, inspect holders and traders, and analyze wallets GMGN guide
GeckoTerminal Find pools, read candlesticks and swaps, inspect holders and traders, and follow market trends GeckoTerminal guide
GoPlus Security Check EVM and Tron tokens and Solana mints for honeypots, taxes, owner and mint powers, holders, and liquidity GoPlus guide
Pons Family Browse and search launches, read token markets, trades and holders, follow wallets and creator fees, and read the memestock forum Pons Family guide
Twitter (X) Read public X profiles with their pinned and newest posts, single posts with media, quotes and top replies, and X Communities Twitter guide
Pinterest Search pins, read one pin with every image size, its video and idea-pin pages, list a user's boards, and read the pins on a board Pinterest guide

One API key and credit balance work across all eight services.

Get started

Create a Tapline account and create an API key on the API keys page.

Install the package and save your key in TAPLINE_API_KEY:

pip install tapline
export TAPLINE_API_KEY="your-api-key"

Pass a key from your environment or secret manager as api_key= when you create either the blocking or async client:

import os

from tapline import SyncTaplineClient, TaplineClient

api_key = os.environ["TAPLINE_API_KEY"]
sync_tapline = SyncTaplineClient(api_key=api_key)
async_tapline = TaplineClient(api_key=api_key)

If you omit api_key, both clients read TAPLINE_API_KEY. Python 3.10 or newer is required.

Get a transcript

import os

from tapline import SyncTaplineClient

with SyncTaplineClient(api_key=os.environ["TAPLINE_API_KEY"]) as tapline:
    subtitles = tapline.youtube.subtitles(
        "https://www.youtube.com/watch?v=jNQXAC9IVRw",
        language="en",
        subtitle_format="txt",
    )

print(subtitles.transcript)

See the YouTube guide for search, metadata, channels, playlists, comments, formats, and replay heatmaps.

Search Airbnb listings

from tapline import SyncTaplineClient

with SyncTaplineClient() as tapline:
    places = tapline.airbnb.search_locations(query="London")
    place_id = places.suggestions[0].place_id
    if place_id is None:
        raise RuntimeError("Airbnb returned a location without a place_id")
    results = tapline.airbnb.search(
        place_id=place_id,
        adults=2,
    )

for listing in results.listings:
    print(listing.room_id, listing.name)

Listing IDs can stop resolving when a host removes a property. See the Airbnb guide for prices, availability, details, reviews, and search filters.

Search GMGN token data

from tapline import SyncTaplineClient

with SyncTaplineClient() as tapline:
    results = tapline.gmgn.search("sol", q="bonk")

for token in results.data.coins[:5]:
    print(token.symbol, token.address)

See the GMGN guide for discovery, rankings, security, candles, holders, traders, liquidity, and wallet analytics.

Discover GeckoTerminal pools

from tapline import SyncTaplineClient

with SyncTaplineClient() as tapline:
    pools = tapline.geckoterminal.network_latest_pools("solana")

for pool in pools.data[:5]:
    print(pool.attributes.address, pool.attributes.name)

See the GeckoTerminal guide for pool, token, trend, and developer history data.

Check token security with GoPlus

from tapline import SyncTaplineClient

address = "0x6982508145454ce325ddbe47a25d4ec3d2311933"

with SyncTaplineClient() as tapline:
    security = tapline.goplus.get_evm_token_security("1", address)

token = (security.result or {}).get(address)
if token is None:
    print("GoPlus has no token at this address on this chain")
else:
    print(token.token_symbol, token.is_honeypot, token.buy_tax, token.sell_tax)

The first argument, chain_id, takes any of the 43 EVM chains GoPlus supports, such as "56" for BNB Chain or "42161" for Arbitrum. result is empty when GoPlus has no token at that address on that chain. Each call costs 3 credits, even one that comes back empty. "" means GoPlus does not know a value, so do not read it as zero. See the GoPlus guide for Solana mints, Tron tokens, and how to read the response.

Browse Pons Family launches

from tapline import SyncTaplineClient

with SyncTaplineClient() as tapline:
    board = tapline.ponsfamily.list_launches(sort="volume", page_size=5)

active = board.active.items if board.active else None
for launch in active or []:
    print(launch.symbol, launch.token, launch.marketCapUsd)

See the Pons Family guide for token markets, charts, holders, wallets, creator fees, and the memestock forum.

Go beyond the free tier

Your free account starts with 500 credits and can use every live endpoint. When you need more credits or higher rate limits, choose a paid plan under Billing. Your API key and code stay the same.

Async client

Every service method has the same name and arguments on TaplineClient; only the call becomes awaitable.

import asyncio

from tapline import TaplineClient


async def main() -> None:
    async with TaplineClient() as tapline:
        metadata = await tapline.youtube.metadata("dQw4w9WgXcQ")
        print(metadata.title)


asyncio.run(main())

Handle errors

Failed requests raise an APIStatusError. Use its status, error code, and request ID to decide what to do or to contact support.

from tapline import APIStatusError, SyncTaplineClient

try:
    with SyncTaplineClient() as tapline:
        tapline.youtube.metadata("not-a-video")
except APIStatusError as error:
    print(error.status_code, error.code, error.request_id)

Authentication, credit, rate-limit, timeout, and connection failures also have their own exception classes. The client retries temporary network and server failures.

Full API reference

Use the Tapline API reference to check inputs, response fields, and the credit cost of each call.

License

MIT

Metadata

Release files for tapline 0.2.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tapline 0.2.6
File Size Uploaded Provenance
tapline-0.2.6.tar.gz 258.1 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for tapline 0.2.6
File Interpreter ABI Platform
tapline-0.2.6-py3-none-any.whl Python 3 none any Details

Total release size: 427.6 kB

Release files / tapline-0.2.6.tar.gz

Download URL tapline-0.2.6.tar.gz
Size 258.1 kB
Tags Source
SHA-256 checksum
How to use checksums
f8eff3531f443e2e49bc1876a0cbf25f006bca78039091785c38c0618c9051ec
BLAKE2b-256 checksum
How to use checksums
d77d98f9ee185d01bc81cb68294dacf1866300b7b8b8d5822d229075c8bca37f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.

Transparency log

Release files / tapline-0.2.6-py3-none-any.whl

Download URL tapline-0.2.6-py3-none-any.whl
Size 169.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
897e2cec134605ffebf49287a71dfb293dc492ad4f6be51eba91dc231f3bd2c9
BLAKE2b-256 checksum
How to use checksums
5ad7287c1bc678d8ff38787d2e262e034b26c1a3badcad1ebd04d08e29e53fdd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.

Transparency log

Security for tapline 0.2.6

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for tapline-0.2.6.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page