How do you use the Element API plugin to output Matrix blocks for an entry? I am having a hard time trying to figure out how to pull matrix blocks within an entry into the single entry's endpoint with the Element API plugin.

Is this possible? Or do I need to output the blockId's and then create another API endpoint to query by the matrix block id?
Totally possible. Just loop through the blocks and add whatever data you want from them to the response array:

'transformer' =&gt; function(EntryModel $entry) {
    // Create an array of all the "Body" Matrix field's blocks
    $bodyBlocks = [];
    foreach ($entry-&gt;body as $block) {
        switch ($block-&gt;type-&gt;handle) {
            case 'text':
                $bodyBlocks[] = [
                    'text' =&gt; $block-&gt;myRichTextField-&gt;getParsedContent(),
                ];
                break;
            case 'image':
                $image = $block-&gt;myAssetsField-&gt;first();
                $bodyBlocks[] = [
                    'image' =&gt; $image ? $image-&gt;getUrl(['width' =&gt; 500]),
                    'caption' =&gt; $block-&gt;myPlainTextField,
                ];
                break;
        }
    }

    return [
        'title' =&gt; $entry-&gt;title,
        'url' =&gt; $entry-&gt;url,
        'description' =&gt; (string) $entry-&gt;description,
        'body' =&gt; $bodyBlocks
    ];
},


Each of the elements in that sub-array will be MatrixBlockModel objects.