# List Co-Sell Leads

`GET https://api.suger.cloud/org/{orgId}/cosell/lead`

List AWS Partner Central co-sell leads for the organization. A lead is an early, inbound-only stage that precedes a co-sell opportunity (referral): AWS sends a lead as an engagement invitation that the partner accepts, qualifies, and can convert into an opportunity. Each lead carries the company name, invitation status, qualification status, the derived unified status, the expiration date, and the time it was received. invitationStatus=PENDING returns the invitations nobody has accepted yet. The two Console views (Lead Invitations vs Leads) are filters over this one list: filter by invitationStatus (PENDING / ACCEPTED / REJECTED / EXPIRED), by qualificationStatus (the free-text funnel value, e.g. Open / Research / Qualified / Disqualified), or by the derived unified status.

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `orgId` | path | string | yes | Organization ID |
| `invitationStatus` | query | string | no | Filter by invitation status: PENDING, ACCEPTED, REJECTED, EXPIRED |
| `qualificationStatus` | query | string | no | Filter by qualification status (free text, e.g. Open, Research, Qualified, Disqualified) |
| `status` | query | string | no | Filter by derived unified status |
| `salesforceOpportunityId` | query | string | no | Filter by the linked Salesforce Opportunity id (used by the Salesforce app's Opportunity-related lead panel) |
| `salesforceAccountId` | query | string | no | Filter by Salesforce Account: matches either the Account a lead was enriched FROM or the Account it is linked TO through CRM linkage. Used by the widget's Leads section on an Account or an Opportunity. |
| `offset` | query | integer | no | Pagination offset (default 0) |
| `limit` | query | integer | no | Page size, 1-200 (default 50) |

## Responses

### 200 — OK

Content-Type: `application/json`

**`CosellLead`** fields:

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `companyName` | string | no | CompanyName holds the value of the "company_name" field. |
| `contextId` | string | no | ContextID holds the value of the "context_id" field. |
| `convertedAt` | string | no | ConvertedAt holds the value of the "converted_at" field. |
| `convertedOpportunityId` | string | no | ConvertedOpportunityID holds the value of the "converted_opportunity_id" field. |
| `convertedReferralId` | string | no | ConvertedReferralID holds the value of the "converted_referral_id" field. |
| `creationRetryCount` | integer | no | CreationRetryCount holds the value of the "creation_retry_count" field. |
| `creationTime` | string | no | CreationTime holds the value of the "creation_time" field. |
| `direction` | Direction | no |  |
| `enrichmentStatus` | string | no | EnrichmentStatus holds the value of the "enrichment_status" field. |
| `enrichmentTaskId` | string | no | EnrichmentTaskID holds the value of the "enrichment_task_id" field. |
| `errorMessages` | array<string> | no | ErrorMessages holds the value of the "error_messages" field. |
| `expirationDate` | string | no | ExpirationDate holds the value of the "expiration_date" field. |
| `externalCreationTime` | string | no | ExternalCreationTime holds the value of the "external_creation_time" field. |
| `externalId` | string | no | ExternalID holds the value of the "external_id" field. |
| `externalLastUpdateTime` | string | no | ExternalLastUpdateTime holds the value of the "external_last_update_time" field. |
| `hubspotDealId` | string | no | HubspotDealID holds the value of the "hubspot_deal_id" field. |
| `id` | string | no | ID of the ent. |
| `info` | LeadInfo | no |  |
| `invitationId` | string | no | InvitationID holds the value of the "invitation_id" field. |
| `invitationStatus` | InvitationStatus | no |  |
| `lastUpdateTime` | string | no | LastUpdateTime holds the value of the "last_update_time" field. |
| `name` | string | no | Name holds the value of the "name" field. |
| `organizationId` | string | no | OrganizationID holds the value of the "organization_id" field. |
| `partner` | CosellleadPartner | no |  |
| `qualificationStatus` | string | no | QualificationStatus holds the value of the "qualification_status" field. |
| `salesforceAccountId` | string | no | SalesforceAccountID holds the value of the "salesforce_account_id" field. |
| `salesforceContactId` | string | no | SalesforceContactID holds the value of the "salesforce_contact_id" field. |
| `salesforceLeadId` | string | no | SalesforceLeadID holds the value of the "salesforce_lead_id" field. |
| `salesforceOpportunityId` | string | no | SalesforceOpportunityID holds the value of the "salesforce_opportunity_id" field. |
| `salesforceSugerLeadId` | string | no | SalesforceSugerLeadID holds the value of the "salesforce_suger_lead_id" field. |
| `status` | string | no | Status holds the value of the "status" field. |

**`LeadInfo`** fields:

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `aceLeadContext` | LeadContext | no |  |
| `aceLeadInvitation` | LeadInvitationPayload | no |  |
| `aceProspectingResult` | ProspectingResult | no |  |
| `lastEnrichmentTime` | string | no | LastEnrichmentTime is when enrichment last reached A TERMINAL outcome — ENRICHED, NO_DATA or FAILED. Written by UpdateCosellLeadEnrichmentState and read only by the 30-day re-enrichment gate on the manual Enrich endpoint. Nil means enrichment never finished for this lead, which is also what every row written before the field existed reads as. Here rather than in a column because it has one writer, one reader, and is never a query predicate — the same reasoning that put AceProspectingResult here. FAILED is included deliberately. If only the successful outcomes wrote it, a lead that keeps failing would never get a value, the gate could never engage, and every manual Enrich click would start another AWS prospecting task on an endpoint with no rate limit. |

**`LeadContext`** fields:

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `Customer` | LeadCustomer | no |  |
| `Insights` | LeadInsights | no |  |
| `Interactions` | array<LeadInteraction> | no |  |
| `QualificationStatus` | string | no |  |

**`LeadInvitationPayload`** fields:

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `Customer` | LeadInvitationCustomer | no |  |
| `Interaction` | LeadInvitationInteraction | no |  |

**`ProspectingResult`** fields:

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `Aws` | ProspectingResultAws | no |  |

**`LeadCustomer`** fields:

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `Address` | LeadAddress | no |  |
| `AwsMaturity` | string | no |  |
| `CompanyName` | string | no |  |
| `Industry` | string | no |  |
| `MarketSegment` | string | no |  |
| `WebsiteUrl` | string | no |  |

**`LeadInsights`** fields:

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `LeadReadinessScore` | string | no |  |

**`LeadInteraction`** fields:

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `BusinessProblem` | string | no |  |
| `Contact` | LeadContact | no |  |
| `CustomerAction` | string | no |  |
| `InteractionDate` | string | no |  |
| `SourceId` | string | no |  |
| `SourceName` | string | no |  |
| `SourceType` | string | no |  |
| `Usecase` | string | no |  |

**`LeadInvitationCustomer`** fields:

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `AwsMaturity` | string | no |  |
| `CompanyName` | string | no |  |
| `CountryCode` | string | no |  |
| `Industry` | string | no |  |
| `MarketSegment` | string | no |  |
| `WebsiteUrl` | string | no |  |

**`LeadInvitationInteraction`** fields:

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `ContactBusinessTitle` | string | no |  |
| `SourceId` | string | no |  |
| `SourceName` | string | no |  |
| `SourceType` | string | no |  |
| `Usecase` | string | no |  |

**`ProspectingResultAws`** fields:

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `Customer` | ProspectingResultCustomer | no |  |
| `EndTime` | string | no |  |
| `Insights` | ProspectingInsights | no |  |
| `StartTime` | string | no |  |
| `TaskArn` | string | no |  |
| `TaskId` | string | no |  |
| `TaskName` | string | no |  |

**`LeadAddress`** fields:

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `City` | string | no |  |
| `CountryCode` | string | no |  |
| `PostalCode` | string | no |  |
| `StateOrRegion` | string | no |  |

### 500 — Internal server error

Content-Type: `application/json` · Schema: `ErrorResponse`

**`ErrorResponse`** fields:

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `code` | ErrorCode | no |  |
| `info` | object | no |  |
| `message` | string | no |  |

## Example

_Generated from this operation's schema. Values are placeholders — substitute your own ids, and set `SUGER_TOKEN` to a bearer token from the [OAuth client-credentials exchange](https://doc.fours.com/settings/oauth-app/)._

### Request

```bash
curl -X GET 'https://api.suger.cloud/org/{orgId}/cosell/lead' \
  -H "Authorization: Bearer $SUGER_TOKEN"
```

### Response — 200

```json
[
  {
    "companyName": "Acme Corp",
    "contextId": "01H0000000000000000000",
    "convertedAt": "string",
    "convertedOpportunityId": "01H0000000000000000000",
    "convertedReferralId": "01H0000000000000000000",
    "creationRetryCount": 1,
    "creationTime": "2026-01-31T12:00:00Z",
    "direction": "INBOUND",
    "enrichmentStatus": "string",
    "enrichmentTaskId": "01H0000000000000000000",
    "errorMessages": [
      "string"
    ],
    "expirationDate": "2026-01-31T12:00:00Z"
  }
]
```

### Error — 500

```json
{
  "code": "InternalServerError",
  "message": "string"
}
```

---

API reference: https://doc.fours.com/api/
