Metadata-Version: 2.4
Name: soilsidekick
Version: 3.0.0
Summary: SoilSidekick Pro API
Home-page: 
Author: SoilSidekick Support
Author-email: SoilSidekick Support <support@soilsidekickpro.com>
License: Commercial License
Project-URL: Repository, https://github.com/GIT_USER_ID/GIT_REPO_ID
Keywords: OpenAPI,OpenAPI-Generator,SoilSidekick Pro API
Requires-Python: >=3.9
Description-Content-Type: text/markdown
Requires-Dist: urllib3<3.0.0,>=2.1.0
Requires-Dist: python-dateutil>=2.8.2
Requires-Dist: pydantic>=2.11
Requires-Dist: typing-extensions>=4.7.1
Dynamic: author

# soilsidekick-sdk
Agricultural intelligence and soil analysis API with tier-based access control.

## What's New in 1.2.0
- **Consumer Plant Care APIs**: Three new endpoints addressing top pain points in plant ID apps:
  - `/safe-identification`: Toxic lookalike warnings and environmental context
  - `/dynamic-care`: Hyper-localized, real-time care recommendations
  - `/beginner-guidance`: Judgment-free, jargon-free plant guidance

## Authentication
All endpoints require an API key passed via the `x-api-key` header:
```
x-api-key: ak_your_api_key_here
```

API keys are generated through the dashboard and use the `ak_*` format.

## Rate Limiting
Rate limits are enforced based on your subscription tier:
- **Free**: 10 req/min, 100 req/hour, 1,000 req/day
- **Starter**: 30 req/min, 500 req/hour, 5,000 req/day
- **Pro**: 100 req/min, 2,000 req/hour, 25,000 req/day
- **Enterprise**: 500 req/min, 10,000 req/hour, 100,000 req/day

Rate limit information is returned in response headers:
- `X-RateLimit-Limit`: Maximum requests in window
- `X-RateLimit-Remaining`: Remaining requests in window
- `X-RateLimit-Reset`: Unix timestamp when limit resets

