I tried retrieving Opportunity information from AWS Partner Central using AWS CLI

I tried retrieving Opportunity information from AWS Partner Central using AWS CLI

I tried out how to retrieve Opportunity information from AWS Partner Central using the AWS CLI. I will introduce the information that can be retrieved and the differences between two commands, get-opportunity and get-aws-opportunity-summary, as well as examples of performing batch operations targeting multiple Opportunities.
2026.09.02

This page has been translated by machine translation. View original

Good evening, this is Chiba (Yuki).

AWS Partner Central is a hub for AWS partners to manage their collaboration with AWS. It provides features such as co-selling, product/solution sales on AWS Marketplace, and application for program benefits like MDF (Marketing Development Funds).

Regarding co-selling, deals that partners are responsible for are registered in this portal as "Opportunities", enabling information sharing and management with the AWS sales team.

These Opportunities can be viewed from AWS Partner Central on the AWS Management Console, but checking them one by one can be cumbersome when you want to review a large volume all at once.

This time, I tried an approach to retrieve Opportunity information using the AWS CLI.

What We'll Do

I'll execute the following two commands:

  • aws partnercentral-selling get-opportunity
    • A command to retrieve detailed information about deals registered by a partner
  • aws partnercentral-selling get-aws-opportunity-summary
    • A command to retrieve AWS-side status for deals and AI insights (quality scores, recommended actions, etc.)

I'll check what kind of information can be obtained from each, and what differences exist between them.

At the end, I'll also cover an example command for bulk retrieval of a large volume of data.

The prerequisites are as follows:

  • Registration with AWS Partner Central is complete
  • Access is possible with an IAM identity that has the necessary permissions

https://docs.aws.amazon.com/ja_jp/partner-central/latest/getting-started/what-is-partner-central.html

Retrieving Deal Information with aws partnercentral-selling get-opportunity

aws partnercentral-selling get-opportunity is a command that retrieves detailed information (customer company information, deal content, sales activity history, stage, etc.) about deals that partners have registered themselves.

An example of options to specify when running the command is as follows:

aws partnercentral-selling get-opportunity \
  --catalog AWS \
  --identifier <Opportunity ID> \
  --region us-east-1
Option Required Description
--catalog AWS or Sandbox. Use AWS to view production deals
--identifier The Opportunity ID of the deal (O + digits, pattern O[0-9]{1,19})
--region - Explicitly specify us-east-1

An image of the command output is as follows:

