Update bid multipliers for a campaign
GobbleCube Enterprise API FINAL (1.0.0)
All requests must include:
X-API-Key: Your API key (90-day expiry, managed through dashboard)Platform: Platform name (zepto)
API Key Management:
- API keys expire after 90 days
- Key generation and rotation managed through GobbleCube dashboard
- IP whitelisting supported for enhanced security
- Environment segregation at account level (production vs sandbox accounts)
Required Headers:
X-API-Key: Your API key for authenticationPlatform: Platform name (zepto)
Optional Headers:
X-Request-ID: Request ID for traceability (if not provided, one will be generated)
Response Headers:
X-Request-ID: Request ID for traceability and audit logging (always present)
- Campaign Management: Bulk creation, list, update, get details
- Keyword Management: Add, update, remove, bulk operations
- Product & City Management: Add/remove products, create groups
- Live Data: Keyword Share of Search (SOS) with real-time scraping
- T-1 Data: Detailed campaign performance metrics (yesterday's data)
- Job Management: Poll async job status, bulk job creation
Please contact your POC (Point of Contact) to get access to the Postman collection for faster integration and testing.
Rate Limits:
- Overall API: 200 requests per minute (RPM)
- Sliding Window: Rate limiting implemented using sliding window algorithm
- Per Application: Rate limits applied per API key/application
- Keyword SOS: 5 keywords every 15 minutes (per API key)
- Page Limit: Maximum page limit for all paginated GET APIs is 200 per page
Rate Limit Headers: When rate limits are approached or exceeded, the following headers are included in responses:
X-RateLimit-Limit: Maximum requests allowed per windowX-RateLimit-Remaining: Remaining requests in current windowX-RateLimit-Reset: Time when the rate limit window resets
Rate Limit Exceeded:
- HTTP Status:
429 Too Many Requests - Response includes retry-after information
- Implement exponential backoff for retries
Standard HTTP Status Codes:
200 OK- Successful request201 Created- Resource created successfully202 Accepted- Request accepted for async processing400 Bad Request- Invalid request parameters or payload401 Unauthorized- Missing or invalid API key403 Forbidden- Insufficient permissions404 Not Found- Resource not found429 Too Many Requests- Rate limit exceeded500 Internal Server Error- Server error502 Bad Gateway- Gateway error503 Service Unavailable- Service temporarily unavailable
Error Response Format:
{
"code": "ERROR_CODE",
"message": "Human-readable error message",
"details": "Additional error details (optional)"
}
Retry Logic:
- Safe to retry API calls with exponential backoff up to 3 times
- Use
X-Request-IDfrom response to track retries - Do not retry on 4xx errors (except 429 with retry-after)
- Retry on 5xx errors and network failures
- All operations support idempotency
- Duplicate request detection mechanism in place
- Use
X-Request-IDheader to ensure idempotency across retries - Same request with same
X-Request-IDwill return same result
- Requests are queued and processed based on workflow type priority
- For deterministic ordering requirements, contact support for guidance
- Campaign-level ordering can be configured if needed
Platform Sync:
- Two-way sync between GobbleCube and platform ad consoles
- Platform to GobbleCube sync: Maximum SLA of 3 hours
- Data accuracy maintained through continuous synchronization
T-1 Data:
- T-1 data represents yesterday's performance metrics
- Available through
GET /v1/t1-dataendpoint - Data is refreshed daily
Historical Data:
- Historical SOS snapshots available
- Live data available through API endpoints
Request Tracking:
- All requests return
X-Request-IDin response headers - Request ID used for logging and audit trail
- Include
X-Request-IDin support requests for faster resolution
Audit Trail:
- All API requests logged with: request ID, entity ID, timestamp, payload, response code
- Log retention: 90 days
- Audit trails available through request logs
Daily Summary Logs:
- Automated daily summary logs will be sent on email
- Includes all POST and GET activities
- Contact support for access
Version Policy:
- Current version:
v1 - Backward compatibility maintained across minor versions
- Major versions (breaking changes) released as new version endpoints
- 1 month deprecation notice period for breaking changes
- Communication via Slack channels for version updates
Versioning Strategy:
- Standard REST-based versioning
- Version included in URL path:
/v1/... - Future versions:
/v2/..., etc.
- Production:
https://enterprise-api.gobblecube.ai(Live )
Environment Segregation:
- Separate accounts for production and sandbox
- Same API endpoints, different account credentials
- IP whitelisting supported per environment
Data Encryption:
- Data encrypted in transit (TLS/HTTPS)
- Data encrypted at rest
- HTTP protocol not allowed (HTTPS only)
Data Isolation:
- Customer data in separate databases
- Role-based access control (RBAC) ensures Principle of Least Privilege (POLP)
- Cross-client data access prevented through architecture
Certifications:
- SOC2 Type II compliance
- Yearly penetration testing (next report: December 2026)
- MFA enabled by default (no password-based authentication)
Contact Support: Name: API Support Email: ishant.dahiya@gobblecube.ai
Download OpenAPI description
Languages
Servers
https://enterprise-api.gobblecube.ai
- https://enterprise-api.gobblecube.ai/v1/campaigns/{campaign_id}/bid-multipliers
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://enterprise-api.gobblecube.ai/v1/campaigns/2005795/bid-multipliers \
-H 'Content-Type: application/json' \
-H 'Platform: zepto' \
-d '{
"tos": {
"base": 0,
"premium": 10,
"super_saver": 20
},
"zpu": {
"base": 0,
"premium": 5,
"super_saver": 15
}
}'Response
application/json
{ "success": true, "message": "Bid multipliers updated successfully", "data": { "campaign_id": "string", "bid_multipliers": { … }, "updated_at": "2024-01-15T10:30:00.000000" } }
- https://enterprise-api.gobblecube.ai/v1/campaigns/{campaign_id}/keywords/update-bid
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://enterprise-api.gobblecube.ai/v1/campaigns/string/keywords/update-bid \
-H 'Content-Type: application/json' \
-H 'x-api-key: YOUR_API_KEY_HERE' \
-H 'x-platform: zepto' \
-d '{
"keywords": [
{
"keyword": "shampoo",
"match_type": "exact",
"bid": 150
}
]
}'Response
application/json
{ "success": true, "message": "Updated 1 of 1 keyword(s) successfully", "data": { "campaign_id": "2005795", "results": [ … ], "updated_at": "2026-01-22T12:47:21.542465" } }
- https://enterprise-api.gobblecube.ai/v1/campaigns/{campaign_id}/keywords
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://enterprise-api.gobblecube.ai/v1/campaigns/string/keywords?page=1&limit=50' \
-H 'x-api-key: YOUR_API_KEY_HERE' \
-H 'x-platform: zepto'Response
application/json
{ "items": [ { … }, { … }, { … }, { … }, { … }, { … }, { … }, { … }, { … }, { … }, { … }, { … }, { … }, { … }, { … }, { … }, { … }, { … }, { … }, { … }, { … }, { … }, { … }, { … }, { … }, { … }, { … }, { … }, { … }, { … }, { … }, { … }, { … }, { … }, { … }, { … }, { … }, { … }, { … } ], "total": 39, "page": 1, "limit": 50, "total_pages": 1 }
- https://enterprise-api.gobblecube.ai/v1/campaigns/{campaign_id}/products
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://enterprise-api.gobblecube.ai/v1/campaigns/string/products?page=1&limit=50' \
-H 'x-api-key: YOUR_API_KEY_HERE' \
-H 'x-platform: zepto'Response
application/json
{ "items": [ { … }, { … }, { … }, { … } ], "total": 4, "page": 1, "limit": 50, "total_pages": 1 }
- https://enterprise-api.gobblecube.ai/v1/campaigns/{campaign_id}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
https://enterprise-api.gobblecube.ai/v1/campaigns/2006799 \
-H 'Platform: zepto'Response
application/json
{ "id": "2006799", "name": "pantene shampoo cat", "platform_name": "zepto", "status": "PAUSED", "start_date": "2024-11-30T00:00:00", "creation_date": "2024-11-26T02:15:03", "end_date": null, "ro_id": "PLA_MIGRATED_860004", "budget_type": "DAILY_BUDGET_WITH_MAX_CAP", "bid": 0, "daily_budget": 500, "total_budget": 0, "type": "PLA", "sub_type": "AUCTION", "bidding_stratergy": "FIXED", "bid_multipliers": { "tos": { … }, "zpu": { … } }, "city_targets": [], "store_targets": [], "brand_id": "973bb987-3835-40c6-b3ae-0914a99e8dfe", "keyword_targeting_enabled": false, "campaign_config": { "id": 5575, "campaign_id": 2006799, "city_targeting": "ALL", "store_targeting": "ALL", "priority": "NORMAL", "product_targeting": "MANUAL", "bid_targeting": "SUBCATEGORY", "multiplier_config": { … } }, "last_updated_on": "2026-01-21T07:12:08.884491", "brand_name": "pantene", "portfolio": null, "daily_budget_base": null, "total_budget_base": null, "adgroup_list": [], "keyword_list": [ { … } ], "product_list": [ { … }, { … }, { … }, { … } ], "pause_after_creation": false, "asset_type": "PRODUCT_LISTING", "recommendation_targeting": null, "sys_id": "3281e971-d3ef-42cf-9833-0eaf6f72589f", "ruleset": null, "tags": null }