SoilSidekick Pro API
Project description
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 windowX-RateLimit-Remaining: Remaining requests in windowX-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 millisecondsX-Response-Time-Target: Target response time for this endpointX-Response-Time-Max: Maximum acceptable response timeX-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 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
Requirements.
Python 3.10+
Installation & Usage
pip install
If the python package is hosted on a repository, you can install directly using:
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:
import soilsidekick
Setuptools
Install via Setuptools.
python setup.py install --user
(or sudo python setup.py install to install the package for all users)
Then import the package:
import soilsidekick
Tests
Execute pytest to run the tests.
Getting Started
Please follow the installation procedure and then run the following:
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 | POST /smart-report-summary | Generate AI report summary |
| AIServicesApi | get_agricultural_intelligence | POST /agricultural-intelligence | Get AI-powered agricultural insights |
| AIServicesApi | get_seasonal_planning_assistant | POST /seasonal-planning-assistant | Get seasonal planning recommendations |
| AIServicesApi | visual_crop_analysis | POST /visual-crop-analysis | Analyze crop images |
| CarbonApi | calculate_carbon_credits | POST /carbon-credit-calculator | Calculate carbon credits |
| ConsumerPlantCareApi | beginner_guidance | POST /beginner-guidance | Beginner-friendly plant guidance without jargon |
| ConsumerPlantCareApi | dynamic_care | POST /dynamic-care | Hyper-localized dynamic plant care recommendations |
| ConsumerPlantCareApi | safe_identification | POST /safe-identification | Safe plant identification with toxic lookalike warnings |
| EnvironmentalApi | calculate_environmental_impact | POST /environmental-impact-engine | Calculate environmental impact |
| GeographicApi | county_lookup | POST /county-lookup | Search for counties |
| LeafEnginesApi | leafengines_query | POST /leafengines-query | Query plant-environment compatibility |
| SatelliteDataApi | get_satellite_data | POST /alpha-earth-environmental-enhancement | Get satellite environmental data |
| SoilAnalysisApi | get_live_agricultural_data | POST /live-agricultural-data | Get live agricultural data |
| SoilAnalysisApi | get_planting_calendar | POST /multi-parameter-planting-calendar | Get planting calendar recommendations |
| SoilAnalysisApi | get_soil_data | POST /get-soil-data | Get soil analysis data |
| TurboQuantApi | turbo_quant_capabilities | POST /turbo-quant-capabilities | Query TurboQuant device capabilities |
| VRTApi | generate_vrt_prescription | POST /generate-vrt-prescription | Generate VRT prescription map |
| WaterQualityApi | get_territorial_water_analytics | POST /territorial-water-analytics | Get territorial water analytics |
| WaterQualityApi | get_water_quality | POST /territorial-water-quality | Get water quality data |
Documentation For Models
- AIAnalysis
- AIAnalysisRecommendationsInner
- BeginnerGuidance
- BeginnerGuidanceDetailedExplanation
- BeginnerGuidanceMetadata
- BeginnerGuidanceRequest
- BeginnerGuidanceRequestLocation
- BeginnerGuidanceRequestPlantContext
- CalculateCarbonCreditsRequest
- CalculateEnvironmentalImpactRequest
- CalculateEnvironmentalImpactRequestProposedTreatmentsInner
- CalculateEnvironmentalImpactRequestSoilData
- CalculateEnvironmentalImpactRequestWaterBodyData
- CarbonCreditCalculation
- CarbonCreditCalculationCalculationDetails
- CarbonCreditCalculationCalculationDetailsMetadata
- CarbonCreditCalculationCreditRecord
- County
- CountyLookup200Response
- CountyLookupRequest
- DynamicCare
- DynamicCareCareRecommendations
- DynamicCareCareRecommendationsHumidity
- DynamicCareCareRecommendationsLight
- DynamicCareCareRecommendationsWatering
- DynamicCareCurrentConditions
- DynamicCareMetadata
- DynamicCarePlant
- DynamicCareRequest
- DynamicCareRequestContainerDetails
- DynamicCareRequestEnvironment
- DynamicCareRequestLocation
- EnvironmentalImpact
- EnvironmentalImpactDetailedAnalysis
- EnvironmentalImpactDetailedAnalysisEcoAlternatives
- EnvironmentalImpactDetailedAnalysisEcoAlternativesAlternativesInner
- EnvironmentalImpactDetailedAnalysisRunoffRisk
- EnvironmentalImpactImpactAssessment
- Error
- GenerateSmartReportSummaryRequest
- GenerateVRTPrescriptionRequest
- GetAgriculturalIntelligenceRequest
- GetLiveAgriculturalDataRequest
- GetPlantingCalendarRequest
- GetSatelliteDataRequest
- GetSeasonalPlanningAssistantRequest
- GetSeasonalPlanningAssistantRequestLocation
- GetSoilDataRequest
- GetTerritorialWaterAnalyticsRequest
- GetTerritorialWaterAnalyticsRequestDateRange
- LeafEnginesCompatibility
- LeafEnginesCompatibilityData
- LeafEnginesCompatibilityDataBreakdown
- LeafEnginesCompatibilityDataBreakdownSoil
- LeafEnginesCompatibilityDataMetadata
- LeafEnginesCompatibilityUsage
- LeafenginesQueryRequest
- LeafenginesQueryRequestLocation
- LeafenginesQueryRequestOptions
- LeafenginesQueryRequestPlant
- LeafenginesQueryRequestPlantCareRequirements
- LeafenginesQueryRequestPlantCareRequirementsSoilPhRange
- LiveAgriculturalData
- LiveAgriculturalDataData
- PlantingCalendar
- SafeIdentification
- SafeIdentificationConfidenceBreakdown
- SafeIdentificationIdentification
- SafeIdentificationIdentificationPrimaryMatch
- SafeIdentificationMetadata
- SafeIdentificationRequest
- SafeIdentificationRequestContext
- SafeIdentificationRequestLocation
- SafeIdentificationRequestLocationCoordinates
- SafeIdentificationSafetyAnalysis
- SafeIdentificationSafetyAnalysisLookalikesInner
- SatelliteData
- SeasonalPlanningResponse
- SeasonalPlanningResponseRecommendations
- SeasonalPlanningResponseWeatherData
- SmartReportSummary
- SmartReportSummarySummary
- SoilData
- TerritorialWaterAnalytics
- TerritorialWaterAnalyticsAnalytics
- TurboQuantCapabilities
- TurboQuantCapabilitiesEstimatedLatencyMs
- TurboQuantCapabilitiesRequest
- VRTPrescription
- VRTPrescriptionZonesInner
- VisualCropAnalysis
- VisualCropAnalysisAnalysis
- VisualCropAnalysisRequest
- VisualCropAnalysisRequestLocation
- WaterQuality
Documentation For Authorization
Authentication schemes defined for the API:
ApiKeyAuth
- Type: API key
- API key parameter name: x-api-key
- Location: HTTP header
Author
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file soilsidekick-3.0.0.tar.gz.
File metadata
- Download URL: soilsidekick-3.0.0.tar.gz
- Upload date:
- Size: 91.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c42a77d9ae88ce9b5542e4ff55863d12c6e348b6c0c154d662e3a204b52452d4
|
|
| MD5 |
e7248eecb04bc9469c42749c84d72395
|
|
| BLAKE2b-256 |
40f689651d671dc8299201ed49759753cf6d693b0b461e9c15931cc6e7deac52
|
File details
Details for the file soilsidekick-3.0.0-py3-none-any.whl.
File metadata
- Download URL: soilsidekick-3.0.0-py3-none-any.whl
- Upload date:
- Size: 291.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b321a076177e3cff20edc1fde95019fee148353da5eaec96c1b54653c8a3a153
|
|
| MD5 |
c1c050d18347efe1651fc6917078da87
|
|
| BLAKE2b-256 |
e31a92c4a4b27515d5bf9dd0dfac49e74c77f3551662fbd126e40000aaf590b8
|