{
    "Catalog": "<Catalog type (AWS or Sandbox)>",
    "PrimaryNeedsFromAws": [
        "<Request content to AWS (Co-Sell type. Example: Co-Sell - Deal Support)>"
    ],
    "NationalSecurity": "<Whether this is a national security-related deal (Yes/No)>",
    "PartnerOpportunityIdentifier": "<Identifier for this deal in the partner's CRM>",
    "Customer": {
        "Account": {
            "Industry": "<End customer's industry>",
            "CompanyName": "<End customer's company name>",
            "WebsiteUrl": "<End customer's company website URL>",
            "AwsAccountId": "<End customer's AWS account ID (12 digits)>",
            "Address": {
                "PostalCode": "<End customer's postal code>",
                "CountryCode": "<End customer's country code (ISO, e.g.: JP)>"
            }
        },
        "Contacts": [
            {
                "Email": "<End customer contact's email address>",
                "FirstName": "<End customer contact's first name>",
                "LastName": "<End customer contact's last name>",
                "BusinessTitle": "<End customer contact's job title>",
                "Phone": "<End customer contact's phone number>"
            }
        ]
    },
    "Project": {
        "DeliveryModels": [
            "<Delivery model. SaaS or PaaS / BYOL or AMI / Managed Services / Professional Services / Resell / Other>"
        ],
        "ExpectedCustomerSpend": [
            {
                "Amount": "<Estimated amount (numeric string)>",
                "CurrencyCode": "<Currency code (USD/JPY, etc.)>",
                "Frequency": "<Frequency. Fixed to Monthly>",
                "TargetCompany": "<Aggregation target. AWS=MRR estimate calculated by AWS / Self=Partner's own TCV input>"
            }
        ],
        "Title": "<Deal title/name>",
        "CustomerBusinessProblem": "<Description of customer's challenge and partner's solution (20–2000 characters)>",
        "CustomerUseCase": "<Expected use case/workload type>",
        "SalesActivities": [
            "<Sales activities conducted. Options such as Initialized discussions with customer>"
        ]
    },
    "OpportunityType": "<Deal type. Net New Business (new) / Flat Renewal (renewal) / Expansion (expansion)>",
    "Marketing": {
        "CampaignName": "<AWS marketing campaign code>",
        "Source": "<Whether it originates from AWS marketing activity. Marketing Activity / None>",
        "AwsFundingUsed": "<Whether MDF (Marketing Development Funds) was used. Yes/No>"
    },
    "Id": "<Unique identifier for the deal. Pattern: O[0-9]{1,19}>",
    "Arn": "<ARN that uniquely identifies the deal. Format: arn:aws:partnercentral:<region>:<AWS account ID>:catalog/<Catalog>/opportunity/<Id>>",
    "LastModifiedDate": "<Last modified date and time>",
    "CreatedDate": "<Creation date and time>",
    "RelatedEntityIdentifiers": {
        "Solutions": [
            "<Associated partner solution ID. Pattern: S-[0-9]{1,19}>"
        ],
        "AwsProducts": [
            "<Associated AWS product name>"
        ],
        "AwsMarketplaceSolutions": [
            "<ARN of the associated AWS Marketplace solution>"
        ]
    },
    "LifeCycle": {
        "Stage": "<Deal progress stage. Prospect / Qualified / Technical Validation / Business Validation / Committed / Launched / Closed Lost>",
        "TargetCloseDate": "<Target date for billing start/go-live>",
        "ReviewStatus": "<AWS review status. Pending Submission / Submitted / In review / Approved / Rejected / Action Required>"
    },
    "OpportunityTeam": [
        {
            "Email": "<Contact's email address>",
            "FirstName": "<Contact's first name>",
            "LastName": "<Contact's last name>",
            "BusinessTitle": "<Role. OpportunityOwner or PartnerAccountManager>",
            "Phone": "<Contact's phone number>"
        }
    ]
}

Retrieving AWS-Side Information with aws partnercentral-selling get-aws-opportunity-summary

