# parsePDPProviders

> **parsePDPProviders**(`data`, `cursor?`): [`OutputType`](/reference/filoz/synapse-core/sp-registry/namespaces/getpdpproviders/type-aliases/outputtype/)

Defined in: [packages/synapse-core/src/sp-registry/get-pdp-providers.ts:163](https://github.com/FilOzone/synapse-sdk/blob/aaa98045b003ec23f4318ba9a3032a434e5a20c9/packages/synapse-core/src/sp-registry/get-pdp-providers.ts#L163)

Parse raw PDP-provider contract output into a normalized page.

Provider records are decoded into [PDPProvider](/reference/filoz/synapse-core/sp-registry/interfaces/pdpprovider/) objects. When the
contract reports more results, `nextCursor` is derived from `cursor` and the
number of source providers returned. Pass the same offset used by
[getPDPProvidersCall](/reference/filoz/synapse-core/sp-registry/functions/getpdpproviderscall/); it defaults to `0n`.

## Parameters

| Parameter | Type | Default value | Description |
| ------ | ------ | ------ | ------ |
| `data` | \{ `hasMore`: `boolean`; `providers`: readonly `object`[]; \} | `undefined` | Raw contract output [getPDPProviders.ContractOutputType](/reference/filoz/synapse-core/sp-registry/namespaces/getpdpproviders/type-aliases/contractoutputtype/) |
| `data.hasMore` | `boolean` | `undefined` | - |
| `data.providers` | readonly `object`[] | `undefined` | - |
| `cursor` | `bigint` | `0n` | Offset used for the contract read. Defaults to `0n`. |

## Returns

[`OutputType`](/reference/filoz/synapse-core/sp-registry/namespaces/getpdpproviders/type-aliases/outputtype/)

A normalized page of PDP providers [getPDPProviders.OutputType](/reference/filoz/synapse-core/sp-registry/namespaces/getpdpproviders/type-aliases/outputtype/)