Cdn Public Collector's Pricing Guide (CPG) API V2

<back to all web services

GetCollectibleByNodeRequest

Catalog

Get all collectibles for a given Node

The following routes are available for this service:
GET/GetCollectibleByNodeRequestSpecify ApiLevel=Advanced for additional collectible information.
<?php namespace dtos;

use DateTime;
use Exception;
use DateInterval;
use JsonSerializable;
use ServiceStack\{IReturn,IReturnVoid,IGet,IPost,IPut,IDelete,IPatch,IMeta,IHasSessionId,IHasBearerToken,IHasVersion};
use ServiceStack\{ICrud,ICreateDb,IUpdateDb,IPatchDb,IDeleteDb,ISaveDb,AuditBase,QueryDb,QueryDb2,QueryData,QueryData2,QueryResponse};
use ServiceStack\{ResponseStatus,ResponseError,EmptyResponse,IdResponse,ArrayList,KeyValuePair2,StringResponse,StringsResponse,Tuple2,Tuple3,ByteArray};
use ServiceStack\{JsonConverters,Returns,TypeContext};


class BaseResponse implements JsonSerializable
{
    public function __construct(
        /** @var int */
        public int $Total=0,
        /** @var int */
        public int $OpCode=0,
        /** @var string|null */
        public ?string $ErrorText=null,
        /** @var string|null */
        public ?string $RequestTime=null,
        /** @var string|null */
        public ?string $ResponseTime=null,
        /** @var string|null */
        public ?string $TotalExecutionTime=null,
        /** @var bool|null */
        public ?bool $CachedResponse=null,
        /** @var bool|null */
        public ?bool $PermitAccess=null,
        /** @var string|null */
        public ?string $AccessDeniedMessage=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['Total'])) $this->Total = $o['Total'];
        if (isset($o['OpCode'])) $this->OpCode = $o['OpCode'];
        if (isset($o['ErrorText'])) $this->ErrorText = $o['ErrorText'];
        if (isset($o['RequestTime'])) $this->RequestTime = $o['RequestTime'];
        if (isset($o['ResponseTime'])) $this->ResponseTime = $o['ResponseTime'];
        if (isset($o['TotalExecutionTime'])) $this->TotalExecutionTime = $o['TotalExecutionTime'];
        if (isset($o['CachedResponse'])) $this->CachedResponse = $o['CachedResponse'];
        if (isset($o['PermitAccess'])) $this->PermitAccess = $o['PermitAccess'];
        if (isset($o['AccessDeniedMessage'])) $this->AccessDeniedMessage = $o['AccessDeniedMessage'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->Total)) $o['Total'] = $this->Total;
        if (isset($this->OpCode)) $o['OpCode'] = $this->OpCode;
        if (isset($this->ErrorText)) $o['ErrorText'] = $this->ErrorText;
        if (isset($this->RequestTime)) $o['RequestTime'] = $this->RequestTime;
        if (isset($this->ResponseTime)) $o['ResponseTime'] = $this->ResponseTime;
        if (isset($this->TotalExecutionTime)) $o['TotalExecutionTime'] = $this->TotalExecutionTime;
        if (isset($this->CachedResponse)) $o['CachedResponse'] = $this->CachedResponse;
        if (isset($this->PermitAccess)) $o['PermitAccess'] = $this->PermitAccess;
        if (isset($this->AccessDeniedMessage)) $o['AccessDeniedMessage'] = $this->AccessDeniedMessage;
        return empty($o) ? new class(){} : $o;
    }
}