## Response Time SLAs
All endpoints return response time headers for performance monitoring:
- `X-Response-Time`: Human-readable response time (e.g., \"245ms\")
- `X-Response-Time-Ms`: Response time in milliseconds
- `X-Response-Time-Target`: Target response time for this endpoint
- `X-Response-Time-Max`: Maximum acceptable response time
- `X-Response-Time-Status`: Performance status (`optimal`, `acceptable`, `exceeded`)

### Response Time Targets by Category

| Category | Target | Maximum | Endpoints |
|----------|--------|---------|-----------|
| **Fast** | 200ms | 500ms | county-lookup, check-subscription |
| **Standard** | 500ms | 1,500ms | get-soil-data, territorial-water-quality |
| **Complex** | 2,000ms | 5,000ms | agricultural-intelligence, gpt5-chat, visual-crop-analysis |
| **Heavy** | 5,000ms | 15,000ms | live-agricultural-data, generate-vrt-prescription |


This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:

- API version: 3.0.0
- Package version: 3.0.0
- Generator version: 7.23.0
- Build package: org.openapitools.codegen.languages.PythonClientCodegen
For more information, please visit [https://soilsidekick.com/support](https://soilsidekick.com/support)

## Requirements.

Python 3.10+

## Installation & Usage
### pip install

If the python package is hosted on a repository, you can install directly using:

```sh
pip install git+https://github.com/GIT_USER_ID/GIT_REPO_ID.git
```
(you may need to run `pip` with root permission: `sudo pip install git+https://github.com/GIT_USER_ID/GIT_REPO_ID.git`)

Then import the package:
```python
import soilsidekick
```

### Setuptools

Install via [Setuptools](http://pypi.python.org/pypi/setuptools).

```sh
python setup.py install --user
```
(or `sudo python setup.py install` to install the package for all users)

Then import the package:
```python
import soilsidekick
```

### Tests

Execute `pytest` to run the tests.

## Getting Started

Please follow the [installation procedure](#installation--usage) and then run the following:

```python

import soilsidekick
from soilsidekick.rest import ApiException
from pprint import pprint

# Defining the host is optional and defaults to https://wzgnxkoeqzvueypwzvyn.supabase.co/functions/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = soilsidekick.Configuration(
    host = "https://wzgnxkoeqzvueypwzvyn.supabase.co/functions/v1"
)

# The client must configure the authentication and authorization parameters
# in accordance with the API server security policy.
# Examples for each auth method are provided below, use the example that
# satisfies your auth use case.

# Configure API key authorization: ApiKeyAuth
configuration.api_key['ApiKeyAuth'] = os.environ["API_KEY"]

# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
# configuration.api_key_prefix['ApiKeyAuth'] = 'Bearer'


# Enter a context with an instance of the API client
with soilsidekick.ApiClient(configuration) as api_client:
    # Create an instance of the API class
    api_instance = soilsidekick.AIServicesApi(api_client)
    generate_smart_report_summary_request = soilsidekick.GenerateSmartReportSummaryRequest() # GenerateSmartReportSummaryRequest | 
    x_tq_context_mode = 4096 # int | TurboQuant extended context window size (tokens). With 3-bit KV cache, context windows up to 24K tokens are feasible within the same memory budget as standard 4K.  (optional) (default to 4096)
    x_tq_kv_cache_hint = none # str | KV cache management hint. - `none`: No caching (default) - `reuse`: Reuse KV cache from previous request in same session (40-60% compute savings) - `persist`: Persist cache to disk for cross-session reuse  (optional) (default to none)
    x_tq_model_tier = auto # str | Preferred model tier for inference. - `auto`: Server selects optimal model based on device capabilities - `gemma-2b`: Lightweight model (~0.5GB KV with TQ) - `gemma-7b`: Full model, standard KV cache - `gemma-7b-tq`: Full model with TurboQuant 3-bit KV cache (~1.3GB)  (optional) (default to auto)

    try:
        # Generate AI report summary
        api_response = api_instance.generate_smart_report_summary(generate_smart_report_summary_request, x_tq_context_mode=x_tq_context_mode, x_tq_kv_cache_hint=x_tq_kv_cache_hint, x_tq_model_tier=x_tq_model_tier)
        print("The response of AIServicesApi->generate_smart_report_summary:\n")
        pprint(api_response)
    except ApiException as e:
        print("Exception when calling AIServicesApi->generate_smart_report_summary: %s\n" % e)

```

## Documentation for API Endpoints

All URIs are relative to *https://wzgnxkoeqzvueypwzvyn.supabase.co/functions/v1*

Class | Method | HTTP request | Description
------------ | ------------- | ------------- | -------------
*AIServicesApi* | [**generate_smart_report_summary**](docs/AIServicesApi.md#generate_smart_report_summary) | **POST** /smart-report-summary | Generate AI report summary
*AIServicesApi* | [**get_agricultural_intelligence**](docs/AIServicesApi.md#get_agricultural_intelligence) | **POST** /agricultural-intelligence | Get AI-powered agricultural insights
*AIServicesApi* | [**get_seasonal_planning_assistant**](docs/AIServicesApi.md#get_seasonal_planning_assistant) | **POST** /seasonal-planning-assistant | Get seasonal planning recommendations
*AIServicesApi* | [**visual_crop_analysis**](docs/AIServicesApi.md#visual_crop_analysis) | **POST** /visual-crop-analysis | Analyze crop images
*CarbonApi* | [**calculate_carbon_credits**](docs/CarbonApi.md#calculate_carbon_credits) | **POST** /carbon-credit-calculator | Calculate carbon credits
*ConsumerPlantCareApi* | [**beginner_guidance**](docs/ConsumerPlantCareApi.md#beginner_guidance) | **POST** /beginner-guidance | Beginner-friendly plant guidance without jargon
*ConsumerPlantCareApi* | [**dynamic_care**](docs/ConsumerPlantCareApi.md#dynamic_care) | **POST** /dynamic-care | Hyper-localized dynamic plant care recommendations
*ConsumerPlantCareApi* | [**safe_identification**](docs/ConsumerPlantCareApi.md#safe_identification) | **POST** /safe-identification | Safe plant identification with toxic lookalike warnings
*EnvironmentalApi* | [**calculate_environmental_impact**](docs/EnvironmentalApi.md#calculate_environmental_impact) | **POST** /environmental-impact-engine | Calculate environmental impact
*GeographicApi* | [**county_lookup**](docs/GeographicApi.md#county_lookup) | **POST** /county-lookup | Search for counties
*LeafEnginesApi* | [**leafengines_query**](docs/LeafEnginesApi.md#leafengines_query) | **POST** /leafengines-query | Query plant-environment compatibility
*SatelliteDataApi* | [**get_satellite_data**](docs/SatelliteDataApi.md#get_satellite_data) | **POST** /alpha-earth-environmental-enhancement | Get satellite environmental data
*SoilAnalysisApi* | [**get_live_agricultural_data**](docs/SoilAnalysisApi.md#get_live_agricultural_data) | **POST** /live-agricultural-data | Get live agricultural data
*SoilAnalysisApi* | [**get_planting_calendar**](docs/SoilAnalysisApi.md#get_planting_calendar) | **POST** /multi-parameter-planting-calendar | Get planting calendar recommendations
*SoilAnalysisApi* | [**get_soil_data**](docs/SoilAnalysisApi.md#get_soil_data) | **POST** /get-soil-data | Get soil analysis data
*TurboQuantApi* | [**turbo_quant_capabilities**](docs/TurboQuantApi.md#turbo_quant_capabilities) | **POST** /turbo-quant-capabilities | Query TurboQuant device capabilities
*VRTApi* | [**generate_vrt_prescription**](docs/VRTApi.md#generate_vrt_prescription) | **POST** /generate-vrt-prescription | Generate VRT prescription map
*WaterQualityApi* | [**get_territorial_water_analytics**](docs/WaterQualityApi.md#get_territorial_water_analytics) | **POST** /territorial-water-analytics | Get territorial water analytics
*WaterQualityApi* | [**get_water_quality**](docs/WaterQualityApi.md#get_water_quality) | **POST** /territorial-water-quality | Get water quality data


## Documentation For Models

 - [AIAnalysis](docs/AIAnalysis.md)
 - [AIAnalysisRecommendationsInner](docs/AIAnalysisRecommendationsInner.md)
 - [BeginnerGuidance](docs/BeginnerGuidance.md)
 - [BeginnerGuidanceDetailedExplanation](docs/BeginnerGuidanceDetailedExplanation.md)
 - [BeginnerGuidanceMetadata](docs/BeginnerGuidanceMetadata.md)
 - [BeginnerGuidanceRequest](docs/BeginnerGuidanceRequest.md)
 - [BeginnerGuidanceRequestLocation](docs/BeginnerGuidanceRequestLocation.md)
 - [BeginnerGuidanceRequestPlantContext](docs/BeginnerGuidanceRequestPlantContext.md)
 - [CalculateCarbonCreditsRequest](docs/CalculateCarbonCreditsRequest.md)
 - [CalculateEnvironmentalImpactRequest](docs/CalculateEnvironmentalImpactRequest.md)
 - [CalculateEnvironmentalImpactRequestProposedTreatmentsInner](docs/CalculateEnvironmentalImpactRequestProposedTreatmentsInner.md)
 - [CalculateEnvironmentalImpactRequestSoilData](docs/CalculateEnvironmentalImpactRequestSoilData.md)
 - [CalculateEnvironmentalImpactRequestWaterBodyData](docs/CalculateEnvironmentalImpactRequestWaterBodyData.md)
 - [CarbonCreditCalculation](docs/CarbonCreditCalculation.md)
 - [CarbonCreditCalculationCalculationDetails](docs/CarbonCreditCalculationCalculationDetails.md)
 - [CarbonCreditCalculationCalculationDetailsMetadata](docs/CarbonCreditCalculationCalculationDetailsMetadata.md)
 - [CarbonCreditCalculationCreditRecord](docs/CarbonCreditCalculationCreditRecord.md)
 - [County](docs/County.md)
 - [CountyLookup200Response](docs/CountyLookup200Response.md)
 - [CountyLookupRequest](docs/CountyLookupRequest.md)
 - [DynamicCare](docs/DynamicCare.md)
 - [DynamicCareCareRecommendations](docs/DynamicCareCareRecommendations.md)
 - [DynamicCareCareRecommendationsHumidity](docs/DynamicCareCareRecommendationsHumidity.md)
 - [DynamicCareCareRecommendationsLight](docs/DynamicCareCareRecommendationsLight.md)
 - [DynamicCareCareRecommendationsWatering](docs/DynamicCareCareRecommendationsWatering.md)
 - [DynamicCareCurrentConditions](docs/DynamicCareCurrentConditions.md)
 - [DynamicCareMetadata](docs/DynamicCareMetadata.md)
 - [DynamicCarePlant](docs/DynamicCarePlant.md)
 - [DynamicCareRequest](docs/DynamicCareRequest.md)
 - [DynamicCareRequestContainerDetails](docs/DynamicCareRequestContainerDetails.md)
 - [DynamicCareRequestEnvironment](docs/DynamicCareRequestEnvironment.md)
 - [DynamicCareRequestLocation](docs/DynamicCareRequestLocation.md)
 - [EnvironmentalImpact](docs/EnvironmentalImpact.md)
 - [EnvironmentalImpactDetailedAnalysis](docs/EnvironmentalImpactDetailedAnalysis.md)
 - [EnvironmentalImpactDetailedAnalysisEcoAlternatives](docs/EnvironmentalImpactDetailedAnalysisEcoAlternatives.md)
 - [EnvironmentalImpactDetailedAnalysisEcoAlternativesAlternativesInner](docs/EnvironmentalImpactDetailedAnalysisEcoAlternativesAlternativesInner.md)
 - [EnvironmentalImpactDetailedAnalysisRunoffRisk](docs/EnvironmentalImpactDetailedAnalysisRunoffRisk.md)
 - [EnvironmentalImpactImpactAssessment](docs/EnvironmentalImpactImpactAssessment.md)
 - [Error](docs/Error.md)
 - [GenerateSmartReportSummaryRequest](docs/GenerateSmartReportSummaryRequest.md)
 - [GenerateVRTPrescriptionRequest](docs/GenerateVRTPrescriptionRequest.md)
 - [GetAgriculturalIntelligenceRequest](docs/GetAgriculturalIntelligenceRequest.md)
 - [GetLiveAgriculturalDataRequest](docs/GetLiveAgriculturalDataRequest.md)
 - [GetPlantingCalendarRequest](docs/GetPlantingCalendarRequest.md)
 - [GetSatelliteDataRequest](docs/GetSatelliteDataRequest.md)
 - [GetSeasonalPlanningAssistantRequest](docs/GetSeasonalPlanningAssistantRequest.md)
 - [GetSeasonalPlanningAssistantRequestLocation](docs/GetSeasonalPlanningAssistantRequestLocation.md)
 - [GetSoilDataRequest](docs/GetSoilDataRequest.md)
 - [GetTerritorialWaterAnalyticsRequest](docs/GetTerritorialWaterAnalyticsRequest.md)
 - [GetTerritorialWaterAnalyticsRequestDateRange](docs/GetTerritorialWaterAnalyticsRequestDateRange.md)
 - [LeafEnginesCompatibility](docs/LeafEnginesCompatibility.md)
 - [LeafEnginesCompatibilityData](docs/LeafEnginesCompatibilityData.md)
 - [LeafEnginesCompatibilityDataBreakdown](docs/LeafEnginesCompatibilityDataBreakdown.md)
 - [LeafEnginesCompatibilityDataBreakdownSoil](docs/LeafEnginesCompatibilityDataBreakdownSoil.md)
 - [LeafEnginesCompatibilityDataMetadata](docs/LeafEnginesCompatibilityDataMetadata.md)
 - [LeafEnginesCompatibilityUsage](docs/LeafEnginesCompatibilityUsage.md)
 - [LeafenginesQueryRequest](docs/LeafenginesQueryRequest.md)
 - [LeafenginesQueryRequestLocation](docs/LeafenginesQueryRequestLocation.md)
 - [LeafenginesQueryRequestOptions](docs/LeafenginesQueryRequestOptions.md)
 - [LeafenginesQueryRequestPlant](docs/LeafenginesQueryRequestPlant.md)
 - [LeafenginesQueryRequestPlantCareRequirements](docs/LeafenginesQueryRequestPlantCareRequirements.md)
 - [LeafenginesQueryRequestPlantCareRequirementsSoilPhRange](docs/LeafenginesQueryRequestPlantCareRequirementsSoilPhRange.md)
 - [LiveAgriculturalData](docs/LiveAgriculturalData.md)
 - [LiveAgriculturalDataData](docs/LiveAgriculturalDataData.md)
 - [PlantingCalendar](docs/PlantingCalendar.md)
 - [SafeIdentification](docs/SafeIdentification.md)
 - [SafeIdentificationConfidenceBreakdown](docs/SafeIdentificationConfidenceBreakdown.md)
 - [SafeIdentificationIdentification](docs/SafeIdentificationIdentification.md)
 - [SafeIdentificationIdentificationPrimaryMatch](docs/SafeIdentificationIdentificationPrimaryMatch.md)
 - [SafeIdentificationMetadata](docs/SafeIdentificationMetadata.md)
 - [SafeIdentificationRequest](docs/SafeIdentificationRequest.md)
 - [SafeIdentificationRequestContext](docs/SafeIdentificationRequestContext.md)
 - [SafeIdentificationRequestLocation](docs/SafeIdentificationRequestLocation.md)
 - [SafeIdentificationRequestLocationCoordinates](docs/SafeIdentificationRequestLocationCoordinates.md)
 - [SafeIdentificationSafetyAnalysis](docs/SafeIdentificationSafetyAnalysis.md)
 - [SafeIdentificationSafetyAnalysisLookalikesInner](docs/SafeIdentificationSafetyAnalysisLookalikesInner.md)
 - [SatelliteData](docs/SatelliteData.md)
 - [SeasonalPlanningResponse](docs/SeasonalPlanningResponse.md)
 - [SeasonalPlanningResponseRecommendations](docs/SeasonalPlanningResponseRecommendations.md)
 - [SeasonalPlanningResponseWeatherData](docs/SeasonalPlanningResponseWeatherData.md)
 - [SmartReportSummary](docs/SmartReportSummary.md)
 - [SmartReportSummarySummary](docs/SmartReportSummarySummary.md)
 - [SoilData](docs/SoilData.md)
 - [TerritorialWaterAnalytics](docs/TerritorialWaterAnalytics.md)
 - [TerritorialWaterAnalyticsAnalytics](docs/TerritorialWaterAnalyticsAnalytics.md)
 - [TurboQuantCapabilities](docs/TurboQuantCapabilities.md)
 - [TurboQuantCapabilitiesEstimatedLatencyMs](docs/TurboQuantCapabilitiesEstimatedLatencyMs.md)
 - [TurboQuantCapabilitiesRequest](docs/TurboQuantCapabilitiesRequest.md)
 - [VRTPrescription](docs/VRTPrescription.md)
 - [VRTPrescriptionZonesInner](docs/VRTPrescriptionZonesInner.md)
 - [VisualCropAnalysis](docs/VisualCropAnalysis.md)
 - [VisualCropAnalysisAnalysis](docs/VisualCropAnalysisAnalysis.md)
 - [VisualCropAnalysisRequest](docs/VisualCropAnalysisRequest.md)
 - [VisualCropAnalysisRequestLocation](docs/VisualCropAnalysisRequestLocation.md)
 - [WaterQuality](docs/WaterQuality.md)


<a id="documentation-for-authorization"></a>
## Documentation For Authorization


Authentication schemes defined for the API:
<a id="ApiKeyAuth"></a>
### ApiKeyAuth

- **Type**: API key
- **API key parameter name**: x-api-key
- **Location**: HTTP header


## Author

support@soilsidekickpro.com


