# Search Microsoft first-party products for an Azure co-sell

`GET https://api.suger.cloud/org/{orgId}/cosell/partner/AZURE/microsoftSolutions/lookup/{searchTerm}`

Search Microsoft's own products (Azure, Microsoft 365, Dynamics and the rest of the first-party catalog) by name and return the matches, each with the product identifier, name, publisher and price-list id.

Use it to turn a product name a person used ("Azure Kubernetes Service") into the identifier an Azure co-sell referral needs. An Azure referral requires at least one entry under `details.requirements.solutions`, and the id in that entry comes from here — it is a Microsoft catalog identifier that cannot be guessed or composed. Search first, pick the match, then pass its id to CreateCosellReferral.

This searches Microsoft's first-party catalog. For a solution published by another company, use AzureThirdPartySolutionLookup. Reads the catalog through this organization's Microsoft Partner Center connection and changes nothing; an organization with no Azure connection cannot use it. Returns at most 50 matches, so search a distinctive part of the name.

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `orgId` | path | string | yes | Organization ID |
| `searchTerm` | path | string | yes | Search term for Microsoft solution lookup |

## Responses

### 200 — Matching Microsoft first-party products. `value` is the match list — empty when nothing matched, which is a success, not an error. Take the id from an entry's `identifiers` and pass it to CreateCosellReferral under `details.requirements.solutions`.

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

**`MicrosoftSolutionLookupResponse`** fields:

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `@odata.context` | string | no |  |
| `@odata.count` | integer | no |  |
| `value` | array<MicrosoftSolution> | no |  |

**`MicrosoftSolution`** fields:

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `identifiers` | array<MicrosoftSolutionIdentifier> | no |  |
| `incentives` | array<object> | no |  |
| `name` | string | no |  |
| `priceListId` | string | no |  |
| `publisherName` | string | no |  |
| `referralOrganizationId` | string | no |  |
| `type` | string | no |  |

**`MicrosoftSolutionIdentifier`** fields:

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | no |  |
| `type` | 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/partner/AZURE/microsoftSolutions/lookup/{searchTerm}' \
  -H "Authorization: Bearer $SUGER_TOKEN"
```

### Response — 200

```json
{
  "@odata.context": "string",
  "@odata.count": 1,
  "value": [
    {
      "identifiers": [
        {
          "id": "01H0000000000000000000",
          "type": "string"
        }
      ],
      "incentives": [],
      "name": "Acme Corp",
      "priceListId": "01H0000000000000000000",
      "publisherName": "Acme Corp",
      "referralOrganizationId": "01H0000000000000000000",
      "type": "string"
    }
  ]
}
```

### Error — 500

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

---

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