|
1 | 1 | # Klaviyo Python SDK
|
2 | 2 |
|
3 |
| -- SDK version: 11.0.0 |
| 3 | +- SDK version: 11.0.1 |
4 | 4 | - API revision: 2024-07-15
|
5 | 5 |
|
6 | 6 | ## Table of Contents
|
|
44 | 44 | * [Parameters & Arguments](#parameters--arguments)
|
45 | 45 | * [Namespace](#namespace)
|
46 | 46 | * [Renamed Fields](#renamed-fields)
|
47 |
| - * [Filter Builder](#filter-builder) |
48 |
| - * [Typed Responses](#typed-responses) |
49 |
| - * [Backwards Compatibility](#backwards-compatibility) |
50 |
| - * [Untyped Response Data for Specific APIs](#untyped-response-data-for-specific-apis) |
51 | 47 | <!-- TOC -->
|
52 | 48 |
|
53 | 49 | ## Helpful Resources
|
@@ -133,6 +129,10 @@ This SDK is organized into the following resources:
|
133 | 129 |
|
134 | 130 |
|
135 | 131 |
|
| 132 | +- Tests |
| 133 | + |
| 134 | + |
| 135 | + |
136 | 136 | - Webhooks
|
137 | 137 |
|
138 | 138 |
|
@@ -3764,6 +3764,72 @@ klaviyo.Templates.update_template(id, body)
|
3764 | 3764 |
|
3765 | 3765 |
|
3766 | 3766 |
|
| 3767 | +## Tests |
| 3768 | + |
| 3769 | +#### [Get Test Bulk Create Photos Jobs](https://developers.klaviyo.com/en/v2024-07-15/reference/get_test_bulk_create_photos_jobs) |
| 3770 | + |
| 3771 | +```python |
| 3772 | + |
| 3773 | +## Keyword Arguments |
| 3774 | + |
| 3775 | +# fields_test_bulk_create_photos_job | List[str] |
| 3776 | + |
| 3777 | +klaviyo.Tests.get_test_bulk_create_photos_jobs(fields_test_bulk_create_photos_job=fields_test_bulk_create_photos_job) |
| 3778 | +``` |
| 3779 | + |
| 3780 | + |
| 3781 | + |
| 3782 | + |
| 3783 | +#### [Get Test Cities](https://developers.klaviyo.com/en/v2024-07-15/reference/get_test_cities) |
| 3784 | + |
| 3785 | +```python |
| 3786 | + |
| 3787 | +## Keyword Arguments |
| 3788 | + |
| 3789 | +# fields_test_city | List[str] |
| 3790 | + |
| 3791 | +klaviyo.Tests.get_test_cities(fields_test_city=fields_test_city) |
| 3792 | +``` |
| 3793 | + |
| 3794 | + |
| 3795 | + |
| 3796 | + |
| 3797 | +#### [Get Test Photographers](https://developers.klaviyo.com/en/v2024-07-15/reference/get_test_photographers) |
| 3798 | + |
| 3799 | +```python |
| 3800 | + |
| 3801 | +## Keyword Arguments |
| 3802 | + |
| 3803 | +# fields_test_photographer | List[str] |
| 3804 | +# filter | str |
| 3805 | +# sort | str |
| 3806 | + |
| 3807 | +klaviyo.Tests.get_test_photographers(fields_test_photographer=fields_test_photographer, filter=filter, sort=sort) |
| 3808 | +``` |
| 3809 | + |
| 3810 | + |
| 3811 | + |
| 3812 | + |
| 3813 | +#### [Get Test Photos](https://developers.klaviyo.com/en/v2024-07-15/reference/get_test_photos) |
| 3814 | + |
| 3815 | +```python |
| 3816 | + |
| 3817 | +## Keyword Arguments |
| 3818 | + |
| 3819 | +# additional_fields_test_photo | List[str] |
| 3820 | +# fields_test_photo | List[str] |
| 3821 | +# filter | str |
| 3822 | +# page_cursor | str |
| 3823 | +# sort | str |
| 3824 | + |
| 3825 | +klaviyo.Tests.get_test_photos(additional_fields_test_photo=additional_fields_test_photo, fields_test_photo=fields_test_photo, filter=filter, page_cursor=page_cursor, sort=sort) |
| 3826 | +``` |
| 3827 | + |
| 3828 | + |
| 3829 | + |
| 3830 | + |
| 3831 | + |
| 3832 | + |
3767 | 3833 | ## Webhooks
|
3768 | 3834 |
|
3769 | 3835 | #### [Create Webhook](https://developers.klaviyo.com/en/v2024-07-15/reference/create_webhook)
|
@@ -3922,116 +3988,4 @@ class StaticScheduleOptions(BaseModel):
|
3922 | 3988 | ```python
|
3923 | 3989 | schedule_options = StaticScheduleOptions(datetime_=datetime.datetime.strptime("2024-05-19T00:00:00+00:00", "%Y-%m-%dT%H:%M:%S%z")
|
3924 | 3990 | print(schedule_options.datetime_)
|
3925 |
| -``` |
3926 |
| - |
3927 |
| -## Filter Builder |
3928 |
| -Use this class to help construct filter query parameters. |
3929 |
| -```python |
3930 |
| -old_date = datetime.datetime(2023, 8, 15, 12, 30, 0, 0, tzinfo=datetime.timezone.utc) |
3931 |
| - |
3932 |
| -f = FilterBuilder() |
3933 |
| - |
3934 |
| -f.greater_than("created", old_date) |
3935 |
| - |
3936 |
| -# f.build() returns 'any(email,["[email protected]","[email protected]"]),greater-than(created,2023-08-15T12:30:00+00:00)' |
3937 |
| -profile_response = client.Profiles.get_profiles(filter=f.build()) |
3938 |
| - |
3939 |
| -# You can also chain FilterBuilder methods |
3940 |
| -f = FilterBuilder() |
3941 |
| -filters = f.any( "email", [ "[email protected]", "[email protected]"]).greater_than( "created", date).build() |
3942 |
| -assert filters == "any(email,['[email protected]','[email protected]']),greater-than(created,2023-08-15T12:30:00+00:00)" |
3943 |
| -``` |
3944 |
| - |
3945 |
| -## Typed Responses |
3946 |
| -By default, all API methods will return a type representing the response payload instead of dictionary, as was the case in previous versions of this SDK. Using the typed response, you can access fields of a response using dot notation, like so: |
3947 |
| -```python |
3948 |
| -from klaviyo_api import KlaviyoAPI |
3949 |
| - |
3950 |
| -client = KlaviyoAPI( |
3951 |
| - api_key, |
3952 |
| - max_delay=0, |
3953 |
| - max_retries=0 |
3954 |
| - ) |
3955 |
| - |
3956 |
| -profiles = client.Profiles.get_profiles() |
3957 |
| -profile_id = profiles.data[0].id |
3958 |
| -profile = client.Profiles.get_profile(profile_id) |
3959 |
| -profile_id = profile.data.id |
3960 |
| -profile_email = profile.data.attributes.email |
3961 |
| - |
3962 |
| -print(type(profile).__name__) # prints GetProfileResponseCompoundDocument |
3963 |
| -``` |
3964 |
| -The class used in this example is found [here](src/openapi_client/models/get_profile_response_collection_compound_document.py). |
3965 |
| - |
3966 |
| -This is a breaking change, as response objects will now require dot notation to access their fields versus the subscriptable access method used for dictionaries, i.e. `profile.data.id` vs `profile['data']['id']`. We have provided a [backwards compatibility strategy](#backwards-compatibility) to smooth the transition from dictionary responses to typed responses. |
3967 |
| - |
3968 |
| -### Backwards Compatibility |
3969 |
| -To maintain backwards compatibility with previous versions of this SDK, we have added an `options` argument that allows you to continue using dictionaries as response values. There are two ways to use this `options` argument: |
3970 |
| -```python |
3971 |
| -from klaviyo_api import KlaviyoAPI |
3972 |
| -from openapi_client.api_arg_options import USE_DICTIONARY_FOR_RESPONSE_DATA |
3973 |
| - |
3974 |
| -client = KlaviyoAPI( |
3975 |
| - api_key, |
3976 |
| - max_delay=0, |
3977 |
| - max_retries=0 |
3978 |
| -) |
3979 |
| - |
3980 |
| -# 1: Passing options to an individual API method |
3981 |
| -profiles = client.Profiles.get_profiles(options= { |
3982 |
| - USE_DICTIONARY_FOR_RESPONSE_DATA: True |
3983 |
| -}) |
3984 |
| -profile_id = profiles["data"][0]['id'] |
3985 |
| -profile_email = profiles["data"][0]['attributes']['email'] |
3986 |
| - |
3987 |
| -# 2: Passing options to API Client |
3988 |
| -dictionary_client = KlaviyoAPI( |
3989 |
| - api_key, |
3990 |
| - max_delay=0, |
3991 |
| - max_retries=0, |
3992 |
| - options={USE_DICTIONARY_FOR_RESPONSE_DATA : True} |
3993 |
| -) |
3994 |
| -profiles_ = dictionary_client.Profiles.get_profiles() |
3995 |
| -profile_0_id = profiles_["data"][0]['id'] |
3996 |
| - |
3997 |
| -profile_0 = dictionary_client.Profiles.get_profile(id=profile_0_id) |
3998 |
| -profile_0_email = profile_0["data"]['attributes']['email'] |
3999 |
| -``` |
4000 |
| -The first way will only return a dictionary for that specific `get_profiles` call. The second makes it so that all API methods called using `dictionary_client` will return dictionaries as responses. |
4001 |
| - |
4002 |
| -## Untyped Response Data for Specific APIs |
4003 |
| -Select APIs do not yet have fully typed responses. Please use our API docs to inspect the schema of the response data for the following APIs. |
4004 |
| -- **Segments** - The subproperty `conditions` is not yet typed in responses for the following APIs: |
4005 |
| - - [Create Segment](https://developers.klaviyo.com/en/reference/create_segment) |
4006 |
| - - [Update Segment](https://developers.klaviyo.com/en/reference/update_segment) |
4007 |
| - - [Get Segment](https://developers.klaviyo.com/en/reference/get_segment) |
4008 |
| - - [Get Segments](https://developers.klaviyo.com/en/reference/get_segments) |
4009 |
| -- The `included` property is not typed in responses for the following APIs: |
4010 |
| - - [Get Event](https://developers.klaviyo.com/en/reference/get_event) |
4011 |
| - - [Get Events](https://developers.klaviyo.com/en/reference/get_events) |
4012 |
| - - [Get Profile](https://developers.klaviyo.com/en/reference/get_profile) |
4013 |
| - - [Get Profiles](https://developers.klaviyo.com/en/reference/get_profiles) |
4014 |
| - - [Get Flow](https://developers.klaviyo.com/en/reference/get_flow) |
4015 |
| - - [Get Flows](https://developers.klaviyo.com/en/reference/get_flows) |
4016 |
| - - [Get Flow Message](https://developers.klaviyo.com/en/reference/get_flow_message) |
4017 |
| - - [Get Campaign](https://developers.klaviyo.com/en/reference/get_campaign) |
4018 |
| - - [Get Campaigns](https://developers.klaviyo.com/en/reference/get_campaigns) |
4019 |
| -- The `tracking_options` subproperty is not typed in responses for the following APIs: |
4020 |
| - - [Get Flow Action](https://developers.klaviyo.com/en/reference/get_flow_action) |
4021 |
| - - [Get Flow Actions](https://developers.klaviyo.com/en/reference/get_flow_flow_actions) |
4022 |
| - - [Create Campaign](https://developers.klaviyo.com/en/reference/create_campaign) |
4023 |
| - - [Update Campaign](https://developers.klaviyo.com/en/reference/update_campaign) |
4024 |
| - - [Get Campaign](https://developers.klaviyo.com/en/reference/get_campaign) |
4025 |
| - - [Get Campaigns](https://developers.klaviyo.com/en/reference/get_campaigns) |
4026 |
| -- The `send_options` subproperty is not typed in responses for the following APIs: |
4027 |
| - - [Create Campaign](https://developers.klaviyo.com/en/reference/create_campaign) |
4028 |
| - - [Update Campaign](https://developers.klaviyo.com/en/reference/update_campaign) |
4029 |
| - - [Get Campaign](https://developers.klaviyo.com/en/reference/get_campaign) |
4030 |
| - - [Get Campaigns](https://developers.klaviyo.com/en/reference/get_campaigns) |
4031 |
| - - [Get Campaign Message](https://developers.klaviyo.com/en/reference/get_campaign_message_campaign) |
4032 |
| - - [Get Campaign Messages](https://developers.klaviyo.com/en/reference/get_campaign_campaign_messages) |
4033 |
| -- The `content` subproperty is not typed in responses for the following APIs: |
4034 |
| - - [Get Flow Message](https://developers.klaviyo.com/en/reference/get_flow_message) |
4035 |
| - - [Get Flow Action Messages](https://developers.klaviyo.com/en/reference/get_flow_action_messages) |
4036 |
| - - [Get Campaign Message](https://developers.klaviyo.com/en/reference/get_campaign_message_campaign) |
4037 |
| - - [Get Campaign Messages](https://developers.klaviyo.com/en/reference/get_campaign_campaign_messages) |
| 3991 | +``` |
0 commit comments