I'm trying to fetch using the API the campaign metrics such as open, delivered, clicks and so on.
is there anyway to do it?
one more question, can i schedule a campaign using the API without creating it in Marketo before it?
What you're referring to here are actually email reporting metrics, not campaign. Unfortunately, you won't be able to pull these results from the API, AFAIK.
Regarding your second question, no. Logically, you won't be able to schedule a campaign unless one exists. If a campaign does not exist, what would you be scheduling?
You can pull activities for each of the types, like Send, Delivered, Opened, Clicked and unsubscribed, but it is not possible to filter directly to a campaign: http://beta.developers.marketo.com/rest-api/endpoint-reference/lead-database-endpoint-reference/#!/A...