{"openapi":"3.1.0","info":{"title":"Abstract research discovery","version":"1.0.0","description":"Authenticated, bounded research catalogue access. All tokens share account and company extraction ceilings. No bulk export, paid mapping, messaging, or booking operation is exposed."},"servers":[{"url":"https://next.myabstract.co"}],"security":[{"AbstractOAuth":["catalog:read"]}],"paths":{"/api/agent/catalog/search":{"get":{"operationId":"search","summary":"Find up to 20 matching research records","parameters":[{"name":"query","in":"query","required":true,"schema":{"type":"string","minLength":2,"maxLength":120}}],"responses":{"200":{"description":"Bounded results with canonical citation URLs","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"results":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^(equipment|laboratory|technique):[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"},"title":{"type":"string"},"url":{"type":"string","format":"uri"}},"required":["id","title","url"],"additionalProperties":false}},"truncated":{"type":"boolean"}},"required":["results","truncated"],"additionalProperties":false}}}},"400":{"description":"Invalid request; correct the documented parameters"},"401":{"description":"Connect or reconnect an Abstract account"},"403":{"description":"Account or scope does not permit access"},"429":{"description":"Shared account/company ceiling reached","headers":{"Retry-After":{"description":"Seconds before retrying","schema":{"type":"string"}}}},"503":{"description":"Access controls unavailable; retry later"}}}},"/api/agent/catalog/record":{"get":{"operationId":"fetch","summary":"Read one equipment, laboratory, or technique record","parameters":[{"name":"id","in":"query","required":true,"schema":{"type":"string","description":"An entity ID returned by search, such as equipment:UUID"}}],"responses":{"200":{"description":"A cited record with explicit evidence limits","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","pattern":"^(equipment|laboratory|technique):[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"},"title":{"type":"string"},"url":{"type":"string","format":"uri"},"text":{"type":"string"},"metadata":{"type":"object","properties":{"entityType":{"type":"string","enum":["equipment","laboratory","technique"]},"updatedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"verifiedAt":{"type":"null"},"sourceUrls":{"type":"array","items":{"type":"string","format":"uri"}},"availability":{"type":"string","const":"unknown"},"limitations":{"type":"array","items":{"type":"string"}}},"required":["entityType","updatedAt","verifiedAt","sourceUrls","availability","limitations"],"additionalProperties":false}},"required":["id","title","url","text","metadata"],"additionalProperties":false}}}},"400":{"description":"Invalid request; correct the documented parameters"},"401":{"description":"Connect or reconnect an Abstract account"},"403":{"description":"Account or scope does not permit access"},"404":{"description":"Record missing or unavailable to this catalogue scope"},"429":{"description":"Shared account/company ceiling reached","headers":{"Retry-After":{"description":"Seconds before retrying","schema":{"type":"string"}}}},"503":{"description":"Access controls unavailable; retry later"}}}}},"components":{"securitySchemes":{"AbstractOAuth":{"type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"https://next.myabstract.co/en/connect/authorize","tokenUrl":"https://next.myabstract.co/api/agent/oauth/token","scopes":{"catalog:read":"Read bounded catalogue search and records","projects:read":"List permitted project destinations","shortlist:write":"Save catalogue items to permitted collections"}}}}}}}