class NodeDto implements JsonSerializable
{
    public function __construct(
        /** @var int */
        public int $Id=0,
        /** @var string|null */
        public ?string $Name=null,
        /** @var string|null */
        public ?string $Description=null,
        /** @var string|null */
        public ?string $FeaturedImageUrl=null,
        /** @var string|null */
        public ?string $FeaturedImageAttribution=null,
        /** @var string|null */
        public ?string $FlagCode=null,
        /** @var string|null */
        public ?string $CountryName=null,
        /** @var int */
        public int $SortingPosition=0,
        /** @var int */
        public int $NodeChildrenCountLive=0,
        /** @var int */
        public int $CollectibleChildrenCountLive=0,
        /** @var int|null */
        public ?int $ParentNode_Id=null,
        /** @var int|null */
        public ?int $RootNode_Id=null,
        /** @var array<NodeDto>|null */
        public ?array $ChildNodes=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['Id'])) $this->Id = $o['Id'];
        if (isset($o['Name'])) $this->Name = $o['Name'];
        if (isset($o['Description'])) $this->Description = $o['Description'];
        if (isset($o['FeaturedImageUrl'])) $this->FeaturedImageUrl = $o['FeaturedImageUrl'];
        if (isset($o['FeaturedImageAttribution'])) $this->FeaturedImageAttribution = $o['FeaturedImageAttribution'];
        if (isset($o['FlagCode'])) $this->FlagCode = $o['FlagCode'];
        if (isset($o['CountryName'])) $this->CountryName = $o['CountryName'];
        if (isset($o['SortingPosition'])) $this->SortingPosition = $o['SortingPosition'];
        if (isset($o['NodeChildrenCountLive'])) $this->NodeChildrenCountLive = $o['NodeChildrenCountLive'];
        if (isset($o['CollectibleChildrenCountLive'])) $this->CollectibleChildrenCountLive = $o['CollectibleChildrenCountLive'];
        if (isset($o['ParentNode_Id'])) $this->ParentNode_Id = $o['ParentNode_Id'];
        if (isset($o['RootNode_Id'])) $this->RootNode_Id = $o['RootNode_Id'];
        if (isset($o['ChildNodes'])) $this->ChildNodes = JsonConverters::fromArray('NodeDto', $o['ChildNodes']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->Id)) $o['Id'] = $this->Id;
        if (isset($this->Name)) $o['Name'] = $this->Name;
        if (isset($this->Description)) $o['Description'] = $this->Description;
        if (isset($this->FeaturedImageUrl)) $o['FeaturedImageUrl'] = $this->FeaturedImageUrl;
        if (isset($this->FeaturedImageAttribution)) $o['FeaturedImageAttribution'] = $this->FeaturedImageAttribution;
        if (isset($this->FlagCode)) $o['FlagCode'] = $this->FlagCode;
        if (isset($this->CountryName)) $o['CountryName'] = $this->CountryName;
        if (isset($this->SortingPosition)) $o['SortingPosition'] = $this->SortingPosition;
        if (isset($this->NodeChildrenCountLive)) $o['NodeChildrenCountLive'] = $this->NodeChildrenCountLive;
        if (isset($this->CollectibleChildrenCountLive)) $o['CollectibleChildrenCountLive'] = $this->CollectibleChildrenCountLive;
        if (isset($this->ParentNode_Id)) $o['ParentNode_Id'] = $this->ParentNode_Id;
        if (isset($this->RootNode_Id)) $o['RootNode_Id'] = $this->RootNode_Id;
        if (isset($this->ChildNodes)) $o['ChildNodes'] = JsonConverters::toArray('NodeDto', $this->ChildNodes);
        return empty($o) ? new class(){} : $o;
    }
}

