0

There is an DataExtension object "Profile". Since its custom created the end user who is working on SOAP API retrieval doesn't know the Columns/Attributes listed in there. So is there a way to retrieve all the attributes and its data from SOAP API enter image description here

Current Problem

    <soapenv:Body>
        <RetrieveRequestMsg xmlns="http://exacttarget.com/wsdl/partnerAPI">
            <RetrieveRequest>
                <ObjectType>DataExtensionObject[Profile]</ObjectType>
                    <Properties>Contact Id</Properties> ***Without Mentioning the Properties***
            </RetrieveRequest>
        </RetrieveRequestMsg>
    </soapenv:Body>
5
  • 1
    I don't think that you can do that retrieve without the property names. But, your client app could do a first soap action to retrieve the data extension fields, and with that result, then, query the records. – Javier De Mauri Aug 13 '20 at 12:25
  • @JavierDeMauri, Can you point me to the request which needs to be made in order to retrieve the fields and also can the data extension objects be retrieved like the fields you mentioned ? – Ravi Teja Aug 13 '20 at 13:01
  • Sure, you can do a retrieve request to: DataExtensionField object. Use a simple filter to get your specific data extension's fields. "Name", "DefaultValue", "MaxLength", "IsRequired", "IsPrimaryKey", "FieldType" among others are properties you can retrieve from DataExtensionField. – Javier De Mauri Aug 13 '20 at 13:51
  • @JavierDeMauri Can you add a small snippet which will help me out. I was receiving an error when I tried the following ``` <RetrieveRequest> <ObjectType>DataExtensionField</ObjectType> <Filter xsi:type="SimpleFilterPart"> <Property>Name</Property> </Filter> </RetrieveRequest> ``` – Ravi Teja Aug 13 '20 at 15:32
  • Sure!, you can find a very good example from @AdamSpriggs here: salesforce.stackexchange.com/questions/56443/… – Javier De Mauri Aug 13 '20 at 18:02
0

You could use the undocumented REST API endpoint to get the info you need. Do note that it is undocumented and so it is use at your own risk as it is not officially supported by SFMC.

GET /data/v1/customobjectdata/key/{{deKey}}/rowset
Host: {{subDomain}}.rest.marketingcloudapis.com
Authorization: Bearer {{AuthToken}}
Content-Type: application/json

OR can also do via ID like /data/v1/customobjectdata/{{deID}}/rowset

Which gives a return like:

{
    "links": {
        "self": "/v1/customobjectdata/token/{{deID}}/rowset?$page=1"
    },
    "requestToken": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
    "tokenExpireDateUtc": "2020-08-14T14:34:48.28",
    "customObjectId": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx",
    "customObjectKey": "{{deKey}}",
    "pageSize": 2500,
    "page": 1,
    "count": 2,
    "items": [
        {
            "keys": {
                "subscriberkey": "subkey1"
            },
            "values": {
                "emailaddress": "myEmail@email.com",
                "firstname": "Gor",
                "lastname": "Tonington"
            }
        },
        {
            "keys": {
                "subscriberkey": "subkey2"
            },
            "values": {
                "emailaddress": "myEmail2@email.com",
                "firstname": "G",
                "lastname": "Tonington"
            }
        }
    ]
}
3
  • @Goronington Thanks for the Rest Endpoint. To add to your answer Is there any other endpoint wherein I can retrieve all the {DEid} or {DEkey} – Ravi Teja Aug 13 '20 at 15:29
  • only via the SOAP Object DataExtension. There is no REST endpoint to grab this info (or at least not one I am aware of that is public facing). – Gortonington Aug 13 '20 at 15:56
  • is it possible to retrieve _CustomObjectKey for rows with this endpoint? I tried to specify it $fields parameter but it didn't work – Denis Kurochkin Oct 2 '20 at 14:11

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.