{"openapi":"3.1.0","info":{"title":"Addgene (BYOK) API","version":"0.1.0","description":"Addgene (BYOK) lets an AI assistant read your own Addgene data through the Addgene API with a key you supply (Addgene API token). Read-only: 6 tools (test_authentication, search_plasmids, find_plasmids_by_field, get_plasmid, search_viral_preps, get_viral_prep). The BYOK key travels with each request, is used for that one call only and is never stored, logged or cached; it is only ever sent to...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-addgene.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-addgene/docs"},"termsOfService":"https://connectorbay.com/byok-addgene/terms"},"servers":[{"url":"https://byok-addgene.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-addgene/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/test_authentication":{"post":{"operationId":"test_authentication","summary":"Check that the token works and show which Addgene account and authentication method it uses. Use for \"Is my Addgene API ","description":"Check that the token works and show which Addgene account and authentication method it uses. Use for \"Is my Addgene API token valid\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"test_authenticationArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/search_plasmids":{"post":{"operationId":"search_plasmids","summary":"Free-text search of the Addgene plasmid catalog, ranked like the Addgene site search, with genes, species, vector types ","description":"Free-text search of the Addgene plasmid catalog, ranked like the Addgene site search, with genes, species, vector types and links. Use for \"Find Addgene plasmids for CRISPR Cas9 expression\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"q":{"description":"Free-text query, for example 'Cas9 mammalian expression'.","maxLength":200,"title":"Q","type":"string"},"sort_by":{"anyOf":[{"enum":["newest","id","relevance"],"type":"string"},{"type":"null"}],"default":null,"description":"Order: newest, id or relevance (relevance only makes sense with a free-text q).","title":"Sort By"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results per page (1 to 100).","title":"Page Size"}},"required":["q"],"title":"search_plasmidsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/find_plasmids_by_field":{"post":{"operationId":"find_plasmids_by_field","summary":"Filter the Addgene plasmid catalog by one or more exact catalog fields such as plasmid name, gene, principal investigato","description":"Filter the Addgene plasmid catalog by one or more exact catalog fields such as plasmid name, gene, principal investigator, PubMed ID or backbone. Use for \"Which Addgene plasmids come from the paper with PubMed ID 23287718\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Plasmid name to match, for example 'pX330'.","title":"Name"},"genes":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Gene name carried by the plasmid, for example 'Cas9'.","title":"Genes"},"pis":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Principal investigator name, for example 'Zhang'.","title":"Pis"},"article_pmid":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"PubMed ID of the associated article.","title":"Article Pmid"},"backbone":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Vector backbone name, for example 'pLKO.1'.","title":"Backbone"},"purpose":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Purpose text to match.","title":"Purpose"},"experimental_use":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Experimental use, for example 'CRISPR'.","title":"Experimental Use"},"sort_by":{"anyOf":[{"enum":["newest","id","relevance"],"type":"string"},{"type":"null"}],"default":null,"description":"Order: newest, id or relevance (relevance only makes sense with a free-text q).","title":"Sort By"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results per page (1 to 100).","title":"Page Size"}},"title":"find_plasmids_by_fieldArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_plasmid":{"post":{"operationId":"get_plasmid","summary":"Get one Addgene plasmid in full: description, resistance, growth conditions, backbone, promoter, inserts' article refere","description":"Get one Addgene plasmid in full: description, resistance, growth conditions, backbone, promoter, inserts' article reference and viral preps. Use for \"Show Addgene plasmid 10878 in detail\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"Addgene plasmid number, for example 10878.","title":"Id","type":"integer"}},"required":["id"],"title":"get_plasmidArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/search_viral_preps":{"post":{"operationId":"search_viral_preps","summary":"Search Addgene's ready-to-use viral preps (for example AAV) by free text, optionally sorted. Use for \"Find Addgene AAV p","description":"Search Addgene's ready-to-use viral preps (for example AAV) by free text, optionally sorted. Use for \"Find Addgene AAV preps carrying GFP\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"q":{"description":"Free-text query, for example 'AAV GFP'.","maxLength":200,"title":"Q","type":"string"},"name":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Viral prep name to match.","title":"Name"},"sort_by":{"anyOf":[{"enum":["newest","id","relevance"],"type":"string"},{"type":"null"}],"default":null,"description":"Order: newest, id or relevance (relevance only makes sense with a free-text q).","title":"Sort By"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results per page (1 to 100).","title":"Page Size"}},"required":["q"],"title":"search_viral_prepsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_viral_prep":{"post":{"operationId":"get_viral_prep","summary":"Get one Addgene viral prep in full: description, delivery volume and titer, packaging and production details and QC meth","description":"Get one Addgene viral prep in full: description, delivery volume and titer, packaging and production details and QC method. Use for \"What is the titer of Addgene viral prep 44361-AAV1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"Viral prep id, for example '44361-AAV1'.","maxLength":200,"title":"Id","type":"string"}},"required":["id"],"title":"get_viral_prepArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}