class CollectibleDto implements JsonSerializable
{
    public function __construct(
        /** @var int */
        public int $Gsid=0,
        /** @var int|null */
        public ?int $UiParentId=null,
        /** @var string|null */
        public ?string $Name=null,
        /** @var string|null */
        public ?string $PcgsNumber=null,
        /** @var string|null */
        public ?string $FriedbergNumber=null,
        /** @var string|null */
        public ?string $CoinDate=null,
        /** @var string|null */
        public ?string $DenominationShort=null,
        /** @var string|null */
        public ?string $DenominationLong=null,
        /** @var string|null */
        public ?string $Variety=null,
        /** @var string|null */
        public ?string $Variety2=null,
        /** @var string|null */
        public ?string $Desg=null,
        /** @var string|null */
        public ?string $Other=null,
        /** @var string|null */
        public ?string $Prefix=null,
        /** @var string|null */
        public ?string $MintMark=null,
        /** @var string|null */
        public ?string $Composition=null,
        /** @var string|null */
        public ?string $Mintage=null,
        /** @var string|null */
        public ?string $StrikeType=null,
        /** @var string|null */
        public ?string $Diameter=null,
        /** @var string|null */
        public ?string $Fineness=null,
        /** @var float */
        public float $WeightGrams=0.0,
        /** @var float */
        public float $WeightOunces=0.0,
        /** @var string|null */
        public ?string $Designer=null,
        /** @var string|null */
        public ?string $Edge=null,
        /** @var string|null */
        public ?string $Rarity=null,
        /** @var string|null */
        public ?string $CoinShape=null,
        /** @var string|null */
        public ?string $Description=null,
        /** @var string|null */
        public ?string $GeneralNotes=null,
        /** @var string|null */
        public ?string $GeneralNotesSource=null,
        /** @var string|null */
        public ?string $GeneralCoinLettering=null,
        /** @var string|null */
        public ?string $ObverseDescription=null,
        /** @var string|null */
        public ?string $ObverseDesigner=null,
        /** @var string|null */
        public ?string $ObverseLettering=null,
        /** @var string|null */
        public ?string $ReverseDescription=null,
        /** @var string|null */
        public ?string $ReverseDesigner=null,
        /** @var string|null */
        public ?string $ReverseLettering=null,
        /** @var string|null */
        public ?string $BnBNumber=null,
        /** @var string|null */
        public ?string $NoteColor=null,
        /** @var string|null */
        public ?string $NoteDimension=null,
        /** @var string|null */
        public ?string $PickNumber=null,
        /** @var string|null */
        public ?string $Watermark=null,
        /** @var string|null */
        public ?string $Printer=null,
        /** @var string|null */
        public ?string $NoteSecurityThread=null,
        /** @var string|null */
        public ?string $NotePaperType=null,
        /** @var string|null */
        public ?string $BnbSignatureName1=null,
        /** @var string|null */
        public ?string $BnbSignatureName2=null,
        /** @var string|null */
        public ?string $BnbSignatureName3=null,
        /** @var string|null */
        public ?string $ObsoleteBankId=null,
        /** @var string|null */
        public ?string $ObsoleteStateName=null,
        /** @var string|null */
        public ?string $ObsoleteCityName=null,
        /** @var string|null */
        public ?string $ObsoleteBankName=null,
        /** @var string|null */
        public ?string $HaxbyNumber=null,
        /** @var string|null */
        public ?string $BnbTitle=null,
        /** @var string|null */
        public ?string $IssueNumber=null,
        /** @var int */
        public int $IssueMonth=0,
        /** @var int */
        public int $IssueYear=0,
        /** @var string|null */
        public ?string $Variant=null,
        /** @var string|null */
        public ?string $ArtComment1=null,
        /** @var string|null */
        public ?string $ArtComment2=null,
        /** @var string|null */
        public ?string $ArtComment3=null,
        /** @var string|null */
        public ?string $KeyComment1=null,
        /** @var string|null */
        public ?string $KeyComment2=null,
        /** @var string|null */
        public ?string $KeyComment3=null,
        /** @var string|null */
        public ?string $Ngc=null,
        /** @var string|null */
        public ?string $Krause=null,
        /** @var int */
        public int $EbayCategory1=0,
        /** @var string|null */
        public ?string $FeaturedImageUrl=null,
        /** @var string|null */
        public ?string $FeaturedImageAttribution=null,
        /** @var bool|null */
        public ?bool $IsType=null,
        /** @var bool|null */
        public ?bool $IsSet=null,
        /** @var float */
        public float $PriceLow=0.0,
        /** @var float */
        public float $PriceHigh=0.0,
        /** @var int */
        public int $Is100GreatestUSCoins=0,
        /** @var int */
        public int $Is100GreatestUSPaperMoney=0,
        /** @var int */
        public int $Is100GreatestWorldPaperMoney=0,
        /** @var int */
        public int $Is100GreatestModernUsCoins=0,
        /** @var bool|null */
        public ?bool $IsRedbook=null,
        /** @var bool|null */
        public ?bool $IsCherryPicker=null,
        /** @var int */
        public int $RootNode_Id=0,
        /** @var int */
        public int $ParentNode_Id=0,
        /** @var string|null */
        public ?string $ParentNodeName=null,
        /** @var int */
        public int $SortingPosition=0,
        /** @var array<NodeDto>|null */
        public ?array $CatalogPath=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['Gsid'])) $this->Gsid = $o['Gsid'];
        if (isset($o['UiParentId'])) $this->UiParentId = $o['UiParentId'];
        if (isset($o['Name'])) $this->Name = $o['Name'];
        if (isset($o['PcgsNumber'])) $this->PcgsNumber = $o['PcgsNumber'];
        if (isset($o['FriedbergNumber'])) $this->FriedbergNumber = $o['FriedbergNumber'];
        if (isset($o['CoinDate'])) $this->CoinDate = $o['CoinDate'];
        if (isset($o['DenominationShort'])) $this->DenominationShort = $o['DenominationShort'];
        if (isset($o['DenominationLong'])) $this->DenominationLong = $o['DenominationLong'];
        if (isset($o['Variety'])) $this->Variety = $o['Variety'];
        if (isset($o['Variety2'])) $this->Variety2 = $o['Variety2'];
        if (isset($o['Desg'])) $this->Desg = $o['Desg'];
        if (isset($o['Other'])) $this->Other = $o['Other'];
        if (isset($o['Prefix'])) $this->Prefix = $o['Prefix'];
        if (isset($o['MintMark'])) $this->MintMark = $o['MintMark'];
        if (isset($o['Composition'])) $this->Composition = $o['Composition'];
        if (isset($o['Mintage'])) $this->Mintage = $o['Mintage'];
        if (isset($o['StrikeType'])) $this->StrikeType = $o['StrikeType'];
        if (isset($o['Diameter'])) $this->Diameter = $o['Diameter'];
        if (isset($o['Fineness'])) $this->Fineness = $o['Fineness'];
        if (isset($o['WeightGrams'])) $this->WeightGrams = $o['WeightGrams'];
        if (isset($o['WeightOunces'])) $this->WeightOunces = $o['WeightOunces'];
        if (isset($o['Designer'])) $this->Designer = $o['Designer'];
        if (isset($o['Edge'])) $this->Edge = $o['Edge'];
        if (isset($o['Rarity'])) $this->Rarity = $o['Rarity'];
        if (isset($o['CoinShape'])) $this->CoinShape = $o['CoinShape'];
        if (isset($o['Description'])) $this->Description = $o['Description'];
        if (isset($o['GeneralNotes'])) $this->GeneralNotes = $o['GeneralNotes'];
        if (isset($o['GeneralNotesSource'])) $this->GeneralNotesSource = $o['GeneralNotesSource'];
        if (isset($o['GeneralCoinLettering'])) $this->GeneralCoinLettering = $o['GeneralCoinLettering'];
        if (isset($o['ObverseDescription'])) $this->ObverseDescription = $o['ObverseDescription'];
        if (isset($o['ObverseDesigner'])) $this->ObverseDesigner = $o['ObverseDesigner'];
        if (isset($o['ObverseLettering'])) $this->ObverseLettering = $o['ObverseLettering'];
        if (isset($o['ReverseDescription'])) $this->ReverseDescription = $o['ReverseDescription'];
        if (isset($o['ReverseDesigner'])) $this->ReverseDesigner = $o['ReverseDesigner'];
        if (isset($o['ReverseLettering'])) $this->ReverseLettering = $o['ReverseLettering'];
        if (isset($o['BnBNumber'])) $this->BnBNumber = $o['BnBNumber'];
        if (isset($o['NoteColor'])) $this->NoteColor = $o['NoteColor'];
        if (isset($o['NoteDimension'])) $this->NoteDimension = $o['NoteDimension'];
        if (isset($o['PickNumber'])) $this->PickNumber = $o['PickNumber'];
        if (isset($o['Watermark'])) $this->Watermark = $o['Watermark'];
        if (isset($o['Printer'])) $this->Printer = $o['Printer'];
        if (isset($o['NoteSecurityThread'])) $this->NoteSecurityThread = $o['NoteSecurityThread'];
        if (isset($o['NotePaperType'])) $this->NotePaperType = $o['NotePaperType'];
        if (isset($o['BnbSignatureName1'])) $this->BnbSignatureName1 = $o['BnbSignatureName1'];
        if (isset($o['BnbSignatureName2'])) $this->BnbSignatureName2 = $o['BnbSignatureName2'];
        if (isset($o['BnbSignatureName3'])) $this->BnbSignatureName3 = $o['BnbSignatureName3'];
        if (isset($o['ObsoleteBankId'])) $this->ObsoleteBankId = $o['ObsoleteBankId'];
        if (isset($o['ObsoleteStateName'])) $this->ObsoleteStateName = $o['ObsoleteStateName'];
        if (isset($o['ObsoleteCityName'])) $this->ObsoleteCityName = $o['ObsoleteCityName'];
        if (isset($o['ObsoleteBankName'])) $this->ObsoleteBankName = $o['ObsoleteBankName'];
        if (isset($o['HaxbyNumber'])) $this->HaxbyNumber = $o['HaxbyNumber'];
        if (isset($o['BnbTitle'])) $this->BnbTitle = $o['BnbTitle'];
        if (isset($o['IssueNumber'])) $this->IssueNumber = $o['IssueNumber'];
        if (isset($o['IssueMonth'])) $this->IssueMonth = $o['IssueMonth'];
        if (isset($o['IssueYear'])) $this->IssueYear = $o['IssueYear'];
        if (isset($o['Variant'])) $this->Variant = $o['Variant'];
        if (isset($o['ArtComment1'])) $this->ArtComment1 = $o['ArtComment1'];
        if (isset($o['ArtComment2'])) $this->ArtComment2 = $o['ArtComment2'];
        if (isset($o['ArtComment3'])) $this->ArtComment3 = $o['ArtComment3'];
        if (isset($o['KeyComment1'])) $this->KeyComment1 = $o['KeyComment1'];
        if (isset($o['KeyComment2'])) $this->KeyComment2 = $o['KeyComment2'];
        if (isset($o['KeyComment3'])) $this->KeyComment3 = $o['KeyComment3'];
        if (isset($o['Ngc'])) $this->Ngc = $o['Ngc'];
        if (isset($o['Krause'])) $this->Krause = $o['Krause'];
        if (isset($o['EbayCategory1'])) $this->EbayCategory1 = $o['EbayCategory1'];
        if (isset($o['FeaturedImageUrl'])) $this->FeaturedImageUrl = $o['FeaturedImageUrl'];
        if (isset($o['FeaturedImageAttribution'])) $this->FeaturedImageAttribution = $o['FeaturedImageAttribution'];
        if (isset($o['IsType'])) $this->IsType = $o['IsType'];
        if (isset($o['IsSet'])) $this->IsSet = $o['IsSet'];
        if (isset($o['PriceLow'])) $this->PriceLow = $o['PriceLow'];
        if (isset($o['PriceHigh'])) $this->PriceHigh = $o['PriceHigh'];
        if (isset($o['Is100GreatestUSCoins'])) $this->Is100GreatestUSCoins = $o['Is100GreatestUSCoins'];
        if (isset($o['Is100GreatestUSPaperMoney'])) $this->Is100GreatestUSPaperMoney = $o['Is100GreatestUSPaperMoney'];
        if (isset($o['Is100GreatestWorldPaperMoney'])) $this->Is100GreatestWorldPaperMoney = $o['Is100GreatestWorldPaperMoney'];
        if (isset($o['Is100GreatestModernUsCoins'])) $this->Is100GreatestModernUsCoins = $o['Is100GreatestModernUsCoins'];
        if (isset($o['IsRedbook'])) $this->IsRedbook = $o['IsRedbook'];
        if (isset($o['IsCherryPicker'])) $this->IsCherryPicker = $o['IsCherryPicker'];
        if (isset($o['RootNode_Id'])) $this->RootNode_Id = $o['RootNode_Id'];
        if (isset($o['ParentNode_Id'])) $this->ParentNode_Id = $o['ParentNode_Id'];
        if (isset($o['ParentNodeName'])) $this->ParentNodeName = $o['ParentNodeName'];
        if (isset($o['SortingPosition'])) $this->SortingPosition = $o['SortingPosition'];
        if (isset($o['CatalogPath'])) $this->CatalogPath = JsonConverters::fromArray('NodeDto', $o['CatalogPath']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->Gsid)) $o['Gsid'] = $this->Gsid;
        if (isset($this->UiParentId)) $o['UiParentId'] = $this->UiParentId;
        if (isset($this->Name)) $o['Name'] = $this->Name;
        if (isset($this->PcgsNumber)) $o['PcgsNumber'] = $this->PcgsNumber;
        if (isset($this->FriedbergNumber)) $o['FriedbergNumber'] = $this->FriedbergNumber;
        if (isset($this->CoinDate)) $o['CoinDate'] = $this->CoinDate;
        if (isset($this->DenominationShort)) $o['DenominationShort'] = $this->DenominationShort;
        if (isset($this->DenominationLong)) $o['DenominationLong'] = $this->DenominationLong;
        if (isset($this->Variety)) $o['Variety'] = $this->Variety;
        if (isset($this->Variety2)) $o['Variety2'] = $this->Variety2;
        if (isset($this->Desg)) $o['Desg'] = $this->Desg;
        if (isset($this->Other)) $o['Other'] = $this->Other;
        if (isset($this->Prefix)) $o['Prefix'] = $this->Prefix;
        if (isset($this->MintMark)) $o['MintMark'] = $this->MintMark;
        if (isset($this->Composition)) $o['Composition'] = $this->Composition;
        if (isset($this->Mintage)) $o['Mintage'] = $this->Mintage;
        if (isset($this->StrikeType)) $o['StrikeType'] = $this->StrikeType;
        if (isset($this->Diameter)) $o['Diameter'] = $this->Diameter;
        if (isset($this->Fineness)) $o['Fineness'] = $this->Fineness;
        if (isset($this->WeightGrams)) $o['WeightGrams'] = $this->WeightGrams;
        if (isset($this->WeightOunces)) $o['WeightOunces'] = $this->WeightOunces;
        if (isset($this->Designer)) $o['Designer'] = $this->Designer;
        if (isset($this->Edge)) $o['Edge'] = $this->Edge;
        if (isset($this->Rarity)) $o['Rarity'] = $this->Rarity;
        if (isset($this->CoinShape)) $o['CoinShape'] = $this->CoinShape;
        if (isset($this->Description)) $o['Description'] = $this->Description;
        if (isset($this->GeneralNotes)) $o['GeneralNotes'] = $this->GeneralNotes;
        if (isset($this->GeneralNotesSource)) $o['GeneralNotesSource'] = $this->GeneralNotesSource;
        if (isset($this->GeneralCoinLettering)) $o['GeneralCoinLettering'] = $this->GeneralCoinLettering;
        if (isset($this->ObverseDescription)) $o['ObverseDescription'] = $this->ObverseDescription;
        if (isset($this->ObverseDesigner)) $o['ObverseDesigner'] = $this->ObverseDesigner;
        if (isset($this->ObverseLettering)) $o['ObverseLettering'] = $this->ObverseLettering;
        if (isset($this->ReverseDescription)) $o['ReverseDescription'] = $this->ReverseDescription;
        if (isset($this->ReverseDesigner)) $o['ReverseDesigner'] = $this->ReverseDesigner;
        if (isset($this->ReverseLettering)) $o['ReverseLettering'] = $this->ReverseLettering;
        if (isset($this->BnBNumber)) $o['BnBNumber'] = $this->BnBNumber;
        if (isset($this->NoteColor)) $o['NoteColor'] = $this->NoteColor;
        if (isset($this->NoteDimension)) $o['NoteDimension'] = $this->NoteDimension;
        if (isset($this->PickNumber)) $o['PickNumber'] = $this->PickNumber;
        if (isset($this->Watermark)) $o['Watermark'] = $this->Watermark;
        if (isset($this->Printer)) $o['Printer'] = $this->Printer;
        if (isset($this->NoteSecurityThread)) $o['NoteSecurityThread'] = $this->NoteSecurityThread;
        if (isset($this->NotePaperType)) $o['NotePaperType'] = $this->NotePaperType;
        if (isset($this->BnbSignatureName1)) $o['BnbSignatureName1'] = $this->BnbSignatureName1;
        if (isset($this->BnbSignatureName2)) $o['BnbSignatureName2'] = $this->BnbSignatureName2;
        if (isset($this->BnbSignatureName3)) $o['BnbSignatureName3'] = $this->BnbSignatureName3;
        if (isset($this->ObsoleteBankId)) $o['ObsoleteBankId'] = $this->ObsoleteBankId;
        if (isset($this->ObsoleteStateName)) $o['ObsoleteStateName'] = $this->ObsoleteStateName;
        if (isset($this->ObsoleteCityName)) $o['ObsoleteCityName'] = $this->ObsoleteCityName;
        if (isset($this->ObsoleteBankName)) $o['ObsoleteBankName'] = $this->ObsoleteBankName;
        if (isset($this->HaxbyNumber)) $o['HaxbyNumber'] = $this->HaxbyNumber;
        if (isset($this->BnbTitle)) $o['BnbTitle'] = $this->BnbTitle;
        if (isset($this->IssueNumber)) $o['IssueNumber'] = $this->IssueNumber;
        if (isset($this->IssueMonth)) $o['IssueMonth'] = $this->IssueMonth;
        if (isset($this->IssueYear)) $o['IssueYear'] = $this->IssueYear;
        if (isset($this->Variant)) $o['Variant'] = $this->Variant;
        if (isset($this->ArtComment1)) $o['ArtComment1'] = $this->ArtComment1;
        if (isset($this->ArtComment2)) $o['ArtComment2'] = $this->ArtComment2;
        if (isset($this->ArtComment3)) $o['ArtComment3'] = $this->ArtComment3;
        if (isset($this->KeyComment1)) $o['KeyComment1'] = $this->KeyComment1;
        if (isset($this->KeyComment2)) $o['KeyComment2'] = $this->KeyComment2;
        if (isset($this->KeyComment3)) $o['KeyComment3'] = $this->KeyComment3;
        if (isset($this->Ngc)) $o['Ngc'] = $this->Ngc;
        if (isset($this->Krause)) $o['Krause'] = $this->Krause;
        if (isset($this->EbayCategory1)) $o['EbayCategory1'] = $this->EbayCategory1;
        if (isset($this->FeaturedImageUrl)) $o['FeaturedImageUrl'] = $this->FeaturedImageUrl;
        if (isset($this->FeaturedImageAttribution)) $o['FeaturedImageAttribution'] = $this->FeaturedImageAttribution;
        if (isset($this->IsType)) $o['IsType'] = $this->IsType;
        if (isset($this->IsSet)) $o['IsSet'] = $this->IsSet;
        if (isset($this->PriceLow)) $o['PriceLow'] = $this->PriceLow;
        if (isset($this->PriceHigh)) $o['PriceHigh'] = $this->PriceHigh;
        if (isset($this->Is100GreatestUSCoins)) $o['Is100GreatestUSCoins'] = $this->Is100GreatestUSCoins;
        if (isset($this->Is100GreatestUSPaperMoney)) $o['Is100GreatestUSPaperMoney'] = $this->Is100GreatestUSPaperMoney;
        if (isset($this->Is100GreatestWorldPaperMoney)) $o['Is100GreatestWorldPaperMoney'] = $this->Is100GreatestWorldPaperMoney;
        if (isset($this->Is100GreatestModernUsCoins)) $o['Is100GreatestModernUsCoins'] = $this->Is100GreatestModernUsCoins;
        if (isset($this->IsRedbook)) $o['IsRedbook'] = $this->IsRedbook;
        if (isset($this->IsCherryPicker)) $o['IsCherryPicker'] = $this->IsCherryPicker;
        if (isset($this->RootNode_Id)) $o['RootNode_Id'] = $this->RootNode_Id;
        if (isset($this->ParentNode_Id)) $o['ParentNode_Id'] = $this->ParentNode_Id;
        if (isset($this->ParentNodeName)) $o['ParentNodeName'] = $this->ParentNodeName;
        if (isset($this->SortingPosition)) $o['SortingPosition'] = $this->SortingPosition;
        if (isset($this->CatalogPath)) $o['CatalogPath'] = JsonConverters::toArray('NodeDto', $this->CatalogPath);
        return empty($o) ? new class(){} : $o;
    }
}