aws partnercentral-selling get-aws-opportunity-summary is a command that retrieves how AWS views a registered Opportunity (AWS-side personnel, AWS's own stage understanding, AI-based deal quality scores and improvement suggestions).

An example of options to specify when running the command is as follows:

aws partnercentral-selling get-aws-opportunity-summary \
  --catalog AWS \
  --related-opportunity-identifier <Opportunity ID> \
  --region us-east-1
Option Required Description
--catalog AWS or Sandbox
--related-opportunity-identifier The Opportunity ID of the deal to associate
--region - Explicitly specify us-east-1

The output image is as follows:

{
    "RelatedOpportunityId": "<Partner-side deal ID. Pattern: O[0-9]{1,19}>",
    "Origin": "<Deal origin. AWS Referral (originated from AWS) / Partner Referral (originated from partner)>",
    "InvolvementType": "<AWS involvement type. For Visibility Only / Co-Sell (co-selling)>",
    "Visibility": "<Visibility level. Full / Limited (for special programs or confidential deals)>",
    "LifeCycle": {
        "TargetCloseDate": "<Target date for billing start/go-live>",
        "Stage": "<Deal stage as understood by AWS. Empty if not yet evaluated>",
        "NextSteps": "<Immediate next steps based on AWS guidance>"
    },
    "OpportunityTeam": [
        {
            "Email": "<AWS contact's email address>",
            "FirstName": "<AWS contact's first name>",
            "LastName": "<AWS contact's last name>",
            "BusinessTitle": "<AWS contact's role. AWSSalesRep / AWSAccountOwner / WWPSPDM / PDM / PSM / ISVSM / Signatory>"
        }
    ],
    "Insights": {
        "OpportunityQuality": {
            "Score": "<Deal content richness score. Integer from 0 to 100>",
            "Trend": "<Trend from previous score. Improving / Declining / No Change>"
        },
        "Recommendations": [
            {
                "Type": "<Type of suggestion source. OpportunityQuality / SolutionRecommendation / SpecialistRecommendation>",
                "Details": "<Body of AI improvement suggestion>"
            }
        ]
    },
    "RelatedEntityIds": {
        "Solutions": [
            "<Associated partner solution ID>"
        ],
        "AwsMarketplaceSolutions": [
            "<ARN of the associated AWS Marketplace solution>"
        ]
    },
    "Customer": {
        "Contacts": []
    },
    "Project": {
        "ExpectedCustomerSpend": [
            {
                "Amount": "<Estimated amount (numeric string)>",
                "CurrencyCode": "<Currency code>",
                "Frequency": "<Frequency. Fixed to Monthly>",
                "TargetCompany": "<Aggregation target. AWS=MRR estimate calculated by AWS>"
            }
        ]
    },
    "CosellMotion": "<Engagement classification. AWS Field-engaged / Agent-engaged / Partner-led>",
    "Catalog": "<Catalog type (AWS or Sandbox)>"
}

What Is the Difference Between get-opportunity and get-aws-opportunity-summary?

I compared the information retrievable from both commands. The column names represent the following:

  • opp: Result of get-opportunity
  • summary: Result of get-aws-opportunity-summary

Top-Level Items

Item opp summary Notes
Catalog Common. AWS/Sandbox classification
Id / RelatedOpportunityId Different names but refer to the same deal ID
Arn × ARN that uniquely identifies the deal
PartnerOpportunityIdentifier × Partner CRM-side identifier
PrimaryNeedsFromAws × Request content to AWS (Co-Sell type)
NationalSecurity × Whether it is a national security-related deal
OpportunityType × New/renewal/expansion classification
Marketing (CampaignName, etc.) × Information originating from marketing initiatives
LastModifiedDate / CreatedDate × Deal's own update and creation date/time
Origin × AWS Referral / Partner Referral
InvolvementType × For Visibility Only / Co-Sell
InvolvementTypeChangeReason × Reason for InvolvementType change
Visibility × Full / Limited
CosellMotion × AWS Field-engaged / Agent-engaged / Partner-led
Insights (quality score, AI recommendations, spend insights) × AI insights unique to summary

Customer

Item opp summary Notes
Customer.Account (company name, industry, address, AWS account ID, etc.) × End customer's company information
Customer.Contacts Customer contact information

Project

Item opp summary Notes
ExpectedCustomerSpend Same name but calculated by different parties
AwsPartition Classifications such as aws-eusc
DeliveryModels / Title / CustomerBusinessProblem / CustomerUseCase / SalesActivities / ApnPrograms / CompetitorName, etc. × Group of items describing the deal content itself
ExpectedContractDuration × Contract duration used for converting TCV (total contract value) to MRR

For ExpectedCustomerSpend, get-opportunity contains the estimated spend amount entered by the partner, while get-aws-opportunity-summary contains the MRR (≈ monthly AWS usage fee) estimate calculated by AWS AI insights.

LifeCycle

Item opp summary Notes
Stage opp is the value registered by the partner, summary is AWS's understanding. Empty if not yet evaluated
TargetCloseDate Target date for billing start/go-live
NextSteps / NextStepsHistory Immediate next steps and their history
ClosedLostReason Reason code for Closed Lost
ReviewStatus / ReviewComments / ReviewStatusReason × Status of AWS deal review

Although Stage shares the same name, it does not refer to the same value. From a quick check, cases where "AWS side is blank" or "different values are entered by both parties" were common.

OpportunityTeam

Item opp summary Notes
Email / FirstName / LastName opp has partner-side contacts, summary has AWS-side contacts
BusinessTitle Different option values
Phone × Contact's phone number

RelatedEntityIdentifiers / RelatedEntityIds

Item opp summary Notes
Solutions Associated partner solution ID (S- + digits)
AwsProducts Associated AWS product name
AwsMarketplaceSolutions ARN of the associated AWS Marketplace solution
AwsMarketplaceProducts ARN of the associated AWS Marketplace product
AwsMarketplaceOffers / AwsMarketplaceOfferSets × Association at the offer level

SoftwareRevenue

Item opp summary Notes
Value (Amount, CurrencyCode) Contract amount for PARC, etc.
EffectiveDate / ExpirationDate Contract start and end dates
DeliveryModel × Contract / Pay-as-you-go / Subscription classification
Discount × Discount rate (e.g.: 15.00 = 15%)

I gained a better understanding of the differences, including information that can be retrieved from both, information that exists only in one, and items with similar names that refer to different things.

Retrieving Multiple Opportunities' Information at Once

Since we're using the AWS CLI, it would be great to retrieve information for multiple Opportunities in bulk. I'll introduce patterns for retrieving the full set of information and for cross-cutting retrieval of specific items.

The prerequisite is that the list of target Opportunities is saved in a text file in the following format:

OppIds.txt
O11111111
O22222222
O33333333
O44444444
O55555555

The operation was verified in the following environment:

  • macOS
  • Zsh version: zsh 5.9 (arm64-apple-darwin25.0)
  • AWS CLI version: aws-cli/2.36.19 Python/3.14.6 Darwin/25.5.0 exe/arm64
  • Jq version: jq-1.6

Consolidating Multiple Opportunities' Information into JSON Files

Retrieve the results of both commands together. Save the results for each Opportunity and each command into one JSON file.

ts=$(date +%Y%m%d_%H%M%S)

while read -r id; do
  [ -z "$id" ] && continue

  aws partnercentral-selling get-opportunity \
    --catalog AWS \
    --identifier "$id" \
    --region us-east-1
    > "${id}_get-opportunity_${ts}.json"
  echo "saved: ${id}_get-opportunity_${ts}.json"
  sleep 0.3

  aws partnercentral-selling get-aws-opportunity-summary \
    --catalog AWS \
    --related-opportunity-identifier "$id" \
    --region us-east-1
    > "${id}_get-aws-opportunity-summary_${ts}.json"
  echo "saved: ${id}_get-aws-opportunity-summary_${ts}.json"
  sleep 0.3
done < OppIds.txt

The execution image looks like this:

saved: O11111111_get-opportunity_20260902_113612.json
saved: O11111111_get-aws-opportunity-summary_20260902_113612.json
saved: O22222222_get-opportunity_20260902_113612.json
saved: O22222222_get-aws-opportunity-summary_20260902_113612.json
saved: O33333333_get-opportunity_20260902_113612.json
saved: O33333333_get-aws-opportunity-summary_20260902_113612.json
saved: O44444444_get-opportunity_20260902_113612.json
saved: O44444444_get-aws-opportunity-summary_20260902_113612.json
saved: O55555555_get-opportunity_20260902_113612.json
saved: O55555555_get-aws-opportunity-summary_20260902_113612.json

Checking Specific Items Across Multiple Records

There may be cases where you want to quickly check only specific items. Since which items to check depends entirely on requirements, the command cannot be used as-is, but I'll include it as an example.

This time, I want to retrieve the following items from get-opportunity:

  • Title
  • ExpectedCustomerSpend.Amount
  • LifeCycle.Stage

Here is an example command based on those assumptions:

{
  printf "OppID\tTitle\tExpectedCustomerSpend.Amount\tLifeCycle.Stage\n"
  while read -r id; do
    [ -z "$id" ] && continue

    result=$(aws partnercentral-selling get-opportunity \
      --catalog AWS \
      --identifier "$id" \
      --region us-east-1)

    title=$(echo "$result" | jq -r '.Project.Title // "-"')
    amount=$(echo "$result" | jq -r '[.Project.ExpectedCustomerSpend[]? | select(.TargetCompany=="AWS")][0].Amount // "-"')
    stage=$(echo "$result" | jq -r '.LifeCycle.Stage // "-"')

    printf "%s\t%s\t%s\t%s\n" "$id" "$title" "$amount" "$stage"
    sleep 0.3
  done < OppIds.txt
} | column -t -s$'\t'

The execution image looks like this:

OppID      Title                          ExpectedCustomerSpend.Amount  LifeCycle.Stage
O11111111  Technical Support Deal A       1500                          Launched
O22222222  Technical Support Deal B       2200                          Qualified
O33333333  Technical Support Deal C       800                           Technical Validation
O44444444  Technical Support Deal D       3000                          Business Validation
O55555555  Technical Support Deal E       1200                          Committed

Closing

This was a look at retrieving AWS Partner Central Opportunity information using the AWS CLI.

It should be a good fit for cases where you want to check specific items across multiple Opportunities in one go. Please use this as a reference for situations where checking them one by one from the AWS Management Console is too painful, but it's not quite worth writing a full script.

That's all from Chiba Yuki (@batchicchi).

References

Share this article

AWSのお困り事はクラスメソッドへ