I think NotFound makes sense in the context of this API. If you're asking for an id, treating it as a literal seems reasonable, whether or not it could actually be valid. If certain characters aren't valid in ids in ElasticSearch (which I don't know, but I assume is the case), I would think it's just up to ElasticSearch to reject those when you try to create them.