Skip to main content

Salesforce REST API client

Project description

⚡ aiosalesforce ⚡

Asynchronous Python client for Salesforce APIs

Test Coverage PyPI Package

Documentation: https://georgebv.github.io/aiosalesforce

License: MIT

Support: ask a question or create an issue, any input is appreciated and would help develop the project

About

aiosalesforce is a modern, production-ready asynchronous Python client for Salesforce APIs. It is built on top of the httpx library and provides a simple and intuitive API for interacting with Salesforce's APIs (such as REST and Bulk).

  • Fast: designed from the ground up to be fully asynchronous :rocket:
  • Resilient: flexible and robust retrying configuration :gear:
  • Fully typed: every part of the library is fully typed and annotated :label:
  • Intuitive: API follows naming conventions of Salesforce's APIs while staying idiomatic to Python :snake:
  • Salesforce first: built with years of experience working with the Salesforce API it is configured to work out of the box and incorporates best practices and latest Salesforce API features :cloud:
  • Track your API usage: built-in support for tracking Salesforce API usage :chart_with_upwards_trend:

Supported APIs:

API Status Description
SOQL Query Execute SOQL queries
sObject CRUD operations on Salesforce objects
Composite Batch Execute multiple independent subrequests
Composite Execute multiple dependent subrequests
Composite Graph 🕒 Execute multiple composite graphs
sObject Tree 🕒 Create one or more sObject trees
sObject Collections 🕒 Execute multiple sObject operations
Bulk API 1.0 Not planned (use Bulk API 2.0)
Bulk API 2.0 Bulk ingest and query operations

Requirements

aiosalesforce depends on:

Optional dependencies:

Installation

pip install aiosalesforce

To use the JWT Bearer Flow authentication install with the jwt extra:

pip install aiosalesforce[jwt]

Demo

Example below shows how to:

  • Authenticate against Salesforce using the SOAP login method
  • Create a Salesforce client
  • Create a new Contact
  • Read a Contact by ID
  • Execute a SOQL query
import asyncio

from aiosalesforce import Salesforce
from aiosalesforce.auth import SoapLogin
from httpx import AsyncClient

# Reuse authentication session across multiple clients (refreshes automatically)
auth = SoapLogin(
    username="your-username",
    password="your-password",
    security_token="your-security-token",
)

async def main():
    async with AsyncClient() as client:
        # Create a Salesforce client
        salesforce = Salesforce(
            client,
            base_url="https://your-instance.my.salesforce.com",
            auth=auth,
        )

        # Create a new Contact
        contact_id = await salesforce.sobject.create(
            "Contact",
            {
                "FirstName": "John",
                "LastName": "Doe",
                "Email": "john.doe@example.com",
            },
        )
        print(f"Created Contact with ID: {contact_id}")

        # Read Contact by ID
        contact = await salesforce.sobject.get("Contact", contact_id)
        print(contact)

        # Execute a SOQL query
        async for record in salesforce.query("SELECT Id, Name FROM Contact"):
            print(record)


if __name__ == "__main__":
    asyncio.run(main())

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

aiosalesforce-0.6.2.tar.gz (28.3 kB view details)

Uploaded Source

Built Distribution

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

aiosalesforce-0.6.2-py3-none-any.whl (42.9 kB view details)

Uploaded Python 3

File details

Details for the file aiosalesforce-0.6.2.tar.gz.

File metadata

  • Download URL: aiosalesforce-0.6.2.tar.gz
  • Upload date:
  • Size: 28.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.12.3

File hashes

Hashes for aiosalesforce-0.6.2.tar.gz
Algorithm Hash digest
SHA256 c8e039dc7b2bd535d231269690659eab6f2d4c2d9fc6dfa2ea92dce8e3fc25d3
MD5 881600e60c394a48919bb979ab45e993
BLAKE2b-256 7d597b35b620dae5b70fd2893beedaca003005a3663948785dd6824cb3e1c8b9

See more details on using hashes here.

File details

Details for the file aiosalesforce-0.6.2-py3-none-any.whl.

File metadata

  • Download URL: aiosalesforce-0.6.2-py3-none-any.whl
  • Upload date:
  • Size: 42.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.12.3

File hashes

Hashes for aiosalesforce-0.6.2-py3-none-any.whl
Algorithm Hash digest
SHA256 4a709e2048ae5d4353bb7d5ce4f928da9d82878c497bc460b1254c64adbde5c3
MD5 24d42f7227a829c36eaa4d82309e0311
BLAKE2b-256 cf29f50897b3e391126982207abfc7c359fccedd104257121756b324d137d7fc

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