class CollectibleResponse extends BaseResponse implements JsonSerializable
{
    /**
     * @param int $Total
     * @param int $OpCode
     * @param string|null $ErrorText
     * @param string|null $RequestTime
     * @param string|null $ResponseTime
     * @param string|null $TotalExecutionTime
     * @param bool|null $CachedResponse
     * @param bool|null $PermitAccess
     * @param string|null $AccessDeniedMessage
     */
    public function __construct(
        int $Total=0,
        int $OpCode=0,
        ?string $ErrorText=null,
        ?string $RequestTime=null,
        ?string $ResponseTime=null,
        ?string $TotalExecutionTime=null,
        ?bool $CachedResponse=null,
        ?bool $PermitAccess=null,
        ?string $AccessDeniedMessage=null,
        /** @var array<CollectibleDto>|null */
        public ?array $Data=null
    ) {
        parent::__construct($Total,$OpCode,$ErrorText,$RequestTime,$ResponseTime,$TotalExecutionTime,$CachedResponse,$PermitAccess,$AccessDeniedMessage);
    }

    /** @throws Exception */
    public function fromMap($o): void {
        parent::fromMap($o);
        if (isset($o['Data'])) $this->Data = JsonConverters::fromArray('CollectibleDto', $o['Data']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = parent::jsonSerialize();
        if (isset($this->Data)) $o['Data'] = JsonConverters::toArray('CollectibleDto', $this->Data);
        return empty($o) ? new class(){} : $o;
    }
}

/** @description Get all collectibles for a given Node */
// @Api(Description="Get all collectibles for a given Node")
class GetCollectibleByNodeRequest implements JsonSerializable
{
    public function __construct(
        /** @var int */
        public int $NodeId=0,
        /** @var string|null */
        public ?string $ApiLevel=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['NodeId'])) $this->NodeId = $o['NodeId'];
        if (isset($o['ApiLevel'])) $this->ApiLevel = $o['ApiLevel'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->NodeId)) $o['NodeId'] = $this->NodeId;
        if (isset($this->ApiLevel)) $o['ApiLevel'] = $this->ApiLevel;
        return empty($o) ? new class(){} : $o;
    }
}

