{"openapi":"3.1.0","info":{"title":"Scopus (BYOK) API","version":"0.1.0","description":"Scopus (BYOK) lets an AI assistant read your own Scopus data through the Scopus API with a key you supply (Elsevier API key). Read-only: 10 tools (search_documents, search_authors, search_affiliations, get_abstract_by_scopus_id, get_abstract_by_pubmed_id, get_author_profile, get_author_by_orcid, get_affiliation_profile, search_serial_titles, get_serial_title_by_issn). The BYOK key travels with...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-scopus.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-scopus/docs"},"termsOfService":"https://connectorbay.com/byok-scopus/terms"},"servers":[{"url":"https://byok-scopus.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-scopus/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/search_documents":{"post":{"operationId":"search_documents","summary":"Search Scopus abstracts with a Boolean query (for example TITLE-ABS-KEY(...), AUTH(...), AFFIL(...), PUBYEAR > 2020). Re","description":"Search Scopus abstracts with a Boolean query (for example TITLE-ABS-KEY(...), AUTH(...), AFFIL(...), PUBYEAR > 2020). Returns title, authors, source, date, DOI and citation count. Use for \"Which highly cited papers on graphene batteries were published since 2022\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"query":{"description":"Scopus Boolean search, for example 'TITLE-ABS-KEY(graphene battery) AND PUBYEAR > 2021'.","maxLength":500,"title":"Query","type":"string"},"date":{"anyOf":[{"maxLength":9,"type":"string"},{"type":"null"}],"default":null,"description":"Publication year range, for example 2018-2024.","title":"Date"},"sort":{"anyOf":[{"maxLength":120,"type":"string"},{"type":"null"}],"default":null,"description":"Sort order: a field name, '+' (ascending) or '-' (descending) before it; up to three comma-separated. Fields: citedby-count, coverDate, creator, publicationName, pubyear, relevancy. Example: -citedby-count.","title":"Sort"},"subj":{"anyOf":[{"maxLength":4,"type":"string"},{"type":"null"}],"default":null,"description":"Subject area code such as COMP, MEDI, ENGI or PHYS.","title":"Subj"},"view":{"anyOf":[{"enum":["STANDARD","COMPLETE"],"type":"string"},{"type":"null"}],"default":null,"description":"STANDARD (default) or COMPLETE (more fields, may need entitlement).","title":"View"},"count":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many results to return; the allowed maximum depends on the key's entitlement and is rejected with an error when exceeded.","title":"Count"},"start":{"anyOf":[{"maximum":10000,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Result offset for paging (0 for the first result); offset plus count is capped by the Scopus index.","title":"Start"}},"required":["query"],"title":"search_documentsArguments","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_authors":{"post":{"operationId":"search_authors","summary":"Search Scopus author profiles by Boolean query (for example AUTHLASTNAME(smith) and AUTHFIRST(j), AFFIL(...), ORCID(...)","description":"Search Scopus author profiles by Boolean query (for example AUTHLASTNAME(smith) and AUTHFIRST(j), AFFIL(...), ORCID(...)) or list the co-authors of one author ID. Use for \"Find the Scopus profile of researcher Maria Garcia at the University of Toronto\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"query":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Author search, for example 'AUTHLASTNAME(garcia) and AUTHFIRST(maria) and AFFIL(toronto)'.","title":"Query"},"co_author":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"Scopus author ID whose co-authors to list; when set, query is ignored.","title":"Co Author"},"sort":{"anyOf":[{"maxLength":120,"type":"string"},{"type":"null"}],"default":null,"description":"Sort order: a field name, '+' (ascending) or '-' (descending) before it; up to three comma-separated. Fields: document-count, surname, given-name, affiliation-name. Example: -document-count.","title":"Sort"},"count":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many results to return; the allowed maximum depends on the key's entitlement and is rejected with an error when exceeded.","title":"Count"},"start":{"anyOf":[{"maximum":10000,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Result offset for paging (0 for the first result); offset plus count is capped by the Scopus index.","title":"Start"}},"title":"search_authorsArguments","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_affiliations":{"post":{"operationId":"search_affiliations","summary":"Search Scopus affiliation (institution) profiles by Boolean query such as AFFIL(university) or AF-ID(60016849). Use for ","description":"Search Scopus affiliation (institution) profiles by Boolean query such as AFFIL(university) or AF-ID(60016849). Use for \"Which institutions in Scopus are called 'Karolinska'\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"query":{"description":"Affiliation search, for example 'AFFIL(karolinska)'.","maxLength":300,"title":"Query","type":"string"},"sort":{"anyOf":[{"maxLength":120,"type":"string"},{"type":"null"}],"default":null,"description":"Sort order: a field name, '+' (ascending) or '-' (descending) before it; up to three comma-separated. Fields: document-count, affiliation-name, city, country. Example: -document-count.","title":"Sort"},"count":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many results to return; the allowed maximum depends on the key's entitlement and is rejected with an error when exceeded.","title":"Count"},"start":{"anyOf":[{"maximum":10000,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Result offset for paging (0 for the first result); offset plus count is capped by the Scopus index.","title":"Start"}},"required":["query"],"title":"search_affiliationsArguments","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_abstract_by_scopus_id":{"post":{"operationId":"get_abstract_by_scopus_id","summary":"Get the Scopus record of a document by Scopus ID: title, source, date, DOI, citation count, authors, affiliations, keywo","description":"Get the Scopus record of a document by Scopus ID: title, source, date, DOI, citation count, authors, affiliations, keywords and subject areas (abstract text with view META_ABS). Use for \"What are the details and citation count of Scopus document 84884919538\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"scopus_id":{"description":"Scopus ID (digits), for example '84884919538'; the part of dc:identifier after 'SCOPUS_ID:'.","maxLength":200,"title":"Scopus Id","type":"string"},"view":{"anyOf":[{"enum":["META","META_ABS"],"type":"string"},{"type":"null"}],"default":null,"description":"META (default) or META_ABS (adds the abstract text).","title":"View"}},"required":["scopus_id"],"title":"get_abstract_by_scopus_idArguments","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_abstract_by_pubmed_id":{"post":{"operationId":"get_abstract_by_pubmed_id","summary":"Get the Scopus record of a document by its PubMed ID: title, source, date, DOI, citation count, authors and keywords. Us","description":"Get the Scopus record of a document by its PubMed ID: title, source, date, DOI, citation count, authors and keywords. Use for \"What is the Scopus citation count of PubMed article 11852050\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"pubmed_id":{"description":"PubMed ID (digits), for example '11852050'.","maxLength":200,"title":"Pubmed Id","type":"string"},"view":{"anyOf":[{"enum":["META","META_ABS"],"type":"string"},{"type":"null"}],"default":null,"description":"META (default) or META_ABS (adds the abstract text).","title":"View"}},"required":["pubmed_id"],"title":"get_abstract_by_pubmed_idArguments","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_author_profile":{"post":{"operationId":"get_author_profile","summary":"Get a Scopus author profile by author ID: name, document count, citation counts, current affiliation and subject areas; ","description":"Get a Scopus author profile by author ID: name, document count, citation counts, current affiliation and subject areas; view METRICS adds the h-index. Use for \"What is the h-index and document count of Scopus author 7202909704\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"author_id":{"description":"Scopus author ID (digits), for example '7202909704'.","maxLength":200,"title":"Author Id","type":"string"},"view":{"anyOf":[{"enum":["LIGHT","STANDARD","ENHANCED","METRICS"],"type":"string"},{"type":"null"}],"default":null,"description":"LIGHT (default), STANDARD, ENHANCED or METRICS (adds h-index).","title":"View"}},"required":["author_id"],"title":"get_author_profileArguments","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_author_by_orcid":{"post":{"operationId":"get_author_by_orcid","summary":"Get a Scopus author profile by ORCID iD: name, document count, citation counts, current affiliation and subject areas. U","description":"Get a Scopus author profile by ORCID iD: name, document count, citation counts, current affiliation and subject areas. Use for \"Which Scopus author profile belongs to ORCID 0000-0002-1825-0097\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"orcid":{"description":"ORCID iD, for example '0000-0002-1825-0097'.","maxLength":200,"title":"Orcid","type":"string"},"view":{"anyOf":[{"enum":["LIGHT","STANDARD","ENHANCED","METRICS"],"type":"string"},{"type":"null"}],"default":null,"description":"LIGHT (default), STANDARD, ENHANCED or METRICS (adds h-index).","title":"View"}},"required":["orcid"],"title":"get_author_by_orcidArguments","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_affiliation_profile":{"post":{"operationId":"get_affiliation_profile","summary":"Get a Scopus affiliation profile by affiliation ID: name, address, city, country, author count and document count. Use f","description":"Get a Scopus affiliation profile by affiliation ID: name, address, city, country, author count and document count. Use for \"How many documents and authors does Scopus list for affiliation 60016849\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"affiliation_id":{"description":"Scopus affiliation ID (digits), for example '60016849'.","maxLength":200,"title":"Affiliation Id","type":"string"}},"required":["affiliation_id"],"title":"get_affiliation_profileArguments","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_serial_titles":{"post":{"operationId":"search_serial_titles","summary":"Search journals, conference proceedings and book series indexed by Scopus by title, publisher, ISSN or subject area; inc","description":"Search journals, conference proceedings and book series indexed by Scopus by title, publisher, ISSN or subject area; includes open-access flags and metrics. Use for \"Which Scopus-indexed journals have 'ecology' in the title\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"title":{"anyOf":[{"maxLength":150,"type":"string"},{"type":"null"}],"default":null,"description":"Part of the title, for example 'ecology'.","title":"Title"},"pub":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Part of the publisher name, for example 'Elsevier'.","title":"Pub"},"issn":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"One or more ISSNs (comma-separated), for example '0036-1984'.","title":"Issn"},"subj":{"anyOf":[{"maxLength":4,"type":"string"},{"type":"null"}],"default":null,"description":"Subject area abbreviation such as COMP, MEDI, ENGI or AGRI.","title":"Subj"},"content":{"anyOf":[{"enum":["journal","tradejournal","conferenceproceeding","bookseries"],"type":"string"},{"type":"null"}],"default":null,"description":"Source type: journal, tradejournal, conferenceproceeding or bookseries.","title":"Content"},"oa":{"anyOf":[{"enum":["all","full","partial","none"],"type":"string"},{"type":"null"}],"default":null,"description":"Open access filter: all, full, partial or none.","title":"Oa"},"count":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many results to return; the allowed maximum depends on the key's entitlement and is rejected with an error when exceeded.","title":"Count"},"start":{"anyOf":[{"maximum":10000,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Result offset for paging (0 for the first result); offset plus count is capped by the Scopus index.","title":"Start"}},"title":"search_serial_titlesArguments","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_serial_title_by_issn":{"post":{"operationId":"get_serial_title_by_issn","summary":"Get the Scopus metadata of one journal or series by ISSN: publisher, type, subject areas, open-access flags and citation","description":"Get the Scopus metadata of one journal or series by ISSN: publisher, type, subject areas, open-access flags and citation metrics (SNIP, SJR, CiteScore). Use for \"What are the SJR and CiteScore of the journal with ISSN 0036-1984\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"issn":{"description":"ISSN with or without the hyphen, for example '0036-1984'.","maxLength":200,"title":"Issn","type":"string"}},"required":["issn"],"title":"get_serial_title_by_issnArguments","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}}}}