Need help with your APIs? I offer API discovery, governance & evangelism services. Explore services →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

Tackle.io Opportunities API

Create, read, update, and list co-sell opportunities — the partner-originated (Outbound / Partner Referral) and AWS-originated (Inbound/ AWS Referral) deals tracked in AWS Partner Central. Includes theopportunity history endpoint for inspecting cloud-side request andresponse detail.

Tackle.io Opportunities API is one of 28 APIs that Tackle.io publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

Tagged areas include Opportunities. The published artifact set on APIs.io includes an OpenAPI specification and an API reference.

This API exposes 8 operations across 5 paths, and defines 78 schemas. It is described by OpenAPI 3.0.3, at version 1.0.0.

Requests are made against a single base URL, https://contracts.tackle.io.

8 operations 5 paths 78 schemas 5 GET3 POST

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.0.3
API Version
1.0.0
Base URL
https://api.tackle.io
Authentication
HTTP Bearer
Resource Areas
1

Authentication & Security 1

Tackle.io Opportunities API declares 1 security scheme for authenticating requests. It accepts HTTP bearer tokens (JWT) (tackleJwt). By default, every request must be authenticated.

  • tackleJwt — Tackle-issued JWT (interactive user or MTM token).

Paths & Operations 8

Across 5 paths, the API surfaces 8 operations — 5 GET, 3 POST. Each is listed below with its method, path, parameters, and response codes.

Opportunities 8

Create, read, update, and list co-sell opportunities — the partner- originated (Outbound / Partner Referral) and AWS-originated (Inbound / AWS Referral) deals tracked in AWS Partn…

GET
/api/opportunities
List co-sell opportunities
listOpportunities 17 params → 200400401500
POST
/api/opportunities
Create a co-sell opportunity
createOpportunity 1 param body → 202400401409500
GET
/api/opportunities/{opportunity_id}
Get a co-sell opportunity
getOpportunity 1 param → 200401404500
POST
/api/opportunities/{opportunity_id}
Update a co-sell opportunity
updateOpportunity 2 params body → 202400401404409423500
GET
/api/opportunities/{opportunity_id}/events
List opportunity events
listOpportunityEvents 2 params → 200401500
GET
/api/opportunities/{id}
Get an opportunity by ID
getOpportunity 1 param → 200400401403404500
POST
/api/opportunities/{id}
Update an opportunity
updateOpportunity 2 params body → 202400401403404409423500
GET
/api/opportunities/{id}/events
List the event history for an opportunity
listOpportunityHistory 3 params → 200400401403500

Schemas 78

The contract defines 78 schemas that model the data the API accepts and returns. The most detailed are Opportunity_2 (26 properties), OpportunityMetadata (19 properties), ListOpportunitiesResponseItem (19 properties), QualificationInfo (16 properties). Each schema is shown below with its type and property counts.

