Are there any very good APIs for matching similar images?
Never used this, but http://matelabs.in has something close... pretrained models on jewelry. You can probably extend those models. The new google dataset may also have labeled versions of the stuff you need. I cannot find the link I saw origionally, but it has bounding boxes for 20K classes down to 'teacup' 'teacup handle', 'tea', so I would not write google off before testing either.

Since this is DataScience SE, I will give the more DS answer as well. The thing you are looking for sounds like a multi-category classifier. You can probably find good resources and pretrained models here, and on the end, sklearn has apis for common classifiers.

The general idea is run your image through a Convnet, minus the classification part. You then have 1K-8K 'features' which a second algorithm set of classifiers, [decision forest](https://pdfs.semanticscholar.org/.../99dff11dcb3a48dee07a19052b07fdd2e7fe.pdf
), logical compisitional model, embedding, etc... gives a score for each binary attribute.