|
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 | | -f.any("email", ["sarah.mason@klaviyo-demo.com", "sm@klaviyo-demo.com"]) |
3934 | | -f.greater_than("created", old_date) |
3935 | | - |
3936 | | -# f.build() returns 'any(email,["sarah.mason@klaviyo-demo.com","sm@klaviyo-demo.com"]),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", ["sarah.mason@klaviyo-demo.com", "sm@klaviyo-demo.com"]).greater_than("created", date).build() |
3942 | | -assert filters == "any(email,['sarah.mason@klaviyo-demo.com','sm@klaviyo-demo.com']),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