Need
string
Need qualification.
ListOpportunitiesResponse
object
5 properties
OpportunityHistoryEventPrincipal
object
Actor attribution for a history event. For test-environment-only operations (acceptOpportunity, rejectOpportunity, closeByAdminOpportunity, confirmCloseWonOppo…
6 properties
RebateExtension
object
Rebate extension. Output only.
5 properties
Money
object
An amount of money with its currency type. The whole Money object is replaced atomically when included on update — there is no per-field merge of currencyCode,…
3 properties
Error
object
Error envelope returned for typed error responses. Some 4xx and 5xx responses (such as direct Unauthorized and Internal Server Error responses) may instead ret…
1 property
PhoneNumberShortCode
object
A short code — region-restricted phone number.
2 properties
OpportunityLine
object
Opportunity line item. Output only.
7 properties
Date
object
A calendar date. Any field may be zero to represent a partial date (for example, year: 2026, month: 0, day: 0 for "sometime in 2026"). The whole Date object is…
3 properties
UpdateOpportunityResponse
object
1 property 1 required
PostalAddress
object
A structured postal address compatible with Google's address formatting model. For most regions, populate regionCode, addressLines, locality, and postalCode; t…
11 properties
OpportunityHistoryEventCloudRequest
object
One Google Cloud Channel call made on behalf of an opportunity history event. A single event may include multiple cloud requests (for example, when a sub-flow…
4 properties 3 required
OpportunityHistoryEvent
object
10 properties 4 required
OpportunityInfo
object
Contains details about the opportunity.
9 properties
OpportunityResponse
object
9 properties
SoftwareRevenue
object
4 properties
CreateOpportunityInput
object
4 properties
ExtensionStatus
string
Rebate extension status. Output only.
Error_2
object
Error response body. The service emits only a human-readable message. A request identifier may be included in response headers for support and troubleshooting.
1 property
Account
object
7 properties
ExtensionRejectionReason
string
Rebate extension rejection reason. Output only.
CustomerInfo
object
Customer information provided during opportunity creation.
3 properties
OpportunityInput
object
1 property
Region
string
Geographical region where the end customer is located. The partner needs sell authorization in this region to qualify for deal registration incentives.
ListOpportunityEvents
object
8 properties 3 required
SalesCycle
object
Information on the sales cycle.
4 properties
CustomerDetails
object
Customer details used to create a new customer or map to an existing one.
5 properties
WinLossInfo
object
Win / loss details. Populated after the opportunity is closed. Output only.
7 properties
OpportunityAttributeSyncing
object
Subscription information for opportunities whose attributes are kept in sync with an upstream data source through Tackle's Data Mapper feature. Present only wh…
1 property
DecisionPhase
string
Decision phase for the opportunity.
IncentiveType
string
Output only. Incentive program the opportunity is eligible for: - INCENTIVETYPEUNSPECIFIED — eligibility not yet determined. - DEALREGISTRATION — partner regis…
SupportLevel
string
Support level for an ISV opportunity.
Role
string
Role of a customer contact. Most values are role categories that apply to any opportunity; CHRONICLESIEMCONTACT and CHRONICLESOARCONTACT are specific to engage…
Source
string
Indicates the origin of the opportunity: - SOURCEUNKNOWN — origin not recorded; should not be observed on supported responses. - GOOGLE — sourced by a Google s…
ListOpportunityHistoryResponse
object
2 properties 1 required
ProductCategory
string
Product category that the opportunity belongs to.
DeliveryModel
string
Delivery model for an ISV opportunity.
DataMapper
object
1 property
State
string
Lifecycle state of the opportunity: - STATEUNSPECIFIED — placeholder default; should not be sent on requests. - DRAFT — saved but not yet submitted to Google.…
Opportunity_2
object
Tackle's opportunity payload. Mirrors the Google Cloud Channel Opportunity (v1alpha1) schema and adds a $tkl-metadata block carrying Tackle-specific state — CR…
26 properties
Timeline
string
Timeline qualification.
Contacts
array
OpportunityCRMInfo
object
CRM linkage for the opportunity. Both fields are nullable so that callers can explicitly clear them.
2 properties
OperationType
string
Transaction type for the opportunity: - OPERATIONTYPEUNSPECIFIED — placeholder default; should not be sent on create. - NEW — net-new transaction with a new cu…
UpdateOpportunityRequest
Tackle-shaped opportunity payload for update. Only the fields the caller wants to change need to be present; the server merges with the existing opportunity. T…
AccessLevel
string
Access level for an opportunity team member.
CustomerContact
object
Customer contact. Output only.
5 properties
QualificationInfo
object
Qualification information for the opportunity.
16 properties
PartnerReadyToClose
string
Partner ready-to-close indicator. Can be edited after the opportunity is accepted. Setting to MIGRATIONIMPL corresponds to Closed/Won; setting to CLOSEDLOST co…
Marketing
object
5 properties
Opportunity
object
12 properties
OpportunityHistoryEventCloudResponse
object
The Google Cloud Channel response received for a corresponding OpportunityHistoryEventCloudRequest.
5 properties 2 required
Contact
object
Contact details.
4 properties
AwsOpportunityTeam
object
4 properties
Budget
string
Budget qualification. Required for regular and 2-tier opportunities; optional for ISV opportunities.
Industry
string
Customer's primary industry.
Customer
object
2 properties
Authority
string
Authority qualification.
HistoryOperationId
string
Operation identifier stored on history events returned by GET /api/opportunities/{id}/events. Treated as a free-form string on the wire: the documented values…
TackleOperationIdUpdate
string
Tackle-side operation identifier accepted on the tackle-operation-id header by POST /api/opportunities/{id}. The create-side values (createOpportunity, createD…
PartnerInfo
object
Partner information populated after the opportunity is accepted.
11 properties
ProductFamily
string
Product family that the opportunity belongs to.
Insights
object
AWS-derived insights about the opportunity, populated by AWS Partner Central when available.
2 properties
PhoneNumber
object
Wire-format phone number. See https://github.com/google/libphonenumber.
3 properties
OpportunityMetadata_2
object
Tackle-specific metadata attached to every opportunity. Carried in the $tkl-metadata key of the payload.
13 properties
ContractVehicle
string
Contract vehicle for an ISV opportunity.
OpportunityTeamMember
object
Opportunity team member. Output only.
3 properties
Project
object
12 properties
Stage
string
Sales stage of the opportunity. The STAGEUNSPECIFIED, MIGRATIONIMPL, CLOSEDLOST, and CLOSEDADMIN values are set only by the API on the integrator's behalf base…
Address
object
5 properties
ExtensionReason
string
Rebate extension reason. Output only.
ListOpportunitiesResponseItem
object
19 properties
LifeCycle
object
8 properties
PartnerViewType
string
Indicates what view the partner has access to. Non-sourcing service partners have limited view; no updates are allowed on the opportunity in LIMITED view. Outp…
OpportunityType
string
Indicates if the opportunity is a regular / ISV / 2-tier deal. If not specified, treated as REGULAR. Cannot be edited after the opportunity is accepted.
IsvSolutionConnectInfo
object
Information for an opportunity that goes through Google's ISV Solution Connect program.
7 properties
OpportunityMetadata
object
19 properties 4 required
OpportunityHistoryEventActivityDetails
object
Human-readable details about a history event, intended for display in opportunity audit trails.
2 properties

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

tackleio-opportunities-api-openapi.yml Raw ↑

Other APIs Tackle.io publishes across the network.

Tackle.io Authentication API
Tackle.io Contracts API
Tackle.io Currencies API
Tackle.io Customers API
Tackle.io Disbursements API
Tackle.io Entitlements API
Tackle.io Groups API
Tackle.io Invitations API
Tackle.io Invoices API
Tackle.io Marketplace API
Tackle.io Metering API
Tackle.io Notifications API