# Get a co-sell lead by ID

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

Fetch full details of a single co-sell lead, including the invitation and (once accepted) the full lead context: customer, interactions, AI readiness insights, qualification status, and any conversion links to the resulting opportunity/referral. The customer block carries the company name and the contact AWS supplied with the invitation — name, title, email and phone where present — alongside the project description and expected spend.

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `orgId` | path | string | yes | Organization ID |
| `leadId` | path | string | yes | Co-sell Lead ID |

## Responses

### 200 — OK

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

**`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 |  |

### 404 — Not found

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

**`ErrorResponse`** fields:

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `code` | ErrorCode | no |  |
| `info` | object | no |  |
| `message` | 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/{leadId}' \
  -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 — 404

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

---

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