As described in the doc here, https://docs.marketo.com/display/DOCS/Understanding+System+Managed+Fields, "Source" and "Reason" fields are managed by Marketo:
1. Web Service API for Original Source Type means Person was discovered by a web service API.
2. For Registration Source Type, it states that Person was created via SOAP/REST API
When a lead is created via API, no additional "Source" or "Reason" is provided to Marketo.
A possible workaround is to create a custom field and populate it as needed through the API.