API Reference
This section contains detailed API documentation for all modules and classes in Salesforce Toolkit.
Client Module
- class sf_toolkit.client.AsyncSalesforceClient(login=None, token=None, token_refresh_callback=None, sync_parent=None)[source]
Bases:
I_AsyncSalesforceClient
- Parameters:
login (Callable[[], Generator[Request | None, Response | None, SalesforceToken]] | None)
token (SalesforceToken | None)
token_refresh_callback (Callable[[SalesforceToken], Any] | None)
sync_parent (SalesforceClient | None)
- __init__(login=None, token=None, token_refresh_callback=None, sync_parent=None)[source]
- Parameters:
login (Callable[[], Generator[Request | None, Response | None, SalesforceToken]] | None)
token (SalesforceToken | None)
token_refresh_callback (Callable[[SalesforceToken], Any] | None)
sync_parent (SalesforceClient | None)
- async request(method, url, resource_name='', **kwargs)[source]
Build and send a request.
Equivalent to:
`python request = client.build_request(...) response = await client.send(request, ...) `
See AsyncClient.build_request(), AsyncClient.send() and [Merging of configuration][0] for how the various parameters are merged with client-level configuration.
[0]: /advanced/clients/#merging-of-configuration
- async versions()[source]
Returns a dictionary of API versions available in the org asynchronously. https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/dome_versions.htm
- Returns:
Dictionary of available API versions
- Return type:
- class sf_toolkit.client.SalesforceClient(connection_name='default', login=None, token=None, token_refresh_callback=None, headers={'Accept': 'application/json'}, **kwargs)[source]
Bases:
I_SalesforceClient
- Parameters:
connection_name (str)
login (Callable[[], Generator[Request | None, Response | None, SalesforceToken]] | None)
token (SalesforceToken | None)
token_refresh_callback (Callable[[SalesforceToken], Any] | None)
- __init__(connection_name='default', login=None, token=None, token_refresh_callback=None, headers={'Accept': 'application/json'}, **kwargs)[source]
- Parameters:
connection_name (str)
login (Callable[[], Generator[Request | None, Response | None, SalesforceToken]] | None)
token (SalesforceToken | None)
token_refresh_callback (Callable[[SalesforceToken], Any] | None)
- token_refresh_callback: Callable[[SalesforceToken], Any] | None
- handle_async_clone_token_refresh(token)[source]
- Parameters:
token (SalesforceToken)
- property as_async: I_AsyncSalesforceClient
- request(method, url, resource_name='', response_status_raise=True, **kwargs)[source]
Build and send a request.
Equivalent to:
`python request = client.build_request(...) response = client.send(request, ...) `
See Client.build_request(), Client.send() and [Merging of configuration][0] for how the various parameters are merged with client-level configuration.
[0]: /advanced/clients/#merging-of-configuration
- property versions: dict[float, ApiVersion]
Returns a dictionary of API versions available in the org.
- Returns:
List of available API versions
- Return type:
Authentication
- class sf_toolkit.auth.SalesforceAuth(login=None, session_token=None, callback=None)[source]
Bases:
Auth
- Parameters:
login (Callable[[], Generator[Request | None, Response | None, SalesforceToken]] | None)
session_token (SalesforceToken | None)
callback (Callable[[SalesforceToken], Any] | None)
- __init__(login=None, session_token=None, callback=None)[source]
- Parameters:
login (Callable[[], Generator[Request | None, Response | None, SalesforceToken]] | None)
session_token (SalesforceToken | None)
callback (Callable[[SalesforceToken], Any] | None)
- auth_flow(request)[source]
Execute the authentication flow.
To dispatch a request, yield it:
` yield request `
The client will .send() the response back into the flow generator. You can access it like so:
` response = yield request `
A return (or reaching the end of the generator) will result in the client returning the last response obtained from the server.
You can dispatch as many requests as is necessary.
- Parameters:
request (Request)
- Return type:
Generator[Request, Response, None]
- callback: Callable[[SalesforceToken], Any] | None
- token: SalesforceToken | None
- class sf_toolkit.auth.SalesforceToken(instance, token)[source]
Bases:
NamedTuple
Create new instance of SalesforceToken(instance, token)
- Parameters:
instance (URL)
token (str)
- instance: URL
Alias for field number 0
- sf_toolkit.auth.ip_filtering_non_service_login(username, password, client_id=None, domain='login', api_version=None)[source]
- sf_toolkit.auth.ip_filtering_org_login(username, password, organizationId, client_id=None, domain='login', api_version=None)[source]
- sf_toolkit.auth.security_token_login(username, password, security_token, client_id=None, domain='login', api_version=None)[source]
- sf_toolkit.auth.lazy_soap_login(**kwargs)[source]
Infer which SOAP login flow should be used based on the parameters provided.
This function examines the kwargs to determine whether to use security_token_login, ip_filtering_org_login, or ip_filtering_non_service_login.
Parameters are the same as the underlying login functions, with required parameters determined by the login flow chosen.
- Returns:
A callable that will perform the login workflow
- Return type:
SalesforceLogin
- sf_toolkit.auth.lazy_oauth_login(**kwargs)[source]
Determine which login method to use based on the provided kwargs.
- sf_toolkit.auth.password_login(username, password, consumer_key, consumer_secret, domain='login')[source]
Process OAuth 2.0 Password Flow.
- sf_toolkit.auth.public_key_auth_login(username, consumer_key, private_key, domain='login')[source]
Process OAuth 2.0 Public Key JWT Flow.
- sf_toolkit.auth.client_credentials_flow_login(consumer_key, consumer_secret, domain)[source]
Process OAuth 2.0 Client Credentials Flow.
- class sf_toolkit.auth.types.SalesforceToken(instance, token)[source]
Bases:
NamedTuple
Create new instance of SalesforceToken(instance, token)
- Parameters:
instance (URL)
token (str)
- instance: URL
Alias for field number 0
- class sf_toolkit.auth.httpx.SalesforceAuth(login=None, session_token=None, callback=None)[source]
Bases:
Auth
- Parameters:
login (Callable[[], Generator[Request | None, Response | None, SalesforceToken]] | None)
session_token (SalesforceToken | None)
callback (Callable[[SalesforceToken], Any] | None)
- __init__(login=None, session_token=None, callback=None)[source]
- Parameters:
login (Callable[[], Generator[Request | None, Response | None, SalesforceToken]] | None)
session_token (SalesforceToken | None)
callback (Callable[[SalesforceToken], Any] | None)
- token: SalesforceToken | None
- callback: Callable[[SalesforceToken], Any] | None
- auth_flow(request)[source]
Execute the authentication flow.
To dispatch a request, yield it:
` yield request `
The client will .send() the response back into the flow generator. You can access it like so:
` response = yield request `
A return (or reaching the end of the generator) will result in the client returning the last response obtained from the server.
You can dispatch as many requests as is necessary.
- Parameters:
request (Request)
- Return type:
Generator[Request, Response, None]
SObject Classes
- class sf_toolkit.data.sobject.SObjectDescribe(*, name='', label='', labelPlural='', keyPrefix='', custom=False, customSetting=False, createable=False, updateable=False, deletable=False, undeletable=False, mergeable=False, queryable=False, feedEnabled=False, searchable=False, layoutable=False, activateable=False, fields=None, childRelationships=None, recordTypeInfos=None, **additional_properties)[source]
Bases:
object
Represents metadata about a Salesforce SObject from a describe call
- Parameters:
name (str)
label (str)
labelPlural (str)
keyPrefix (str)
custom (bool)
customSetting (bool)
createable (bool)
updateable (bool)
deletable (bool)
undeletable (bool)
mergeable (bool)
queryable (bool)
feedEnabled (bool)
searchable (bool)
layoutable (bool)
activateable (bool)
fields (list[SObjectFieldDescribe] | None)
- __init__(*, name='', label='', labelPlural='', keyPrefix='', custom=False, customSetting=False, createable=False, updateable=False, deletable=False, undeletable=False, mergeable=False, queryable=False, feedEnabled=False, searchable=False, layoutable=False, activateable=False, fields=None, childRelationships=None, recordTypeInfos=None, **additional_properties)[source]
- Parameters:
name (str)
label (str)
labelPlural (str)
keyPrefix (str)
custom (bool)
customSetting (bool)
createable (bool)
updateable (bool)
deletable (bool)
undeletable (bool)
mergeable (bool)
queryable (bool)
feedEnabled (bool)
searchable (bool)
layoutable (bool)
activateable (bool)
fields (list[SObjectFieldDescribe] | None)
- classmethod from_dict(data)[source]
Create an SObjectDescribe instance from a dictionary (typically from a Salesforce API response)
- Parameters:
data (dict)
- Return type:
- get_field(field_name)[source]
Get the field metadata for a specific field by name
- Parameters:
field_name (str)
- Return type:
SObjectFieldDescribe | None
- class sf_toolkit.data.sobject.SObject(_SObject__strict_fields=True, **fields)[source]
Bases:
FieldConfigurableObject
,I_SObject
- Parameters:
_SObject__strict_fields (bool)
- classmethod query(include_deleted=False)[source]
Create a new SoqlSelect query builder for this SObject type.
- Parameters:
include_deleted (
bool
, optional) – Whether to include deleted records in the query. Defaults to False.- Returns:
A new query builder instance for this SObject type.
- Return type:
SoqlSelect
- __init__(_SObject__strict_fields=True, **fields)[source]
- Parameters:
_SObject__strict_fields (bool)
- classmethod read(record_id, sf_client=None)[source]
- Parameters:
record_id (str)
sf_client (I_SalesforceClient | None)
- Return type:
_sObject
- save_insert(sf_client=None, reload_after_success=False)[source]
- Parameters:
sf_client (I_SalesforceClient | None)
reload_after_success (bool)
- save_upsert(external_id_field, sf_client=None, reload_after_success=False, update_only=False, only_changes=False)[source]
- save(sf_client=None, only_changes=False, reload_after_success=False, external_id_field=None, update_only=False)[source]
- delete(sf_client=None, clear_id_field=True)[source]
- Parameters:
sf_client (I_SalesforceClient | None)
clear_id_field (bool)
- classmethod list(*ids, sf_client=None, concurrency=1, on_chunk_received=None)[source]
- Parameters:
- Return type:
- async classmethod read_async(*ids, sf_client=None, concurrency=1, on_chunk_received=None)[source]
- Parameters:
- Return type:
- classmethod describe()[source]
Retrieves detailed metadata information about the SObject from Salesforce.
- Returns:
- The full describe result containing metadata about the SObject’s
fields, relationships, and other properties.
- Return type:
- class sf_toolkit.data.sobject.SObjectList(iterable=(), *, connection='')[source]
Bases:
list
[_sObject
],Generic
[_sObject
]A list that contains SObject instances and provides bulk operations via Salesforce’s composite API.
Initialize an SObjectList.
- Parameters:
- save(external_id_field=None, only_changes=False, concurrency=1, batch_size=200, all_or_none=False, update_only=False, **callout_options)[source]
Save all SObjects in the list, determining whether to insert, update, or upsert based on the records and parameters.
- Parameters:
external_id_field (str | None) – Name of the external ID field to use for upserting (if provided)
only_changes (bool) – If True, only send changed fields for updates
concurrency (int) – Number of concurrent requests to make
batch_size (int) – Number of records to include in each batch
all_or_none (bool) – If True, all records must succeed or all will fail
update_only (bool) – If True with external_id_field, only update existing records
**callout_options – Additional options to pass to the API calls
- Returns:
List of save results
- Return type:
list[SObjectSaveResult]
- save_insert(concurrency=1, batch_size=200, **callout_options)[source]
Insert all SObjects in the list. https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/resources_composite_sobjects_collections_create.htm
- async static save_insert_async(sf_client, record_chunks, headers, concurrency, **callout_options)[source]
- save_update(only_changes=False, concurrency=1, batch_size=200, **callout_options)[source]
Update all SObjects in the list.
- Parameters:
- Returns:
List of save results
- Return type:
list[SObjectSaveResult]
- save_upsert(external_id_field, concurrency=1, batch_size=200, only_changes=False, all_or_none=False, **callout_options)[source]
Upsert all SObjects in the list using an external ID field. https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/resources_composite_sobjects_collections_upsert.htm
- Parameters:
external_id_field (str) – Name of the external ID field to use for upserting
concurrency (int) – Number of concurrent requests to make
batch_size (int) – Number of records to include in each batch
only_changes (bool) – If True, only send changed fields for updates
**callout_options – Additional options to pass to the API call
all_or_none (bool)
- Returns:
List of save results
- Return type:
list[SObjectSaveResult]
- async static save_upsert_async(sf_client, url, record_chunks, headers, concurrency, all_or_none, **callout_options)[source]
- delete(clear_id_field=False, batch_size=200, concurrency=1, all_or_none=False, **callout_options)[source]
Delete all SObjects in the list.
Fields
- class sf_toolkit.data.fields.SObjectFieldDescribe(name, label, type, length=0, nillable=False, picklistValues=[], referenceTo=[], relationshipName=None, unique=False, updateable=False, createable=False, defaultValue=None, externalId=False, autoNumber=False, calculated=False, caseSensitive=False, dependentPicklist=False, deprecatedAndHidden=False, displayLocationInDecimal=False, filterable=False, groupable=False, permissionable=False, restrictedPicklist=False, sortable=False, writeRequiresMasterRead=False)[source]
Bases:
NamedTuple
Represents metadata about a Salesforce SObject field
Create new instance of SObjectFieldDescribe(name, label, type, length, nillable, picklistValues, referenceTo, relationshipName, unique, updateable, createable, defaultValue, externalId, autoNumber, calculated, caseSensitive, dependentPicklist, deprecatedAndHidden, displayLocationInDecimal, filterable, groupable, permissionable, restrictedPicklist, sortable, writeRequiresMasterRead)
- Parameters:
name (str)
label (str)
type (str)
length (int)
nillable (bool)
relationshipName (str | None)
unique (bool)
updateable (bool)
createable (bool)
defaultValue (Any)
externalId (bool)
autoNumber (bool)
calculated (bool)
caseSensitive (bool)
dependentPicklist (bool)
deprecatedAndHidden (bool)
displayLocationInDecimal (bool)
filterable (bool)
groupable (bool)
permissionable (bool)
restrictedPicklist (bool)
sortable (bool)
writeRequiresMasterRead (bool)
- class sf_toolkit.data.fields.MultiPicklistValue(source)[source]
Bases:
str
- Parameters:
source (str)
- class sf_toolkit.data.fields.FieldFlag(value)[source]
Bases:
Flag
- nillable = 1
- unique = 2
- readonly = 4
- case_sensitive = 8
- updateable = 16
- createable = 32
- calculated = 64
- filterable = 128
- sortable = 256
- groupable = 512
- permissionable = 1024
- restricted_picklist = 2048
- display_location_in_decimal = 4096
- write_requires_master_read = 8192
- class sf_toolkit.data.fields.MultiPicklistField(*flags, options=None)[source]
Bases:
Field
[MultiPicklistValue
]- validate(value)[source]
- Parameters:
value (MultiPicklistValue)
Query Builder
- class sf_toolkit.data.query_builder.BooleanOperation(operator, conditions)[source]
Bases:
object
- Parameters:
operator (Literal['AND', 'OR', 'NOT'])
conditions (list[Comparison | BooleanOperation | str])
- __init__(operator, conditions)[source]
- Parameters:
operator (Literal['AND', 'OR', 'NOT'])
conditions (list[Comparison | BooleanOperation | str])
- conditions: list[Comparison | BooleanOperation | str]
- sf_toolkit.data.query_builder.OR(*conditions)[source]
- Parameters:
conditions (Comparison | BooleanOperation | str)
- sf_toolkit.data.query_builder.AND(*conditions)[source]
- Parameters:
conditions (Comparison | BooleanOperation | str)
- class sf_toolkit.data.query_builder.NOT(condition)[source]
Bases:
BooleanOperation
- Parameters:
condition (Comparison | BooleanOperation | str)
- __init__(condition)[source]
- Parameters:
condition (Comparison | BooleanOperation | str)
- class sf_toolkit.data.query_builder.Order(field, direction)[source]
Bases:
NamedTuple
Create new instance of Order(field, direction)
- class sf_toolkit.data.query_builder.QueryResultBatch(sobject_type, /, done=True, totalSize=0, records=None, nextRecordsUrl=None, connection=None)[source]
Bases:
Generic
[_SObject
]A generic class to represent results returned by the Salesforce SOQL Query API.
- records
- Type:
list[T]
Initialize a QueryResult object from Salesforce API response data.
- Parameters:
- done: bool
Indicates whether all records have been retrieved (True) or if more batches exist (False)
- class sf_toolkit.data.query_builder.QueryResult(*batches)[source]
Bases:
Generic
[_SObject
]- Parameters:
batches (list[QueryResultBatch[_SObject]])
- __init__(*batches)[source]
- Parameters:
batches (QueryResultBatch[_SObject])
- batches: list[QueryResultBatch[_SObject]]
- property done
- as_list()[source]
- Return type:
SObjectList[_SObject]
- copy()[source]
Perform a shallow copy of the QueryResult object.
- Return type:
QueryResult[_SObject]
- class sf_toolkit.data.query_builder.SoqlQuery(sobject_type, include_deleted=False)[source]
Bases:
Generic
[_SObject
]- property fields
- filter_subqueries(**subqueries)[source]
Configure Parent-To-Child Relationship queries
By default, all records are returned in the subquery (no filtering).
- Parameters:
**subqueries (SoqlQuery) – A dictionary of field names and SoqlQuery objects.
- Returns:
The current SoqlQuery object.
- Return type:
self
- where(_raw=None, _mode='all', **kwargs)[source]
- Parameters:
_raw (Comparison | BooleanOperation | str | None)
_mode (Literal['any', 'all'])
- and_where(_raw=None, _mode='all', **kwargs)[source]
- Parameters:
_raw (Comparison | BooleanOperation | str | None)
_mode (Literal['any', 'all'])
kwargs (Any)
- or_where(_raw=None, _mode='all', **kwargs)[source]
- Parameters:
_raw (Comparison | BooleanOperation | str | None)
_mode (Literal['any', 'all'])
kwargs (Any)
- having(_raw=None, _mode='all', **kwargs)[source]
- Parameters:
_raw (Comparison | BooleanOperation | str | None)
_mode (Literal['any', 'all'])
- and_having(_raw=None, _mode='all', **kwargs)[source]
- Parameters:
_raw (Comparison | BooleanOperation | str | None)
_mode (Literal['any', 'all'])
kwargs (Any)
- or_having(_raw=None, _mode='all', **kwargs)[source]
- Parameters:
_raw (Comparison | BooleanOperation | str | None)
_mode (Literal['any', 'all'])
kwargs (Any)
- count()[source]
Executes a count query instead of fetching records. Returns the count of records that match the query criteria.
- Returns:
Number of records matching the query criteria
- Return type:
- execute(*_fields)[source]
Executes the SOQL query and returns the first batch of results (up to 2000 records).
- Parameters:
_fields (str)
- Return type:
QueryResult[_SObject]
API Models
- class sf_toolkit.apimodels.ApiVersion(version, label, url)[source]
Bases:
object
Data structure representing a Salesforce API version. https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/resources_versions.htm
Initialize an ApiVersion object.
- Parameters:
- class sf_toolkit.apimodels.OrgLimit(name, max_value, current_value)[source]
Bases:
object
Data structure representing a Salesforce Org Limit. https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/resources_limits.htm
Initialize an OrgLimit object.
- Parameters:
- remaining()[source]
Calculate the remaining capacity for this limit.
- Returns:
The difference between max_value and current_value
- Return type:
- class sf_toolkit.apimodels.UserInfo(user_id, name, email, organization_id, sub, email_verified, given_name, family_name, zoneinfo, photos, profile, picture, address, urls, active, user_type, language, locale, utcOffset, updated_at, preferred_username, **kwargs)[source]
Bases:
object
Data structure representing user information returned from the Salesforce OAuth2 userinfo endpoint. https://help.salesforce.com/s/articleView?id=sf.remoteaccess_using_userinfo_endpoint.htm
Initialize a UserInfo object.
- Parameters:
user_id (str) – The user’s Salesforce ID
name (str) – The user’s full name
email (str) – The user’s email address
organization_id (str) – The organization’s Salesforce ID
sub (str) – Subject identifier
email_verified (bool) – Whether the email has been verified
given_name (str) – The user’s first name
family_name (str) – The user’s last name
zoneinfo (str) – The user’s timezone (e.g., “America/Los_Angeles”)
photos (dict[str, str]) – Dictionary of profile photos (picture, thumbnail)
profile (str) – URL to the user’s profile
picture (str) – URL to the user’s profile picture
address (dict) – Dictionary containing address information
urls (dict[str, str]) – Dictionary of various API endpoints for this user
active (bool) – Whether the user is active
user_type (str) – The type of user (e.g., “STANDARD”)
language (str) – The user’s language preference
locale (str) – The user’s locale setting
utcOffset (int) – The user’s UTC offset in milliseconds
updated_at (str) – When the user information was last updated
preferred_username (str) – The user’s preferred username (typically email)
**kwargs – Additional attributes from the response
- __init__(user_id, name, email, organization_id, sub, email_verified, given_name, family_name, zoneinfo, photos, profile, picture, address, urls, active, user_type, language, locale, utcOffset, updated_at, preferred_username, **kwargs)[source]
Initialize a UserInfo object.
- Parameters:
user_id (str) – The user’s Salesforce ID
name (str) – The user’s full name
email (str) – The user’s email address
organization_id (str) – The organization’s Salesforce ID
sub (str) – Subject identifier
email_verified (bool) – Whether the email has been verified
given_name (str) – The user’s first name
family_name (str) – The user’s last name
zoneinfo (str) – The user’s timezone (e.g., “America/Los_Angeles”)
photos (dict[str, str]) – Dictionary of profile photos (picture, thumbnail)
profile (str) – URL to the user’s profile
picture (str) – URL to the user’s profile picture
address (dict) – Dictionary containing address information
urls (dict[str, str]) – Dictionary of various API endpoints for this user
active (bool) – Whether the user is active
user_type (str) – The type of user (e.g., “STANDARD”)
language (str) – The user’s language preference
locale (str) – The user’s locale setting
utcOffset (int) – The user’s UTC offset in milliseconds
updated_at (str) – When the user information was last updated
preferred_username (str) – The user’s preferred username (typically email)
**kwargs – Additional attributes from the response
Exceptions
All exceptions for Salesforce Toolkit
- exception sf_toolkit.exceptions.SalesforceError(response, resource_name)[source]
Bases:
Exception
Base Salesforce API exception
Initialize the SalesforceError exception
SalesforceError is the base class of exceptions in salesforce-toolkit
- Parameters:
url_path – Salesforce URL that was called
status – Status code of the error response
resource_name (str) – Name of the Salesforce resource being queried
content – content of the response
response (Response)
- message = 'Unknown error occurred for {url_path}. Response content: {content}'
- __init__(response, resource_name)[source]
Initialize the SalesforceError exception
SalesforceError is the base class of exceptions in salesforce-toolkit
- Parameters:
url_path – Salesforce URL that was called
status – Status code of the error response
resource_name (str) – Name of the Salesforce resource being queried
content – content of the response
response (Response)
- exception sf_toolkit.exceptions.SalesforceMoreThanOneRecord(response, resource_name)[source]
Bases:
SalesforceError
Error Code: 300 The value returned when an external ID exists in more than one record. The response body contains the list of matching records.
Initialize the SalesforceError exception
SalesforceError is the base class of exceptions in salesforce-toolkit
- Parameters:
url_path – Salesforce URL that was called
status – Status code of the error response
resource_name (str) – Name of the Salesforce resource being queried
content – content of the response
response (Response)
- message = '({status_code}) More than one record for {url_path}. Response content: {content}'
- exception sf_toolkit.exceptions.SalesforceRecordNotModifiedSince(response, resource_name)[source]
Bases:
SalesforceError
Error Code: 304 The request content hasn’t changed since a specified date and time. The date and time is provided in a If-Modified-Since header.
Initialize the SalesforceError exception
SalesforceError is the base class of exceptions in salesforce-toolkit
- Parameters:
url_path – Salesforce URL that was called
status – Status code of the error response
resource_name (str) – Name of the Salesforce resource being queried
content – content of the response
response (Response)
- __init__(response, resource_name)[source]
Initialize the SalesforceError exception
SalesforceError is the base class of exceptions in salesforce-toolkit
- Parameters:
url_path – Salesforce URL that was called
status – Status code of the error response
resource_name (str) – Name of the Salesforce resource being queried
content – content of the response
response (Response)
- exception sf_toolkit.exceptions.SalesforceMalformedRequest(response, resource_name)[source]
Bases:
SalesforceError
Error Code: 400 The request couldn’t be understood, usually because the JSON or XML body contains an error.
Initialize the SalesforceError exception
SalesforceError is the base class of exceptions in salesforce-toolkit
- Parameters:
url_path – Salesforce URL that was called
status – Status code of the error response
resource_name (str) – Name of the Salesforce resource being queried
content – content of the response
response (Response)
- message = '({status_code}) Malformed request {url_path}. Response content: {content}'
- exception sf_toolkit.exceptions.SalesforceExpiredSession(response, resource_name)[source]
Bases:
SalesforceError
Error Code: 401 The session ID or OAuth token used has expired or is invalid. The response body contains the message and errorCode.
Initialize the SalesforceError exception
SalesforceError is the base class of exceptions in salesforce-toolkit
- Parameters:
url_path – Salesforce URL that was called
status – Status code of the error response
resource_name (str) – Name of the Salesforce resource being queried
content – content of the response
response (Response)
- message = '({status_code}) Expired session for {url_path}. Response content: {content}'
- exception sf_toolkit.exceptions.SalesforceRefusedRequest(response, resource_name)[source]
Bases:
SalesforceError
Error Code: 403 The request has been refused. Verify that the logged-in user has appropriate permissions.
Initialize the SalesforceError exception
SalesforceError is the base class of exceptions in salesforce-toolkit
- Parameters:
url_path – Salesforce URL that was called
status – Status code of the error response
resource_name (str) – Name of the Salesforce resource being queried
content – content of the response
response (Response)
- message = '({status_code}) Request refused for {url_path}. Response content: {content}'
- exception sf_toolkit.exceptions.SalesforceResourceNotFound(response, resource_name)[source]
Bases:
SalesforceError
Error Code: 404 The requested resource couldn’t be found. Check the URI for errors, and verify that there are no sharing issues.
Initialize the SalesforceError exception
SalesforceError is the base class of exceptions in salesforce-toolkit
- Parameters:
url_path – Salesforce URL that was called
status – Status code of the error response
resource_name (str) – Name of the Salesforce resource being queried
content – content of the response
response (Response)
- exception sf_toolkit.exceptions.SalesforceMethodNotAllowedForResource(response, resource_name)[source]
Bases:
SalesforceError
Error Code: 405 The method specified in the Request-Line isn’t allowed for the resource specified in the URI.
Initialize the SalesforceError exception
SalesforceError is the base class of exceptions in salesforce-toolkit
- Parameters:
url_path – Salesforce URL that was called
status – Status code of the error response
resource_name (str) – Name of the Salesforce resource being queried
content – content of the response
response (Response)
- message = '({status_code}) HTTP Method Not Allowed for {url_path}. Response content: {content}'
- exception sf_toolkit.exceptions.SalesforceApiVersionIncompatible(response, resource_name)[source]
Bases:
SalesforceError
Error Code: 409
The request couldn’t be completed due to a conflict with the current state of the resource. Check that the API version is compatible with the resource you’re requesting.
Initialize the SalesforceError exception
SalesforceError is the base class of exceptions in salesforce-toolkit
- Parameters:
url_path – Salesforce URL that was called
status – Status code of the error response
resource_name (str) – Name of the Salesforce resource being queried
content – content of the response
response (Response)
- message = '({status_code}) API Version incompatible for {url_path}. Response content: {content}'
- exception sf_toolkit.exceptions.SalesforceResourceRemoved(response, resource_name)[source]
Bases:
SalesforceError
Error Code: 410
The requested resource has been retired or removed. Delete or update any references to the resource.
Initialize the SalesforceError exception
SalesforceError is the base class of exceptions in salesforce-toolkit
- Parameters:
url_path – Salesforce URL that was called
status – Status code of the error response
resource_name (str) – Name of the Salesforce resource being queried
content – content of the response
response (Response)
- message = '({status_code}) Resource removed from {url_path}. Response content: {content}'
- exception sf_toolkit.exceptions.SalesforceInvalidHeaderPreconditions(response, resource_name)[source]
Bases:
SalesforceError
Error Code: 412
The request wasn’t executed because one or more of the preconditions that the client specified in the request headers wasn’t satisfied. For example, the request includes an If-Unmodified-Since header, but the data was modified after the specified date.
Initialize the SalesforceError exception
SalesforceError is the base class of exceptions in salesforce-toolkit
- Parameters:
url_path – Salesforce URL that was called
status – Status code of the error response
resource_name (str) – Name of the Salesforce resource being queried
content – content of the response
response (Response)
- message = '({status_code}) Invalid Header Preconditions for {url_path}. Response content: {content}'
- exception sf_toolkit.exceptions.SalesforceUriLimitExceeded(response, resource_name)[source]
Bases:
SalesforceError
Error Code: 414
The length of the URI exceeds the 16,384-byte limit.
Initialize the SalesforceError exception
SalesforceError is the base class of exceptions in salesforce-toolkit
- Parameters:
url_path – Salesforce URL that was called
status – Status code of the error response
resource_name (str) – Name of the Salesforce resource being queried
content – content of the response
response (Response)
- message = '({status_code}) URI Limit Exceeded for {url_path}. Response content: {content}'
- exception sf_toolkit.exceptions.SalesforceUnsupportedFormat(response, resource_name)[source]
Bases:
SalesforceError
Error Code: 415
The entity in the request is in a format that’s not supported by the specified method.
Initialize the SalesforceError exception
SalesforceError is the base class of exceptions in salesforce-toolkit
- Parameters:
url_path – Salesforce URL that was called
status – Status code of the error response
resource_name (str) – Name of the Salesforce resource being queried
content – content of the response
response (Response)
- message = '({status_code}) Unsupported Content Format for {url_path}. Response content: {content}'
Bases:
SalesforceError
Error Code: 420
Salesforce Edge doesn’t have routing information available for this request host. Contact Salesforce Customer Support.
Initialize the SalesforceError exception
SalesforceError is the base class of exceptions in salesforce-toolkit
- Parameters:
url_path – Salesforce URL that was called
status – Status code of the error response
resource_name (str) – Name of the Salesforce resource being queried
content – content of the response
response (Response)
- exception sf_toolkit.exceptions.SalesforceMissingConditionalHeader(response, resource_name)[source]
Bases:
SalesforceError
Error Code: 428 The request wasn’t executed because it wasn’t conditional. Add one of the Conditional Request Headers, such as If-Match, to the request and resubmit it.
Initialize the SalesforceError exception
SalesforceError is the base class of exceptions in salesforce-toolkit
- Parameters:
url_path – Salesforce URL that was called
status – Status code of the error response
resource_name (str) – Name of the Salesforce resource being queried
content – content of the response
response (Response)
- message = '({status_code}) Conditional Header Missing for {url_path}. Response content: {content}'
- exception sf_toolkit.exceptions.SalesforceHeaderLimitExceeded(response, resource_name)[source]
Bases:
SalesforceError
Error Code: 431
The combined length of the URI and headers exceeds the 16,384-byte limit.
Initialize the SalesforceError exception
SalesforceError is the base class of exceptions in salesforce-toolkit
- Parameters:
url_path – Salesforce URL that was called
status – Status code of the error response
resource_name (str) – Name of the Salesforce resource being queried
content – content of the response
response (Response)
- message = '({status_code}) URI and Header exceeded 16kb limit for {url_path}.Response content: {content}'
- exception sf_toolkit.exceptions.SalesforceServerError(response, resource_name)[source]
Bases:
SalesforceError
Error Code: 500
An error has occurred within Lightning Platform, so the request couldn’t be completed. Contact Salesforce Customer Support.
Initialize the SalesforceError exception
SalesforceError is the base class of exceptions in salesforce-toolkit
- Parameters:
url_path – Salesforce URL that was called
status – Status code of the error response
resource_name (str) – Name of the Salesforce resource being queried
content – content of the response
response (Response)
- message = '({status_code}) Salesforce Server Error for {url_path}. Response content: {content}'
- exception sf_toolkit.exceptions.SalesforceEdgeCommFailure(response, resource_name)[source]
Bases:
SalesforceError
Error Code: 502
Salesforce Edge wasn’t able to communicate successfully with the Salesforce instance.
Initialize the SalesforceError exception
SalesforceError is the base class of exceptions in salesforce-toolkit
- Parameters:
url_path – Salesforce URL that was called
status – Status code of the error response
resource_name (str) – Name of the Salesforce resource being queried
content – content of the response
response (Response)
- message = '({status_code}) Salesforce Edge Communication Failure for {url_path}. Response content: {content}'
Bases:
SalesforceError
Error Code: 503
The server is unavailable to handle the request. Typically this issue occurs if the server is down for maintenance or is overloaded.
Initialize the SalesforceError exception
SalesforceError is the base class of exceptions in salesforce-toolkit
- Parameters:
url_path – Salesforce URL that was called
status – Status code of the error response
resource_name (str) – Name of the Salesforce resource being queried
content – content of the response
response (Response)
- exception sf_toolkit.exceptions.SalesforceAuthenticationFailed(code, message)[source]
Bases:
Exception
Thrown to indicate that authentication with Salesforce failed.
- exception sf_toolkit.exceptions.SalesforceGeneralError(response, resource_name)[source]
Bases:
SalesforceError
A non-specific Salesforce error.
Initialize the SalesforceError exception
SalesforceError is the base class of exceptions in salesforce-toolkit
- Parameters:
url_path – Salesforce URL that was called
status – Status code of the error response
resource_name (str) – Name of the Salesforce resource being queried
content – content of the response
response (Response)
- exception sf_toolkit.exceptions.SalesforceOperationError[source]
Bases:
Exception
Base error for Bulk API 2.0 operations
- exception sf_toolkit.exceptions.SalesforceBulkV2LoadError[source]
Bases:
SalesforceOperationError
Error occurred during bulk 2.0 load
- exception sf_toolkit.exceptions.SalesforceBulkV2ExtractError[source]
Bases:
SalesforceOperationError
Error occurred during bulk 2.0 extract
Utilities
Formatting helpers that perform quoting and escaping
- class sf_toolkit.formatting.SoqlFormatter[source]
Bases:
Formatter
Custom formatter to apply quoting or the :literal format spec
- sf_toolkit.formatting.format_soql(query, *args, **kwargs)[source]
Insert values quoted for SOQL into a format string
- sf_toolkit.formatting.quote_soql_value(value)[source]
Quote/escape either an individual value or a list of values for a SOQL value expression
- sf_toolkit.formatting.format_external_id(field, value)[source]
Create an external ID string for use with get() or upsert()
- sf_toolkit.formatting.format_datetime(value)[source]
Get the provided datetime as a Salesforce-compliant formatted string
- Parameters:
value (datetime)
- sf_toolkit.formatting.parse_datetime(value)[source]
Parse a datetime from a Salesforce datetime string value
- Parameters:
value (str)
Utility functions and types to assist in parsing API usage metadata
- class sf_toolkit.metrics.Usage(used, total)[source]
Bases:
NamedTuple
Create new instance of Usage(used, total)
- class sf_toolkit.metrics.PerAppUsage(used, total, name)[source]
Bases:
NamedTuple
Create new instance of PerAppUsage(used, total, name)
- class sf_toolkit.metrics.ApiUsage(api_usage, per_app_api_usage)[source]
Bases:
NamedTuple
Create new instance of ApiUsage(api_usage, per_app_api_usage)
- Parameters:
api_usage (Usage | None)
per_app_api_usage (PerAppUsage | None)
- per_app_api_usage: PerAppUsage | None
Alias for field number 1
- sf_toolkit.metrics.parse_api_usage(sforce_limit_info)[source]
Parse API usage and limits out of the Sforce-Limit-Info header Arguments: * sforce_limit_info: The value of response header ‘Sforce-Limit-Info’
Example 1: ‘api-usage=18/5000’ Example 2: ‘api-usage=25/5000;
per-app-api-usage=17/250(appName=sample-connected-app)’
- Parameters:
sforce_limit_info (str)