PHP GetCollectibleByNodeRequest DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .csv suffix or ?format=csv

HTTP + CSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

GET /GetCollectibleByNodeRequest HTTP/1.1 
Host: publicapiv2dev.greysheet.com 
Accept: text/csv
HTTP/1.1 200 OK
Content-Type: text/csv
Content-Length: length

{"Data":[{"Gsid":0,"UiParentId":0,"Name":"String","PcgsNumber":"String","FriedbergNumber":"String","CoinDate":"String","DenominationShort":"String","DenominationLong":"String","Variety":"String","Variety2":"String","Desg":"String","Other":"String","Prefix":"String","MintMark":"String","Composition":"String","Mintage":"String","StrikeType":"String","Diameter":"String","Fineness":"String","WeightGrams":0,"WeightOunces":0,"Designer":"String","Edge":"String","Rarity":"String","CoinShape":"String","Description":"String","GeneralNotes":"String","GeneralNotesSource":"String","GeneralCoinLettering":"String","ObverseDescription":"String","ObverseDesigner":"String","ObverseLettering":"String","ReverseDescription":"String","ReverseDesigner":"String","ReverseLettering":"String","BnBNumber":"String","NoteColor":"String","NoteDimension":"String","PickNumber":"String","Watermark":"String","Printer":"String","NoteSecurityThread":"String","NotePaperType":"String","BnbSignatureName1":"String","BnbSignatureName2":"String","BnbSignatureName3":"String","ObsoleteBankId":"String","ObsoleteStateName":"String","ObsoleteCityName":"String","ObsoleteBankName":"String","HaxbyNumber":"String","BnbTitle":"String","IssueNumber":"String","IssueMonth":0,"IssueYear":0,"Variant":"String","ArtComment1":"String","ArtComment2":"String","ArtComment3":"String","KeyComment1":"String","KeyComment2":"String","KeyComment3":"String","Ngc":"String","Krause":"String","EbayCategory1":0,"FeaturedImageUrl":"String","FeaturedImageAttribution":"String","IsType":false,"IsSet":false,"PriceLow":0,"PriceHigh":0,"Is100GreatestUSCoins":0,"Is100GreatestUSPaperMoney":0,"Is100GreatestWorldPaperMoney":0,"Is100GreatestModernUsCoins":0,"IsRedbook":false,"IsCherryPicker":false,"RootNode_Id":0,"ParentNode_Id":0,"ParentNodeName":"String","SortingPosition":0,"CatalogPath":[{"Id":0,"Name":"String","Description":"String","FeaturedImageUrl":"String","FeaturedImageAttribution":"String","FlagCode":"String","CountryName":"String","SortingPosition":0,"NodeChildrenCountLive":0,"CollectibleChildrenCountLive":0,"ParentNode_Id":0,"RootNode_Id":0,"ChildNodes":[{"Id":0,"Name":"String","Description":"String","FeaturedImageUrl":"String","FeaturedImageAttribution":"String","FlagCode":"String","CountryName":"String","SortingPosition":0,"NodeChildrenCountLive":0,"CollectibleChildrenCountLive":0,"ParentNode_Id":0,"RootNode_Id":0,"ChildNodes":[{"Id":0,"Name":"String","Description":"String","FeaturedImageUrl":"String","FeaturedImageAttribution":"String","FlagCode":"String","CountryName":"String","SortingPosition":0,"NodeChildrenCountLive":0,"CollectibleChildrenCountLive":0,"ParentNode_Id":0,"RootNode_Id":0}]}]}]}],"Total":0,"OpCode":0,"ErrorText":"String","RequestTime":"String","ResponseTime":"String","TotalExecutionTime":"String","CachedResponse":false,"PermitAccess":false,"AccessDeniedMessage":"String"}