Skip to main content

A Python Client SDK for the Linkup API

Project description

🚀 Linkup Python SDK

PyPI version License: MIT PyPI - Downloads Discord

A Python SDK for the Linkup API, allowing easy integration with Linkup's services. 🐍

🌟 Features

  • Simple and intuitive API client.
  • 🔍 Support all Linkup entrypoints and parameters.
  • Supports synchronous and asynchronous requests.
  • 🔒 Handles authentication and request management.

📦 Installation

Simply install the Linkup Python SDK as any Python package, for instance using pip:

pip install linkup-sdk

🛠️ Usage

Setting Up Your Environment

  1. 🔑 Obtain an API Key:

    Sign up on Linkup to get your API key.

  2. ⚙️ Set-up the API Key:

    Option 1: Export the LINKUP_API_KEY environment variable in your shell before using the Python SDK.

    export LINKUP_API_KEY='YOUR_LINKUP_API_KEY'
    

    Option 2: Set the LINKUP_API_KEY environment variable directly within Python, using for instance os.environ or python-dotenv with a .env file (python-dotenv needs to be installed separately in this case), before creating the Linkup Client.

    import os
    from linkup import LinkupClient
    
    os.environ["LINKUP_API_KEY"] = "YOUR_LINKUP_API_KEY"
    # or dotenv.load_dotenv()
    client = LinkupClient()
    ...
    

    Option 3: Pass the Linkup API key to the Linkup Client when creating it.

    from linkup import LinkupClient
    
    client = LinkupClient(api_key="YOUR_LINKUP_API_KEY")
    ...
    

📋 Examples

📝 Search

The search function can be used to performs web searches. It supports two very different complexity modes:

  • with depth="standard", the search will be straightforward and fast, suited for relatively simple queries (e.g. "What's the weather in Paris today?")
  • with depth="deep", the search will use an agentic workflow, which makes it in general slower, but it will be able to solve more complex queries (e.g. "What is the company profile of LangChain accross the last few years, and how does it compare to its concurrents?")

The search function also supports three output types:

  • with output_type="searchResults", the search will return a list of relevant documents
  • with output_type="sourcedAnswer", the search will return a concise answer with sources
  • with output_type="structured", the search will return a structured output according to a user-defined schema
from linkup import LinkupClient, LinkupSourcedAnswer
from typing import Any

client = LinkupClient()  # API key can be read from the environment variable or passed as an argument
search_response: Any = client.search(
    query="What are the 3 major events in the life of Abraham Lincoln?",
    depth="deep",  # "standard" or "deep"
    output_type="sourcedAnswer",  # "searchResults" or "sourcedAnswer" or "structured"
    structured_output_schema=None,  # must be filled if output_type is "structured"
)
assert isinstance(search_response, LinkupSourcedAnswer)
print(search_response.model_dump())
# Response:
# {
#   answer="The three major events in the life of Abraham Lincoln are: 1. ...",
#   sources=[
#     {
#       "name": "HISTORY",
#       "url": "https://www.history.com/topics/us-presidents/abraham-lincoln",
#       "snippet": "Abraham Lincoln - Facts & Summary - HISTORY ..."
#     },
#     ...
#   ]
# }

🪝 Fetch

The fetch function can be used to retrieve the content of a given web page in a cleaned up markdown format.

You can use the render_js flag to execute the JavaScript code of the page before returning the content, and ask to include_raw_html to the response if you feel like it.

from linkup import LinkupClient, LinkupFetchResponse

client = LinkupClient()  # API key can be read from the environment variable or passed as an argument
fetch_response: LinkupFetchResponse = client.fetch(
    url="https://docs.linkup.so",
    render_js=False,
    include_raw_html=True,
)
print(fetch_response.model_dump())
# Response:
# {
#   markdown="Get started for free, no credit card required...",
#   raw_html="<!DOCTYPE html><html lang=\"en\"><head>...</head><body>...</body></html>"
# }

📚 More Examples

See the examples/ directory for more examples and documentation, for instance on how to use Linkup entrypoints using asynchronous functions.

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

linkup_sdk-0.3.0.tar.gz (57.2 kB view details)

Uploaded Source

Built Distribution

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

linkup_sdk-0.3.0-py3-none-any.whl (9.7 kB view details)

Uploaded Python 3

File details

Details for the file linkup_sdk-0.3.0.tar.gz.

File metadata

  • Download URL: linkup_sdk-0.3.0.tar.gz
  • Upload date:
  • Size: 57.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for linkup_sdk-0.3.0.tar.gz
Algorithm Hash digest
SHA256 fb57e2c9be1e15951639ed380d9df6a77395127909a209abed79d9a9256dab43
MD5 24562e800ae86d322a17907431aae440
BLAKE2b-256 9ccc27b505182370946ea95acf791bc100dd03ce55c8d5f68790cab7267ed340

See more details on using hashes here.

Provenance

The following attestation bundles were made for linkup_sdk-0.3.0.tar.gz:

Publisher: release.yml on LinkupPlatform/linkup-python-sdk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file linkup_sdk-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: linkup_sdk-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 9.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for linkup_sdk-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 20e5fe2daa3f926fa8aec8641d10e62679a4528fd66dd163d532c50dd284a6f1
MD5 9e228c8bb3f0f4153fd4c00809f64ee8
BLAKE2b-256 0bdbc39c241b117ab8843d51d2c56958c90a04e017b63d6c035643aae5d84f9c

See more details on using hashes here.

Provenance

The following attestation bundles were made for linkup_sdk-0.3.0-py3-none-any.whl:

Publisher: release.yml on LinkupPlatform/linkup-python-sdk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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