Rest API and /vectors/fetch

I had this problem a few months ago

and never got it to work but now I really need this capability. That is I need the fetch REST endpoint to work and AFAIK it doesn’t.

I have puzzled over this:

And honestly have no idea what that thing is. It’s not Swagger that’s for sure.

In any case I am doing this:


{
  "request": {
    "url": "https://xxxxOMITTEDxxxx.svc.us-east4-gcp.pinecone.io/vectors/fetch?ids='f7a3b7f0-3fda-4ce3-99cf-525dcc5a6650'&namespace=tenant-one",
    "method": "GET",
    "body": null,
    "headers": {
      "User-Agent": "Retool/2.0 (+https://docs.tryretool.com/docs/apis)",
      "Accept": "application/json",
      "Api-Key": "---sanitized---",
      "Content-Type": "application/json",
      "ot-baggage-requestId": "undefined",
      "x-datadog-trace-id": "8778612255090093498",
      "x-datadog-parent-id": "6487882932090957003",
      "x-datadog-sampling-priority": "2",
      "traceparent": "00-000000000000000079d3e555bd892dba-5a0997270799eccb-01",
      "tracestate": "dd=s:2",
      "X-Retool-Forwarded-For": "72.132.39.62"
    }
  },
  "response": {
    "data": {
      "vectors": {},
      "namespace": "tenant-one"
    },
    "headers": {
      "content-type": [
        "application/json"
      ],
      "date": [
        "Mon, 26 Jun 2023 05:42:31 GMT"
      ],
      "x-envoy-upstream-service-time": [
        "1"
      ],
      "grpc-status": [
        "0"
      ],
      "content-length": [
        "39"
      ],
      "server": [
        "envoy"
      ]
    },
    "status": 200,
    "statusText": "OK"
  }
}

The problem is that I always get this back with a 200 OK:

"data": {
      "vectors": {},
      "namespace": "tenant-one"
    }

vectors {} being empty. I don’t know if that is a real answer confirming the vector does not exist (I think not because I try some that are created in the last hour). Also if I send pure garbage I get 200 OK. Yet, the fact that the namespace is echoed back with a 200 OK makes me believe intelligent life is listening…

What I want to know is “does this vector exist?” I don’t need the vector itself.

If I can get this to work I would like to be able to delete a vector. I am hoping that is a near mirror image API. But first things first. What an I doing wrong here? And why is the documentation so opaque?

Hi @roland_alden

not sure if thats it, but the ids parameter of fetch takes in an array of values, not just a single value. Although the url you used looks good to me… Did you try to fetch this vecotr in the dashboard? Or used the documentation code provided?

Hope this helps

Edit: Also not sure about single quotes in the url parameters… I recreated your ulr with my own data. If I put id in single quotes there was no result. Without single quotes around the id, it works as it should :slight_smile:

I have tried all those permutations of array, quotes, etc. The response is always the same.

I have tried the dashboard too and get the same. I was thinking the dashboard was broken and surely the core API would work. But I suspect something is broken at a deep layer that is affecting everything. Obviously almost no one is using this API, or you would be inundated with complaints.

So when you use the Dashboard to fetch the vector with ID f7a3b7f0-3fda-4ce3-99cf-525dcc5a6650 you do not get a result? Well that seems to me like there might not be a vector with this ID upserted in your vector database :slight_smile:

I don’t think there is anything deeply wrong with the workings as I use it everyday for most of my clients and I almost exclusively use the API for everything. No clients or other middle men.

Not sure what could be wrong with your case though, but hope that someone from Pinecone stops by and checks it with you in more detail.

Hope you resolve the issue

Thanks. I finally stepped up to a paid plan and opened a support ticket and Pinecone Support fixed something. It’s working this morning. Both the management console and the REST API. They did not tell me they fixed anything. “Works for me”. My guess is that since I stepped up to a paid plan they moved, or redeployed, my project and that cleared up a bug.