Pinecone
Managed, serverless vector database.
Overall score
62.5/100
pinecone-rest
Measured Oct 5, 2026
Status
Ranked
Complete benchmark. `overall` is a weighted average of the applicable criteria, comparable to other surfaces in the same category and the same rubric version.
Coverage
71% of the rubric
Surfaces
evaluated.
We score a surface, not a product. One product often exposes several, and they are not worth the same.
pinecone-restrestprimary
71% coverage
62.5/100
Criterion
by criterion.
Measured on pinecone-rest, rubric v0.2.0. A criterion with no score is not counted as zero: it is excluded and the weights are renormalised.
Offload Valuejudged · weight 15
—/100
Does the service let the agent hand off work that would be expensive to do itself through inference, or is it just CRUD in disguise?
Interaction Costmeasured · weight 15 · Oct 5, 2026
80/100
Median over 2 successful run(s): 10861.5 tokens, 4 calls. Ratio to the best in "vector-database" (3 surfaces measured, v0.2 scale). Cold, without documentation: 1/1 succeeded.
Error Recoverabilityprobed · weight 15 · Oct 5, 2026
51/100
unknown_endpoint → HTTP 404, clarity 55/100 (field named: yes, allowed values: no, RFC 9457: no) · wrong_type → HTTP 422, clarity 75/100 (field named: yes, allowed values: yes, RFC 9457: no) · hallucinated_enum → HTTP 400, clarity 45/100 (field named: no, allowed values: yes, RFC 9457: no) · unknown_field → HTTP 409, clarity 30/100 (field named: no, allowed values: no, RFC 9457: no)
- https://api.pinecone.io/indexes
HTTP 401: {"error":{"code":"UNAUTHENTICATED","message":"Missing api-key header"},"status":401}
- https://api.pinecone.io/indexes/nonexistent_resource_xyz
HTTP 404: {"error":{"code":"NOT_FOUND","message":"Resource nonexistent_resource_xyz not found"},"status":404}
- https://api.pinecone.io/indexes
HTTP 422: Failed to deserialize the JSON body into the target type: dimension: invalid type: string "four", expected u32 at line 1 column 44
- https://api.pinecone.io/indexes
HTTP 400: {"error":{"code":"INVALID_ARGUMENT","message":"Invalid metric"},"status":400}
Doc Legibilitymeasured · weight 12 · Oct 5, 2026
17/100
text/markup ratio 0.3% (weight 30) · rendering without JavaScript undetermined (excluded from the calculation) (weight 25) · machine-readable spec: none found (weight 25) · llms.txt: https://docs.pinecone.io/llms.txt (weight 10) · 0 runnable example(s) (weight 10). Weighted average over 75 points of available sub-criteria.
Auth Frictionmeasured · weight 10 · Oct 5, 2026
90/100
Dedicated Api-Key header, verified by a successful call. Slightly below Bearer: the header name has to be read in the documentation.
- https://api.pinecone.io/indexes
HTTP 401: {"error":{"code":"UNAUTHENTICATED","message":"Missing api-key header"},"status":401}
- https://api.pinecone.io/indexes/nonexistent_resource_xyz
HTTP 404: {"error":{"code":"NOT_FOUND","message":"Resource nonexistent_resource_xyz not found"},"status":404}
- https://api.pinecone.io/indexes
HTTP 422: Failed to deserialize the JSON body into the target type: dimension: invalid type: string "four", expected u32 at line 1 column 44
- https://api.pinecone.io/indexes
HTTP 400: {"error":{"code":"INVALID_ARGUMENT","message":"Invalid metric"},"status":400}
Safety & Reversibilityprobed · weight 10
—/100
If I retry after a timeout, do I charge the customer twice?
Payload Efficiencyprobed · weight 8 · Oct 5, 2026
52/100
Field selection via ?select=: 302 → 14 bytes. (weight 35) · No cursor pagination marker in the response. (weight 20) · Nested envelope or non-list shape. (weight 10) · No ETag. (Compression is not measurable: the runtime decompresses it and strips the header.) (weight 10). Weighted average over 75 points of measured sub-criteria.
- https://api.pinecone.io/indexes
HTTP 401: {"error":{"code":"UNAUTHENTICATED","message":"Missing api-key header"},"status":401}
- https://api.pinecone.io/indexes/nonexistent_resource_xyz
HTTP 404: {"error":{"code":"NOT_FOUND","message":"Resource nonexistent_resource_xyz not found"},"status":404}
- https://api.pinecone.io/indexes
HTTP 422: Failed to deserialize the JSON body into the target type: dimension: invalid type: string "four", expected u32 at line 1 column 44
- https://api.pinecone.io/indexes
HTTP 400: {"error":{"code":"INVALID_ARGUMENT","message":"Invalid metric"},"status":400}
Task Atomicitymeasured · weight 6 · Oct 5, 2026
75/100
Median over 2 successful run(s): 10861.5 tokens, 4 calls. Ratio to the best in "vector-database" (3 surfaces measured, v0.2 scale). Cold, without documentation: 1/1 succeeded.
Prior Knowledge Coveragemeasured · weight 5 · Oct 5, 2026
100/100
Median over 2 successful run(s): 10861.5 tokens, 4 calls. Ratio to the best in "vector-database" (3 surfaces measured, v0.2 scale). Cold, without documentation: 1/1 succeeded.
Async Compatibilityprobed · weight 2
—/100
If the operation is asynchronous, can I get the result without hosting a web server?
Tool-Native (MCP)binary · weight 2
—/100
Does the vendor publish an official, maintained MCP server?
Runs, verified
never on the agent’s word.
Every row is a real attempt at the category’s canonical task. Success is verified by reading the created resource back.
| Task | Tokens | Calls | Errors | Docs | Result |
|---|---|---|---|---|---|
| index-and-query-vectors | 14,579 | 5 | 0 | without | verified |
| index-and-query-vectors | 10,786 | 4 | 0 | with | verified |
| index-and-query-vectors | 10,937 | 4 | 0 | with | verified |
The same entry,
without the markup.
You publish this API and dispute a score? The methodology is public and every score above points to the evidence that produced it.