I am new to the Marketo SOAP API.
The documentation there is not very clear.
I have 2 goals:
1. get a list of custom objects from Marketo
2. get the structure of each custom object (i.e. what fields are there).
1. Is it possible to achieve goal (1) by using listMObjects function?
2. Is it possible to achieve goal (2) bu using describeMObject?
3. If not, what should I be using? (REST API documentation is more clear, but we already used SOAP for leads data)
You can use the process you described, list for available objects, and describe for fields, but REST will be faster and more robust. We don't recommend doing any new development in SOAP.
currently we are not able to see the custom objects in the calls (see attached image below).
This is the list we get when calling listMObjects function: ActivityRecord, LeadRecord, Opportunity, OpportunityPersonRole]
Do we need to publish the custom object?
I am only able to get it to approved status.
Do I need higher permission to publish?
Sorry, that's my mistake, I was confusing it with REST, there are no list or describe operations for custom objects in our SOAP API. You'll need to use the REST operations to get that data.