Documentation
¶
Overview ¶
Package redpine is the Go client for the Redpine search API.
client, err := redpine.New() // reads REDPINE_API_KEY
r, err := client.Search(ctx, "crispr", redpine.SearchOptions{
Collections: []string{"corpus"},
Filters: redpine.F("issn").Eq("1664-302X").Or(redpine.F("issn").Eq("1932-6203")),
})
Package redpine provides primitives to interact with the openapi HTTP API.
Code generated by github.com/oapi-codegen/oapi-codegen/v2 version v2.8.0 DO NOT EDIT.
Index ¶
- Constants
- func NewGetCachedResultRequest(server string, queryId string, params *GetCachedResultParams) (*http.Request, error)
- func NewGetQuotaRequest(server string) (*http.Request, error)
- func NewListCollectionJournalsRequest(server string, name string, params *ListCollectionJournalsParams) (*http.Request, error)
- func NewListCollectionsRequest(server string) (*http.Request, error)
- func NewSearchAssistedRequest(server string, body SearchAssistedJSONRequestBody) (*http.Request, error)
- func NewSearchAssistedRequestWithBody(server string, contentType string, body io.Reader) (*http.Request, error)
- func NewSearchCollectionRequest(server string, collection string, body SearchCollectionJSONRequestBody) (*http.Request, error)
- func NewSearchCollectionRequestWithBody(server string, collection string, contentType string, body io.Reader) (*http.Request, error)
- func NewSearchPreviewRequest(server string, params *SearchPreviewParams, body SearchPreviewJSONRequestBody) (*http.Request, error)
- func NewSearchPreviewRequestWithBody(server string, params *SearchPreviewParams, contentType string, body io.Reader) (*http.Request, error)
- func NewSearchQueryRequest(server string, body SearchQueryJSONRequestBody) (*http.Request, error)
- func NewSearchQueryRequestWithBody(server string, contentType string, body io.Reader) (*http.Request, error)
- func NewSearchUnlockRequest(server string, body SearchUnlockJSONRequestBody) (*http.Request, error)
- func NewSearchUnlockRequestWithBody(server string, contentType string, body io.Reader) (*http.Request, error)
- type APIError
- type AccessDeniedError
- type AssistedBillingInfo
- type AssistedSearchOptions
- type AssistedSearchRequest
- type AssistedSearchResponse
- type AssistedSearchResponseStatus
- type AssistedSearchResult
- type AssistedUnavailableError
- type AuthError
- type ClarificationInfo
- type Client
- func (c *Client) GetCachedResult(ctx context.Context, queryId string, params *GetCachedResultParams, ...) (*http.Response, error)
- func (c *Client) GetQuota(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error)
- func (c *Client) ListCollectionJournals(ctx context.Context, name string, params *ListCollectionJournalsParams, ...) (*http.Response, error)
- func (c *Client) ListCollections(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error)
- func (c *Client) SearchAssisted(ctx context.Context, body SearchAssistedJSONRequestBody, ...) (*http.Response, error)
- func (c *Client) SearchAssistedWithBody(ctx context.Context, contentType string, body io.Reader, ...) (*http.Response, error)
- func (c *Client) SearchCollection(ctx context.Context, collection string, body SearchCollectionJSONRequestBody, ...) (*http.Response, error)
- func (c *Client) SearchCollectionWithBody(ctx context.Context, collection string, contentType string, body io.Reader, ...) (*http.Response, error)
- func (c *Client) SearchPreview(ctx context.Context, params *SearchPreviewParams, ...) (*http.Response, error)
- func (c *Client) SearchPreviewWithBody(ctx context.Context, params *SearchPreviewParams, contentType string, ...) (*http.Response, error)
- func (c *Client) SearchQuery(ctx context.Context, body SearchQueryJSONRequestBody, ...) (*http.Response, error)
- func (c *Client) SearchQueryWithBody(ctx context.Context, contentType string, body io.Reader, ...) (*http.Response, error)
- func (c *Client) SearchUnlock(ctx context.Context, body SearchUnlockJSONRequestBody, ...) (*http.Response, error)
- func (c *Client) SearchUnlockWithBody(ctx context.Context, contentType string, body io.Reader, ...) (*http.Response, error)
- type ClientInterface
- type ClientOption
- type ClientWithResponses
- func (c *ClientWithResponses) GetCachedResultWithResponse(ctx context.Context, queryId string, params *GetCachedResultParams, ...) (*GetCachedResultResponse, error)
- func (c *ClientWithResponses) GetQuotaWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*GetQuotaResponse, error)
- func (c *ClientWithResponses) ListCollectionJournalsWithResponse(ctx context.Context, name string, params *ListCollectionJournalsParams, ...) (*ListCollectionJournalsResponse, error)
- func (c *ClientWithResponses) ListCollectionsWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*ListCollectionsResponse, error)
- func (c *ClientWithResponses) SearchAssistedWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, ...) (*SearchAssistedResponse, error)
- func (c *ClientWithResponses) SearchAssistedWithResponse(ctx context.Context, body SearchAssistedJSONRequestBody, ...) (*SearchAssistedResponse, error)
- func (c *ClientWithResponses) SearchCollectionWithBodyWithResponse(ctx context.Context, collection string, contentType string, body io.Reader, ...) (*SearchCollectionResponse, error)
- func (c *ClientWithResponses) SearchCollectionWithResponse(ctx context.Context, collection string, body SearchCollectionJSONRequestBody, ...) (*SearchCollectionResponse, error)
- func (c *ClientWithResponses) SearchPreviewWithBodyWithResponse(ctx context.Context, params *SearchPreviewParams, contentType string, ...) (*SearchPreviewResponse, error)
- func (c *ClientWithResponses) SearchPreviewWithResponse(ctx context.Context, params *SearchPreviewParams, ...) (*SearchPreviewResponse, error)
- func (c *ClientWithResponses) SearchQueryWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, ...) (*SearchQueryResponse, error)
- func (c *ClientWithResponses) SearchQueryWithResponse(ctx context.Context, body SearchQueryJSONRequestBody, ...) (*SearchQueryResponse, error)
- func (c *ClientWithResponses) SearchUnlockWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, ...) (*SearchUnlockResponse, error)
- func (c *ClientWithResponses) SearchUnlockWithResponse(ctx context.Context, body SearchUnlockJSONRequestBody, ...) (*SearchUnlockResponse, error)
- type ClientWithResponsesInterface
- type CollectionsResponse
- type DiscoveryAnswer
- type DiscoveryAnswerIntent
- type DiscoveryCallout
- type DiscoveryCalloutKind
- type DiscoveryCollectionItem
- type DiscoveryCollectionItemKind
- type DiscoveryCollectionItemPriceRangePer
- type DiscoveryJournalItem
- type DiscoveryJournalItemKind
- type DiscoveryNextAction
- type DiscoveryPublisherItem
- type DiscoveryPublisherItemKind
- type DiscoveryScope
- type DiscoveryScope_Items_Item
- func (t DiscoveryScope_Items_Item) AsDiscoveryCollectionItem() (DiscoveryCollectionItem, error)
- func (t DiscoveryScope_Items_Item) AsDiscoveryJournalItem() (DiscoveryJournalItem, error)
- func (t DiscoveryScope_Items_Item) AsDiscoveryPublisherItem() (DiscoveryPublisherItem, error)
- func (t *DiscoveryScope_Items_Item) FromDiscoveryCollectionItem(v DiscoveryCollectionItem) error
- func (t *DiscoveryScope_Items_Item) FromDiscoveryJournalItem(v DiscoveryJournalItem) error
- func (t *DiscoveryScope_Items_Item) FromDiscoveryPublisherItem(v DiscoveryPublisherItem) error
- func (t DiscoveryScope_Items_Item) MarshalJSON() ([]byte, error)
- func (t *DiscoveryScope_Items_Item) MergeDiscoveryCollectionItem(v DiscoveryCollectionItem) error
- func (t *DiscoveryScope_Items_Item) MergeDiscoveryJournalItem(v DiscoveryJournalItem) error
- func (t *DiscoveryScope_Items_Item) MergeDiscoveryPublisherItem(v DiscoveryPublisherItem) error
- func (t *DiscoveryScope_Items_Item) UnmarshalJSON(b []byte) error
- type Error
- type ExpiredError
- type Field
- func (fd Field) Between(lo, hi any) Filter
- func (fd Field) Eq(v any) Filter
- func (fd Field) Gt(v any) Filter
- func (fd Field) Gte(v any) Filter
- func (fd Field) In(v ...any) Filter
- func (fd Field) Lt(v any) Filter
- func (fd Field) Lte(v any) Filter
- func (fd Field) Ne(v any) Filter
- func (fd Field) NotIn(v ...any) Filter
- type Filter
- type FilterWarning
- type GetCachedResultParams
- type GetCachedResultResponse
- func (r GetCachedResultResponse) ContentType() string
- func (r GetCachedResultResponse) GetBody() []byte
- func (r GetCachedResultResponse) GetJSON200() *SearchResultsPreviewResponse
- func (r GetCachedResultResponse) GetJSON401() *Error
- func (r GetCachedResultResponse) GetJSON404() *Error
- func (r GetCachedResultResponse) GetJSON410() *Error
- func (r GetCachedResultResponse) Status() string
- func (r GetCachedResultResponse) StatusCode() int
- type GetCachedResultResponse200Headers
- type GetQuotaResponse
- type HttpRequestDoer
- type InsufficientCreditsError
- type JournalMetricExpansion
- type ListCollectionJournalsParams
- type ListCollectionJournalsResponse
- func (r ListCollectionJournalsResponse) ContentType() string
- func (r ListCollectionJournalsResponse) GetBody() []byte
- func (r ListCollectionJournalsResponse) GetJSON200() *DiscoveryAnswer
- func (r ListCollectionJournalsResponse) GetJSON401() *Error
- func (r ListCollectionJournalsResponse) GetJSON403() *Error
- func (r ListCollectionJournalsResponse) GetJSON404() *Error
- func (r ListCollectionJournalsResponse) GetJSON503() *Error
- func (r ListCollectionJournalsResponse) Status() string
- func (r ListCollectionJournalsResponse) StatusCode() int
- type ListCollectionJournalsResponse200Headers
- type ListCollectionsResponse
- func (r ListCollectionsResponse) ContentType() string
- func (r ListCollectionsResponse) GetBody() []byte
- func (r ListCollectionsResponse) GetJSON200() *CollectionsResponse
- func (r ListCollectionsResponse) GetJSON401() *Error
- func (r ListCollectionsResponse) GetJSON403() *Error
- func (r ListCollectionsResponse) GetJSON429() *Error
- func (r ListCollectionsResponse) Status() string
- func (r ListCollectionsResponse) StatusCode() int
- type NotFoundError
- type Option
- type PreviewOptions
- type PreviewResult
- type PreviewUnlockResponse
- type QueryUnderstanding
- type QuotaExceededError
- type QuotaInfo
- type Redpine
- func (c *Redpine) AssistedSearch(ctx context.Context, query string, o AssistedSearchOptions) (*AssistedSearchResponse, error)
- func (c *Redpine) Collections(ctx context.Context) (*CollectionsResponse, error)
- func (c *Redpine) GetResults(ctx context.Context, queryID string) (*SearchResultsPreviewResponse, error)
- func (c *Redpine) Preview(ctx context.Context, query string, o PreviewOptions) (*PreviewUnlockResponse, error)
- func (c *Redpine) Quota(ctx context.Context) (*QuotaInfo, error)
- func (c *Redpine) Search(ctx context.Context, query string, o SearchOptions) (*SearchResponse, error)
- func (c *Redpine) SearchCollection(ctx context.Context, collection, query string, o SearchCollectionOptions) (*SearchResponse, error)
- func (c *Redpine) Unlock(ctx context.Context, queryID string, resultIDs []string) (*PreviewUnlockResponse, error)
- type RelevanceInfo
- type RequestEditorFn
- type SearchAssistedJSONRequestBody
- type SearchAssistedResponse
- func (r SearchAssistedResponse) ContentType() string
- func (r SearchAssistedResponse) GetBody() []byte
- func (r SearchAssistedResponse) GetJSON200() *AssistedSearchResponse
- func (r SearchAssistedResponse) GetJSON401() *Error
- func (r SearchAssistedResponse) GetJSON403() *Error
- func (r SearchAssistedResponse) GetJSON422() *Error
- func (r SearchAssistedResponse) GetJSON429() *Error
- func (r SearchAssistedResponse) GetJSON503() *Error
- func (r SearchAssistedResponse) Status() string
- func (r SearchAssistedResponse) StatusCode() int
- type SearchAssistedResponse200Headers
- type SearchCollectionJSONBody
- type SearchCollectionJSONRequestBody
- type SearchCollectionOptions
- type SearchCollectionResponse
- func (r SearchCollectionResponse) ContentType() string
- func (r SearchCollectionResponse) GetBody() []byte
- func (r SearchCollectionResponse) GetJSON200() *SearchResponse
- func (r SearchCollectionResponse) GetJSON401() *Error
- func (r SearchCollectionResponse) GetJSON403() *Error
- func (r SearchCollectionResponse) GetJSON404() *Error
- func (r SearchCollectionResponse) GetJSON422() *Error
- func (r SearchCollectionResponse) GetJSON429() *Error
- func (r SearchCollectionResponse) GetJSON503() *Error
- func (r SearchCollectionResponse) Status() string
- func (r SearchCollectionResponse) StatusCode() int
- type SearchCollectionResponse200Headers
- type SearchOptions
- type SearchPreviewJSONRequestBody
- type SearchPreviewParams
- type SearchPreviewRequest
- type SearchPreviewResponse
- func (r SearchPreviewResponse) ContentType() string
- func (r SearchPreviewResponse) GetBody() []byte
- func (r SearchPreviewResponse) GetJSON200() *PreviewUnlockResponse
- func (r SearchPreviewResponse) GetJSON401() *Error
- func (r SearchPreviewResponse) GetJSON403() *Error
- func (r SearchPreviewResponse) GetJSON404() *Error
- func (r SearchPreviewResponse) GetJSON409() *Error
- func (r SearchPreviewResponse) GetJSON422() *Error
- func (r SearchPreviewResponse) GetJSON429() *Error
- func (r SearchPreviewResponse) GetJSON503() *Error
- func (r SearchPreviewResponse) Status() string
- func (r SearchPreviewResponse) StatusCode() int
- type SearchPreviewResponse200Headers
- type SearchQueryJSONRequestBody
- type SearchQueryResponse
- func (r SearchQueryResponse) ContentType() string
- func (r SearchQueryResponse) GetBody() []byte
- func (r SearchQueryResponse) GetJSON200() *SearchResponse
- func (r SearchQueryResponse) GetJSON401() *Error
- func (r SearchQueryResponse) GetJSON403() *Error
- func (r SearchQueryResponse) GetJSON404() *Error
- func (r SearchQueryResponse) GetJSON422() *Error
- func (r SearchQueryResponse) GetJSON429() *Error
- func (r SearchQueryResponse) GetJSON503() *Error
- func (r SearchQueryResponse) Status() string
- func (r SearchQueryResponse) StatusCode() int
- type SearchQueryResponse200Headers
- type SearchRequest
- type SearchResponse
- type SearchResult
- type SearchResultsPreviewResponse
- type SearchUnlockJSONRequestBody
- type SearchUnlockResponse
- func (r SearchUnlockResponse) ContentType() string
- func (r SearchUnlockResponse) GetBody() []byte
- func (r SearchUnlockResponse) GetJSON200() *PreviewUnlockResponse
- func (r SearchUnlockResponse) GetJSON401() *Error
- func (r SearchUnlockResponse) GetJSON402() *Error
- func (r SearchUnlockResponse) GetJSON404() *Error
- func (r SearchUnlockResponse) GetJSON410() *Error
- func (r SearchUnlockResponse) GetJSON422() *Error
- func (r SearchUnlockResponse) GetJSON429() *Error
- func (r SearchUnlockResponse) GetJSON503() *Error
- func (r SearchUnlockResponse) Status() string
- func (r SearchUnlockResponse) StatusCode() int
- type UnlockRequest
- type ValidationError
Constants ¶
const ( DefaultTimeout = 30 * time.Second AssistedTimeout = 120 * time.Second )
Without WithTimeout, calls wait DefaultTimeout and AssistedSearch waits AssistedTimeout: assisted search reads whole documents and the server allows it up to 75 seconds. WithTimeout applies to every call.
const DefaultBaseURL = "https://api.redpine.ai"
DefaultBaseURL is the production API. Override only via env REDPINE_BASE_URL.
Variables ¶
This section is empty.
Functions ¶
func NewGetCachedResultRequest ¶
func NewGetCachedResultRequest(server string, queryId string, params *GetCachedResultParams) (*http.Request, error)
NewGetCachedResultRequest constructs an http.Request for the GetCachedResult method
func NewGetQuotaRequest ¶
NewGetQuotaRequest constructs an http.Request for the GetQuota method
func NewListCollectionJournalsRequest ¶ added in v0.1.7
func NewListCollectionJournalsRequest(server string, name string, params *ListCollectionJournalsParams) (*http.Request, error)
NewListCollectionJournalsRequest constructs an http.Request for the ListCollectionJournals method
func NewListCollectionsRequest ¶
NewListCollectionsRequest constructs an http.Request for the ListCollections method
func NewSearchAssistedRequest ¶
func NewSearchAssistedRequest(server string, body SearchAssistedJSONRequestBody) (*http.Request, error)
NewSearchAssistedRequest calls the generic SearchAssisted builder with application/json body
func NewSearchAssistedRequestWithBody ¶
func NewSearchAssistedRequestWithBody(server string, contentType string, body io.Reader) (*http.Request, error)
NewSearchAssistedRequestWithBody constructs an http.Request for the SearchAssisted method, with any body, and a specified content type
func NewSearchCollectionRequest ¶
func NewSearchCollectionRequest(server string, collection string, body SearchCollectionJSONRequestBody) (*http.Request, error)
NewSearchCollectionRequest calls the generic SearchCollection builder with application/json body
func NewSearchCollectionRequestWithBody ¶
func NewSearchCollectionRequestWithBody(server string, collection string, contentType string, body io.Reader) (*http.Request, error)
NewSearchCollectionRequestWithBody constructs an http.Request for the SearchCollection method, with any body, and a specified content type
func NewSearchPreviewRequest ¶ added in v0.1.4
func NewSearchPreviewRequest(server string, params *SearchPreviewParams, body SearchPreviewJSONRequestBody) (*http.Request, error)
NewSearchPreviewRequest calls the generic SearchPreview builder with application/json body
func NewSearchPreviewRequestWithBody ¶ added in v0.1.4
func NewSearchPreviewRequestWithBody(server string, params *SearchPreviewParams, contentType string, body io.Reader) (*http.Request, error)
NewSearchPreviewRequestWithBody constructs an http.Request for the SearchPreview method, with any body, and a specified content type
func NewSearchQueryRequest ¶
func NewSearchQueryRequest(server string, body SearchQueryJSONRequestBody) (*http.Request, error)
NewSearchQueryRequest calls the generic SearchQuery builder with application/json body
func NewSearchQueryRequestWithBody ¶
func NewSearchQueryRequestWithBody(server string, contentType string, body io.Reader) (*http.Request, error)
NewSearchQueryRequestWithBody constructs an http.Request for the SearchQuery method, with any body, and a specified content type
func NewSearchUnlockRequest ¶ added in v0.1.4
func NewSearchUnlockRequest(server string, body SearchUnlockJSONRequestBody) (*http.Request, error)
NewSearchUnlockRequest calls the generic SearchUnlock builder with application/json body
Types ¶
type APIError ¶
APIError is the base for every error the SDK returns on a non-2xx response. (Named APIError because the generated code already declares the model type Error.)
type AccessDeniedError ¶
type AccessDeniedError struct{ APIError }
AccessDeniedError is 403: key has no access to the requested collection.
func (*AccessDeniedError) Unwrap ¶
func (e *AccessDeniedError) Unwrap() error
type AssistedBillingInfo ¶
type AssistedBillingInfo struct {
// ChargedResults Number of results billed
ChargedResults int `json:"chargedResults"`
// TokensCharged Tokens billed (0 for clarification/no-result)
TokensCharged int `json:"tokensCharged"`
}
AssistedBillingInfo What was actually charged — only delivered, verified results are billed.
type AssistedSearchOptions ¶
type AssistedSearchOptions struct {
Collection string
Collections []string
Limit int
Filters any
AllowClarification *bool
IncludeMetadata *bool
}
AssistedSearchOptions for AssistedSearch. Exactly one of Collection / Collections is required. IncludeFigures is not offered here: the API always forces it false for assisted search (matches the TS client), so there is no user-facing knob for it.
type AssistedSearchRequest ¶
type AssistedSearchRequest struct {
// AllowClarification If true, the endpoint may return a clarifying question instead of results when the query is too underspecified. Set false if your client cannot do a follow-up turn.
AllowClarification *bool `json:"allowClarification,omitempty"`
// Collection Collection to search. Provide either this or `collections`, not both.
Collection *string `json:"collection,omitempty"`
// Collections Collections to search together (max 5). Results are merged into one relevance-ranked list and each result is labeled with its origin collection. Provide either this or 'collection', not both.
Collections *[]string `json:"collections,omitempty"`
// Filters Same filter forms as `/api/v1/search/query`; applied to every internal search.
Filters *map[string]interface{} `json:"filters,omitempty"`
// ImageMaxHeight Maximum image height in pixels
ImageMaxHeight *int `json:"imageMaxHeight,omitempty"`
// ImageMaxWidth Maximum image width in pixels
ImageMaxWidth *int `json:"imageMaxWidth,omitempty"`
// ImageQuality JPEG quality for fetched images
ImageQuality *int `json:"imageQuality,omitempty"`
// IncludeFigures Fetch and attach figure images (base64, in metadata.figures[].image_data) for the delivered results only. Adds latency; requires `includeMetadata`. `includeImages` is accepted as a deprecated alias.
IncludeFigures *bool `json:"includeFigures,omitempty"`
// IncludeMetadata Whether to include metadata in results
IncludeMetadata *bool `json:"includeMetadata,omitempty"`
// Limit Maximum verified results to return.
Limit *int `json:"limit,omitempty"`
// Query Search query text, or a whole document such as a patient case or chart note (max 16000 characters)
Query string `json:"query"`
}
AssistedSearchRequest defines model for AssistedSearchRequest.
type AssistedSearchResponse ¶
type AssistedSearchResponse struct {
// Billing What was billed
Billing AssistedBillingInfo `json:"billing"`
// Clarification Set only when status is `clarification_needed`.
Clarification *ClarificationInfo `json:"clarification,omitempty"`
// Discovery A catalogue answer: what data sources, publishers or journals your key can reach. Present only when the query asked about the catalogue rather than for literature; then `results` is empty and nothing was charged (`X-Query-Cost: 0.000000`).
Discovery *DiscoveryAnswer `json:"discovery,omitempty"`
// FilterWarnings Advisory warnings about the supplied filter — for example filtering on a known field with no payload index, which is matched by scanning, or a collection excluded because it holds only open-access content and the filter asked for open_access=false. The search still runs. Omitted when there are none.
FilterWarnings *[]FilterWarning `json:"filterWarnings,omitempty"`
// IterationsRun Number of search+replan rounds executed
IterationsRun int `json:"iterationsRun"`
// JournalMetricExpansions How each journal-metric condition resolved to ISSNs; omitted when no metric filter was used
JournalMetricExpansions *[]JournalMetricExpansion `json:"journalMetricExpansions,omitempty"`
// LatencyMs End-to-end latency in milliseconds
LatencyMs int `json:"latencyMs"`
// QueryId Query ID for audit reference
QueryId string `json:"queryId"`
// QueryUnderstanding How the query was interpreted
QueryUnderstanding QueryUnderstanding `json:"queryUnderstanding"`
// Results Verified results (empty unless status='results')
Results *[]AssistedSearchResult `json:"results,omitempty"`
// Status Outcome of the assisted search
Status AssistedSearchResponseStatus `json:"status"`
}
AssistedSearchResponse defines model for AssistedSearchResponse.
type AssistedSearchResponseStatus ¶
type AssistedSearchResponseStatus string
AssistedSearchResponseStatus Outcome of the assisted search
const ( ClarificationNeeded AssistedSearchResponseStatus = "clarification_needed" NoRelevantResults AssistedSearchResponseStatus = "no_relevant_results" Results AssistedSearchResponseStatus = "results" )
Defines values for AssistedSearchResponseStatus.
func (AssistedSearchResponseStatus) Valid ¶
func (e AssistedSearchResponseStatus) Valid() bool
Valid indicates whether the value is a known member of the AssistedSearchResponseStatus enum.
type AssistedSearchResult ¶
type AssistedSearchResult struct {
// Collection Origin collection of this result. Populated only for requests made with the 'collections' (multi-collection) form.
Collection *string `json:"collection,omitempty"`
// DoiUrl Resolvable DOI link (https://doi.org/{doi})
DoiUrl *string `json:"doiUrl,omitempty"`
// Id Chunk/point ID
Id string `json:"id"`
// Metadata Document metadata (title, authors, journal, etc.). Null when includeMetadata is false.
Metadata *map[string]interface{} `json:"metadata,omitempty"`
// Relevance Relevance verdict for this result
Relevance RelevanceInfo `json:"relevance"`
// Section Comma-joined source section(s) of the article, from the normalized vocabulary (abstract, introduction, background, methods, results, discussion, conclusion, case, supplementary, other)
Section *string `json:"section,omitempty"`
// SubQuestion The sub-question of a multi-problem query that this result answers; null when the query was answered as a single question
SubQuestion *string `json:"subQuestion,omitempty"`
// Text Chunk text content
Text string `json:"text"`
}
AssistedSearchResult defines model for AssistedSearchResult.
type AssistedUnavailableError ¶
AssistedUnavailableError is 503: assisted search temporarily unavailable.
func (*AssistedUnavailableError) Unwrap ¶
func (e *AssistedUnavailableError) Unwrap() error
type ClarificationInfo ¶
type ClarificationInfo struct {
// Question The clarifying question to ask the user
Question string `json:"question"`
// Reason Why clarification is needed
Reason *string `json:"reason,omitempty"`
}
ClarificationInfo defines model for ClarificationInfo.
type Client ¶
type Client struct {
// The endpoint of the server conforming to this interface, with scheme,
// https://api.deepmap.com for example. This can contain a path relative
// to the server, such as https://api.deepmap.com/dev-test, and all the
// paths in the swagger spec will be appended to the server.
Server string
// Doer for performing requests, typically a *http.Client with any
// customized settings, such as certificate chains.
Client HttpRequestDoer
// A list of callbacks for modifying requests which are generated before sending over
// the network.
RequestEditors []RequestEditorFn
}
Client which conforms to the OpenAPI3 specification for this service.
func NewClient ¶
func NewClient(server string, opts ...ClientOption) (*Client, error)
Creates a new Client, with reasonable defaults
func (*Client) GetCachedResult ¶
func (c *Client) GetCachedResult(ctx context.Context, queryId string, params *GetCachedResultParams, reqEditors ...RequestEditorFn) (*http.Response, error)
GetCachedResult Re-fetch cached results
Retrieve previously returned search results using the queryId from a prior search response. Returns the same results without billing. The request must use the same API key that performed the original search. Results are available for 7 days.
Each result carries `locked`/`tokens`/`cost`: a result not yet paid for through POST /api/v1/search/unlock comes back as a teaser (`locked: true`), never the full text.
Corresponds with GET /api/v1/search/results/{queryId} (the `GetCachedResult` operationId).
func (*Client) GetQuota ¶
func (c *Client) GetQuota(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error)
GetQuota Current quota usage and limits
Daily and monthly query usage and limits for the authenticated organization.
Corresponds with GET /api/v1/search/quota (the `GetQuota` operationId).
func (*Client) ListCollectionJournals ¶ added in v0.1.7
func (c *Client) ListCollectionJournals(ctx context.Context, name string, params *ListCollectionJournalsParams, reqEditors ...RequestEditorFn) (*http.Response, error)
ListCollectionJournals List the journals your key can reach in a collection
Free. Journals present in your scope of the collection, ranked by h-index (each with its journal_metric.impact_factor, an impact factor computed by Redpine from OpenAlex citation data with the JIF formula. It is not Clarivate's Journal Impact Factor. Journals that publish many news items, letters and editorials (for example BMJ, JAMA, The Lancet) score far below their JCR figure, because OpenAlex classifies those items as articles.), or with `topic` by the relevant content each journal holds on it. Only journals anchored to the metrics table count as proved; sampled, title-only and unresolved entries are reported beside the total. Each journal carries the ISSNs to filter a search on.
Corresponds with GET /api/v1/search/collections/{name}/journals (the `ListCollectionJournals` operationId).
func (*Client) ListCollections ¶
func (c *Client) ListCollections(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error)
ListCollections List collections
List all document collections accessible to the authenticated API key.
Corresponds with GET /api/v1/search/collections (the `ListCollections` operationId).
func (*Client) SearchAssisted ¶
func (c *Client) SearchAssisted(ctx context.Context, body SearchAssistedJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)
SearchAssisted Assisted search (verified results only)
Agentic search: the query is interpreted, one or more internal searches are planned and run, every candidate is verified as actually addressing the query, and only verified results are returned.
**Billing differs from `/search/query`:** only delivered, verified results are charged. A clarification request or an honest no-results answer costs nothing. Internal search fan-out and LLM tokens are absorbed by Redpine.
Accepts the same `filters` as `/search/query`, applied to every internal search.
Takes a body of the `application/json` content type.
Corresponds with POST /api/v1/search/assisted (the `SearchAssisted` operationId).
func (*Client) SearchAssistedWithBody ¶
func (c *Client) SearchAssistedWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)
SearchAssistedWithBody Assisted search (verified results only)
Agentic search: the query is interpreted, one or more internal searches are planned and run, every candidate is verified as actually addressing the query, and only verified results are returned.
**Billing differs from `/search/query`:** only delivered, verified results are charged. A clarification request or an honest no-results answer costs nothing. Internal search fan-out and LLM tokens are absorbed by Redpine.
Accepts the same `filters` as `/search/query`, applied to every internal search.
Takes any type of body and a specified content type.
Corresponds with POST /api/v1/search/assisted (the `SearchAssisted` operationId).
func (*Client) SearchCollection ¶
func (c *Client) SearchCollection(ctx context.Context, collection string, body SearchCollectionJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)
SearchCollection Search a single collection by name
Shorthand for POST /api/v1/search/query with the collection named in the path instead of the body. Same pipeline, same response shape, one collection per call — use /query's `collections` form to search several at once.
Takes a body of the `application/json` content type.
Corresponds with POST /api/v1/search/{collection} (the `SearchCollection` operationId).
func (*Client) SearchCollectionWithBody ¶
func (c *Client) SearchCollectionWithBody(ctx context.Context, collection string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)
SearchCollectionWithBody Search a single collection by name
Shorthand for POST /api/v1/search/query with the collection named in the path instead of the body. Same pipeline, same response shape, one collection per call — use /query's `collections` form to search several at once.
Takes any type of body and a specified content type.
Corresponds with POST /api/v1/search/{collection} (the `SearchCollection` operationId).
func (*Client) SearchPreview ¶ added in v0.1.4
func (c *Client) SearchPreview(ctx context.Context, params *SearchPreviewParams, body SearchPreviewJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)
SearchPreview Preview search results without charging
Run the same pipeline as POST /api/v1/search/query -- same entitlement checks, same retraction filtering, same relevance ranking -- but never charge for it. Every result of a new preview comes back locked, with a teaser snippet in `text` and the cost to unlock it. Works even at a zero balance. Consumes no credits, no trial query and no quota.
Call POST /api/v1/search/unlock with the returned `queryId` to pay for and receive some or all of the results in full.
Send an `Idempotency-Key` header to make retries safe: a repeat with the same key and body returns the original `queryId` instead of buying the same results again under a new one.
Takes a body of the `application/json` content type.
Corresponds with POST /api/v1/search/preview (the `SearchPreview` operationId).
func (*Client) SearchPreviewWithBody ¶ added in v0.1.4
func (c *Client) SearchPreviewWithBody(ctx context.Context, params *SearchPreviewParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)
SearchPreviewWithBody Preview search results without charging
Run the same pipeline as POST /api/v1/search/query -- same entitlement checks, same retraction filtering, same relevance ranking -- but never charge for it. Every result of a new preview comes back locked, with a teaser snippet in `text` and the cost to unlock it. Works even at a zero balance. Consumes no credits, no trial query and no quota.
Call POST /api/v1/search/unlock with the returned `queryId` to pay for and receive some or all of the results in full.
Send an `Idempotency-Key` header to make retries safe: a repeat with the same key and body returns the original `queryId` instead of buying the same results again under a new one.
Takes any type of body and a specified content type.
Corresponds with POST /api/v1/search/preview (the `SearchPreview` operationId).
func (*Client) SearchQuery ¶
func (c *Client) SearchQuery(ctx context.Context, body SearchQueryJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)
SearchQuery Search documents
Search one or more collections using natural language or keyword queries. Results are ranked by relevance using hybrid retrieval (dense + sparse). Pass `collections` (up to 5) to search several collections in one call and receive a single merged, relevance-ranked list with per-result origin labels.
Takes a body of the `application/json` content type.
Corresponds with POST /api/v1/search/query (the `SearchQuery` operationId).
func (*Client) SearchQueryWithBody ¶
func (c *Client) SearchQueryWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)
SearchQueryWithBody Search documents
Search one or more collections using natural language or keyword queries. Results are ranked by relevance using hybrid retrieval (dense + sparse). Pass `collections` (up to 5) to search several collections in one call and receive a single merged, relevance-ranked list with per-result origin labels.
Takes any type of body and a specified content type.
Corresponds with POST /api/v1/search/query (the `SearchQuery` operationId).
func (*Client) SearchUnlock ¶ added in v0.1.4
func (c *Client) SearchUnlock(ctx context.Context, body SearchUnlockJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)
SearchUnlock Pay for previewed results and receive them in full
Charges only for results not already unlocked by an earlier call against the same `queryId` -- re-sending the same ids costs nothing. Omit `resultIds` (or pass `null`) to unlock everything from the preview.
Set `includeFigures` to receive figure images as base64 in `metadata.figures[].image_data`. Images are returned for every result unlocked under this `queryId`, including ones unlocked by an earlier call -- so re-sending ids you have already paid for is how you fetch images you skipped the first time, and it charges nothing. At most 50 images are fetched per call; the ids in `resultIds` (or, when it is omitted, the results this call unlocked) get that budget first. Figures are free: they are not priced into the token cost, so the flag changes latency and response size and never the charge. Use the preview's `figureCount` to decide whether to ask.
Takes a body of the `application/json` content type.
Corresponds with POST /api/v1/search/unlock (the `SearchUnlock` operationId).
func (*Client) SearchUnlockWithBody ¶ added in v0.1.4
func (c *Client) SearchUnlockWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)
SearchUnlockWithBody Pay for previewed results and receive them in full
Charges only for results not already unlocked by an earlier call against the same `queryId` -- re-sending the same ids costs nothing. Omit `resultIds` (or pass `null`) to unlock everything from the preview.
Set `includeFigures` to receive figure images as base64 in `metadata.figures[].image_data`. Images are returned for every result unlocked under this `queryId`, including ones unlocked by an earlier call -- so re-sending ids you have already paid for is how you fetch images you skipped the first time, and it charges nothing. At most 50 images are fetched per call; the ids in `resultIds` (or, when it is omitted, the results this call unlocked) get that budget first. Figures are free: they are not priced into the token cost, so the flag changes latency and response size and never the charge. Use the preview's `figureCount` to decide whether to ask.
Takes any type of body and a specified content type.
Corresponds with POST /api/v1/search/unlock (the `SearchUnlock` operationId).
type ClientInterface ¶
type ClientInterface interface {
// SearchAssistedWithBody Assisted search (verified results only)
//
// Agentic search: the query is interpreted, one or more internal searches are planned and run, every candidate is verified as actually addressing the query, and only verified results are returned.
//
// **Billing differs from `/search/query`:** only delivered, verified results are charged. A clarification request or an honest no-results answer costs nothing. Internal search fan-out and LLM tokens are absorbed by Redpine.
//
// Accepts the same `filters` as `/search/query`, applied to every internal search.
//
// Takes any type of body and a specified content type.
//
// Corresponds with POST /api/v1/search/assisted (the `SearchAssisted` operationId).
SearchAssistedWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)
// SearchAssisted Assisted search (verified results only)
//
// Agentic search: the query is interpreted, one or more internal searches are planned and run, every candidate is verified as actually addressing the query, and only verified results are returned.
//
// **Billing differs from `/search/query`:** only delivered, verified results are charged. A clarification request or an honest no-results answer costs nothing. Internal search fan-out and LLM tokens are absorbed by Redpine.
//
// Accepts the same `filters` as `/search/query`, applied to every internal search.
//
// Takes a body of the `application/json` content type.
//
// Corresponds with POST /api/v1/search/assisted (the `SearchAssisted` operationId).
SearchAssisted(ctx context.Context, body SearchAssistedJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)
// ListCollections List collections
//
// List all document collections accessible to the authenticated API key.
//
// Corresponds with GET /api/v1/search/collections (the `ListCollections` operationId).
ListCollections(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error)
// ListCollectionJournals List the journals your key can reach in a collection
//
// Free. Journals present in your scope of the collection, ranked by h-index (each with its journal_metric.impact_factor, an impact factor computed by Redpine from OpenAlex citation data with the JIF formula. It is not Clarivate's Journal Impact Factor. Journals that publish many news items, letters and editorials (for example BMJ, JAMA, The Lancet) score far below their JCR figure, because OpenAlex classifies those items as articles.), or with `topic` by the relevant content each journal holds on it. Only journals anchored to the metrics table count as proved; sampled, title-only and unresolved entries are reported beside the total. Each journal carries the ISSNs to filter a search on.
//
// Corresponds with GET /api/v1/search/collections/{name}/journals (the `ListCollectionJournals` operationId).
ListCollectionJournals(ctx context.Context, name string, params *ListCollectionJournalsParams, reqEditors ...RequestEditorFn) (*http.Response, error)
// SearchPreviewWithBody Preview search results without charging
//
// Run the same pipeline as POST /api/v1/search/query -- same entitlement checks, same retraction filtering, same relevance ranking -- but never charge for it. Every result of a new preview comes back locked, with a teaser snippet in `text` and the cost to unlock it. Works even at a zero balance. Consumes no credits, no trial query and no quota.
//
// Call POST /api/v1/search/unlock with the returned `queryId` to pay for and receive some or all of the results in full.
//
// Send an `Idempotency-Key` header to make retries safe: a repeat with the same key and body returns the original `queryId` instead of buying the same results again under a new one.
//
// Takes any type of body and a specified content type.
//
// Corresponds with POST /api/v1/search/preview (the `SearchPreview` operationId).
SearchPreviewWithBody(ctx context.Context, params *SearchPreviewParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)
// SearchPreview Preview search results without charging
//
// Run the same pipeline as POST /api/v1/search/query -- same entitlement checks, same retraction filtering, same relevance ranking -- but never charge for it. Every result of a new preview comes back locked, with a teaser snippet in `text` and the cost to unlock it. Works even at a zero balance. Consumes no credits, no trial query and no quota.
//
// Call POST /api/v1/search/unlock with the returned `queryId` to pay for and receive some or all of the results in full.
//
// Send an `Idempotency-Key` header to make retries safe: a repeat with the same key and body returns the original `queryId` instead of buying the same results again under a new one.
//
// Takes a body of the `application/json` content type.
//
// Corresponds with POST /api/v1/search/preview (the `SearchPreview` operationId).
SearchPreview(ctx context.Context, params *SearchPreviewParams, body SearchPreviewJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)
// SearchQueryWithBody Search documents
//
// Search one or more collections using natural language or keyword queries. Results are ranked by relevance using hybrid retrieval (dense + sparse). Pass `collections` (up to 5) to search several collections in one call and receive a single merged, relevance-ranked list with per-result origin labels.
//
// Takes any type of body and a specified content type.
//
// Corresponds with POST /api/v1/search/query (the `SearchQuery` operationId).
SearchQueryWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)
// SearchQuery Search documents
//
// Search one or more collections using natural language or keyword queries. Results are ranked by relevance using hybrid retrieval (dense + sparse). Pass `collections` (up to 5) to search several collections in one call and receive a single merged, relevance-ranked list with per-result origin labels.
//
// Takes a body of the `application/json` content type.
//
// Corresponds with POST /api/v1/search/query (the `SearchQuery` operationId).
SearchQuery(ctx context.Context, body SearchQueryJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)
// GetQuota Current quota usage and limits
//
// Daily and monthly query usage and limits for the authenticated organization.
//
// Corresponds with GET /api/v1/search/quota (the `GetQuota` operationId).
GetQuota(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error)
// GetCachedResult Re-fetch cached results
//
// Retrieve previously returned search results using the queryId from a prior search response. Returns the same results without billing. The request must use the same API key that performed the original search. Results are available for 7 days.
//
// Each result carries `locked`/`tokens`/`cost`: a result not yet paid for through POST /api/v1/search/unlock comes back as a teaser (`locked: true`), never the full text.
//
// Corresponds with GET /api/v1/search/results/{queryId} (the `GetCachedResult` operationId).
GetCachedResult(ctx context.Context, queryId string, params *GetCachedResultParams, reqEditors ...RequestEditorFn) (*http.Response, error)
// SearchUnlockWithBody Pay for previewed results and receive them in full
//
// Charges only for results not already unlocked by an earlier call against the same `queryId` -- re-sending the same ids costs nothing. Omit `resultIds` (or pass `null`) to unlock everything from the preview.
//
// Set `includeFigures` to receive figure images as base64 in `metadata.figures[].image_data`. Images are returned for every result unlocked under this `queryId`, including ones unlocked by an earlier call -- so re-sending ids you have already paid for is how you fetch images you skipped the first time, and it charges nothing. At most 50 images are fetched per call; the ids in `resultIds` (or, when it is omitted, the results this call unlocked) get that budget first. Figures are free: they are not priced into the token cost, so the flag changes latency and response size and never the charge. Use the preview's `figureCount` to decide whether to ask.
//
// Takes any type of body and a specified content type.
//
// Corresponds with POST /api/v1/search/unlock (the `SearchUnlock` operationId).
SearchUnlockWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)
// SearchUnlock Pay for previewed results and receive them in full
//
// Charges only for results not already unlocked by an earlier call against the same `queryId` -- re-sending the same ids costs nothing. Omit `resultIds` (or pass `null`) to unlock everything from the preview.
//
// Set `includeFigures` to receive figure images as base64 in `metadata.figures[].image_data`. Images are returned for every result unlocked under this `queryId`, including ones unlocked by an earlier call -- so re-sending ids you have already paid for is how you fetch images you skipped the first time, and it charges nothing. At most 50 images are fetched per call; the ids in `resultIds` (or, when it is omitted, the results this call unlocked) get that budget first. Figures are free: they are not priced into the token cost, so the flag changes latency and response size and never the charge. Use the preview's `figureCount` to decide whether to ask.
//
// Takes a body of the `application/json` content type.
//
// Corresponds with POST /api/v1/search/unlock (the `SearchUnlock` operationId).
SearchUnlock(ctx context.Context, body SearchUnlockJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)
// SearchCollectionWithBody Search a single collection by name
//
// Shorthand for POST /api/v1/search/query with the collection named in the path instead of the body. Same pipeline, same response shape, one collection per call — use /query's `collections` form to search several at once.
//
// Takes any type of body and a specified content type.
//
// Corresponds with POST /api/v1/search/{collection} (the `SearchCollection` operationId).
SearchCollectionWithBody(ctx context.Context, collection string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)
// SearchCollection Search a single collection by name
//
// Shorthand for POST /api/v1/search/query with the collection named in the path instead of the body. Same pipeline, same response shape, one collection per call — use /query's `collections` form to search several at once.
//
// Takes a body of the `application/json` content type.
//
// Corresponds with POST /api/v1/search/{collection} (the `SearchCollection` operationId).
SearchCollection(ctx context.Context, collection string, body SearchCollectionJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)
}
The interface specification for the client above.
type ClientOption ¶
ClientOption allows setting custom parameters during construction
func WithHTTPClient ¶
func WithHTTPClient(doer HttpRequestDoer) ClientOption
WithHTTPClient allows overriding the default Doer, which is automatically created using http.Client. This is useful for tests.
func WithRequestEditorFn ¶
func WithRequestEditorFn(fn RequestEditorFn) ClientOption
WithRequestEditorFn allows setting up a callback function, which will be called right before sending the request. This can be used to mutate the request.
type ClientWithResponses ¶
type ClientWithResponses struct {
ClientInterface
}
ClientWithResponses builds on ClientInterface to offer response payloads
func NewClientWithResponses ¶
func NewClientWithResponses(server string, opts ...ClientOption) (*ClientWithResponses, error)
NewClientWithResponses creates a new ClientWithResponses, which wraps Client with return type handling
func (*ClientWithResponses) GetCachedResultWithResponse ¶
func (c *ClientWithResponses) GetCachedResultWithResponse(ctx context.Context, queryId string, params *GetCachedResultParams, reqEditors ...RequestEditorFn) (*GetCachedResultResponse, error)
GetCachedResultWithResponse Re-fetch cached results
Retrieve previously returned search results using the queryId from a prior search response. Returns the same results without billing. The request must use the same API key that performed the original search. Results are available for 7 days.
Each result carries `locked`/`tokens`/`cost`: a result not yet paid for through POST /api/v1/search/unlock comes back as a teaser (`locked: true`), never the full text.
Returns a wrapper object for the known response body format(s).
Corresponds with GET /api/v1/search/results/{queryId} (the `GetCachedResult` operationId).
func (*ClientWithResponses) GetQuotaWithResponse ¶
func (c *ClientWithResponses) GetQuotaWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*GetQuotaResponse, error)
GetQuotaWithResponse Current quota usage and limits
Daily and monthly query usage and limits for the authenticated organization.
Returns a wrapper object for the known response body format(s).
Corresponds with GET /api/v1/search/quota (the `GetQuota` operationId).
func (*ClientWithResponses) ListCollectionJournalsWithResponse ¶ added in v0.1.7
func (c *ClientWithResponses) ListCollectionJournalsWithResponse(ctx context.Context, name string, params *ListCollectionJournalsParams, reqEditors ...RequestEditorFn) (*ListCollectionJournalsResponse, error)
ListCollectionJournalsWithResponse List the journals your key can reach in a collection
Free. Journals present in your scope of the collection, ranked by h-index (each with its journal_metric.impact_factor, an impact factor computed by Redpine from OpenAlex citation data with the JIF formula. It is not Clarivate's Journal Impact Factor. Journals that publish many news items, letters and editorials (for example BMJ, JAMA, The Lancet) score far below their JCR figure, because OpenAlex classifies those items as articles.), or with `topic` by the relevant content each journal holds on it. Only journals anchored to the metrics table count as proved; sampled, title-only and unresolved entries are reported beside the total. Each journal carries the ISSNs to filter a search on.
Returns a wrapper object for the known response body format(s).
Corresponds with GET /api/v1/search/collections/{name}/journals (the `ListCollectionJournals` operationId).
func (*ClientWithResponses) ListCollectionsWithResponse ¶
func (c *ClientWithResponses) ListCollectionsWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*ListCollectionsResponse, error)
ListCollectionsWithResponse List collections
List all document collections accessible to the authenticated API key.
Returns a wrapper object for the known response body format(s).
Corresponds with GET /api/v1/search/collections (the `ListCollections` operationId).
func (*ClientWithResponses) SearchAssistedWithBodyWithResponse ¶
func (c *ClientWithResponses) SearchAssistedWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*SearchAssistedResponse, error)
SearchAssistedWithBodyWithResponse Assisted search (verified results only)
Agentic search: the query is interpreted, one or more internal searches are planned and run, every candidate is verified as actually addressing the query, and only verified results are returned.
**Billing differs from `/search/query`:** only delivered, verified results are charged. A clarification request or an honest no-results answer costs nothing. Internal search fan-out and LLM tokens are absorbed by Redpine.
Accepts the same `filters` as `/search/query`, applied to every internal search.
Takes any type of body and a specified content type, and returns a wrapper object for the known response body format(s).
Corresponds with POST /api/v1/search/assisted (the `SearchAssisted` operationId).
func (*ClientWithResponses) SearchAssistedWithResponse ¶
func (c *ClientWithResponses) SearchAssistedWithResponse(ctx context.Context, body SearchAssistedJSONRequestBody, reqEditors ...RequestEditorFn) (*SearchAssistedResponse, error)
SearchAssistedWithResponse Assisted search (verified results only)
Agentic search: the query is interpreted, one or more internal searches are planned and run, every candidate is verified as actually addressing the query, and only verified results are returned.
**Billing differs from `/search/query`:** only delivered, verified results are charged. A clarification request or an honest no-results answer costs nothing. Internal search fan-out and LLM tokens are absorbed by Redpine.
Accepts the same `filters` as `/search/query`, applied to every internal search.
Takes a body of the `application/json` content type, and returns a wrapper object for the known response body format(s).
Corresponds with POST /api/v1/search/assisted (the `SearchAssisted` operationId).
func (*ClientWithResponses) SearchCollectionWithBodyWithResponse ¶
func (c *ClientWithResponses) SearchCollectionWithBodyWithResponse(ctx context.Context, collection string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*SearchCollectionResponse, error)
SearchCollectionWithBodyWithResponse Search a single collection by name
Shorthand for POST /api/v1/search/query with the collection named in the path instead of the body. Same pipeline, same response shape, one collection per call — use /query's `collections` form to search several at once.
Takes any type of body and a specified content type, and returns a wrapper object for the known response body format(s).
Corresponds with POST /api/v1/search/{collection} (the `SearchCollection` operationId).
func (*ClientWithResponses) SearchCollectionWithResponse ¶
func (c *ClientWithResponses) SearchCollectionWithResponse(ctx context.Context, collection string, body SearchCollectionJSONRequestBody, reqEditors ...RequestEditorFn) (*SearchCollectionResponse, error)
SearchCollectionWithResponse Search a single collection by name
Shorthand for POST /api/v1/search/query with the collection named in the path instead of the body. Same pipeline, same response shape, one collection per call — use /query's `collections` form to search several at once.
Takes a body of the `application/json` content type, and returns a wrapper object for the known response body format(s).
Corresponds with POST /api/v1/search/{collection} (the `SearchCollection` operationId).
func (*ClientWithResponses) SearchPreviewWithBodyWithResponse ¶ added in v0.1.4
func (c *ClientWithResponses) SearchPreviewWithBodyWithResponse(ctx context.Context, params *SearchPreviewParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*SearchPreviewResponse, error)
SearchPreviewWithBodyWithResponse Preview search results without charging
Run the same pipeline as POST /api/v1/search/query -- same entitlement checks, same retraction filtering, same relevance ranking -- but never charge for it. Every result of a new preview comes back locked, with a teaser snippet in `text` and the cost to unlock it. Works even at a zero balance. Consumes no credits, no trial query and no quota.
Call POST /api/v1/search/unlock with the returned `queryId` to pay for and receive some or all of the results in full.
Send an `Idempotency-Key` header to make retries safe: a repeat with the same key and body returns the original `queryId` instead of buying the same results again under a new one.
Takes any type of body and a specified content type, and returns a wrapper object for the known response body format(s).
Corresponds with POST /api/v1/search/preview (the `SearchPreview` operationId).
func (*ClientWithResponses) SearchPreviewWithResponse ¶ added in v0.1.4
func (c *ClientWithResponses) SearchPreviewWithResponse(ctx context.Context, params *SearchPreviewParams, body SearchPreviewJSONRequestBody, reqEditors ...RequestEditorFn) (*SearchPreviewResponse, error)
SearchPreviewWithResponse Preview search results without charging
Run the same pipeline as POST /api/v1/search/query -- same entitlement checks, same retraction filtering, same relevance ranking -- but never charge for it. Every result of a new preview comes back locked, with a teaser snippet in `text` and the cost to unlock it. Works even at a zero balance. Consumes no credits, no trial query and no quota.
Call POST /api/v1/search/unlock with the returned `queryId` to pay for and receive some or all of the results in full.
Send an `Idempotency-Key` header to make retries safe: a repeat with the same key and body returns the original `queryId` instead of buying the same results again under a new one.
Takes a body of the `application/json` content type, and returns a wrapper object for the known response body format(s).
Corresponds with POST /api/v1/search/preview (the `SearchPreview` operationId).
func (*ClientWithResponses) SearchQueryWithBodyWithResponse ¶
func (c *ClientWithResponses) SearchQueryWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*SearchQueryResponse, error)
SearchQueryWithBodyWithResponse Search documents
Search one or more collections using natural language or keyword queries. Results are ranked by relevance using hybrid retrieval (dense + sparse). Pass `collections` (up to 5) to search several collections in one call and receive a single merged, relevance-ranked list with per-result origin labels.
Takes any type of body and a specified content type, and returns a wrapper object for the known response body format(s).
Corresponds with POST /api/v1/search/query (the `SearchQuery` operationId).
func (*ClientWithResponses) SearchQueryWithResponse ¶
func (c *ClientWithResponses) SearchQueryWithResponse(ctx context.Context, body SearchQueryJSONRequestBody, reqEditors ...RequestEditorFn) (*SearchQueryResponse, error)
SearchQueryWithResponse Search documents
Search one or more collections using natural language or keyword queries. Results are ranked by relevance using hybrid retrieval (dense + sparse). Pass `collections` (up to 5) to search several collections in one call and receive a single merged, relevance-ranked list with per-result origin labels.
Takes a body of the `application/json` content type, and returns a wrapper object for the known response body format(s).
Corresponds with POST /api/v1/search/query (the `SearchQuery` operationId).
func (*ClientWithResponses) SearchUnlockWithBodyWithResponse ¶ added in v0.1.4
func (c *ClientWithResponses) SearchUnlockWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*SearchUnlockResponse, error)
SearchUnlockWithBodyWithResponse Pay for previewed results and receive them in full
Charges only for results not already unlocked by an earlier call against the same `queryId` -- re-sending the same ids costs nothing. Omit `resultIds` (or pass `null`) to unlock everything from the preview.
Set `includeFigures` to receive figure images as base64 in `metadata.figures[].image_data`. Images are returned for every result unlocked under this `queryId`, including ones unlocked by an earlier call -- so re-sending ids you have already paid for is how you fetch images you skipped the first time, and it charges nothing. At most 50 images are fetched per call; the ids in `resultIds` (or, when it is omitted, the results this call unlocked) get that budget first. Figures are free: they are not priced into the token cost, so the flag changes latency and response size and never the charge. Use the preview's `figureCount` to decide whether to ask.
Takes any type of body and a specified content type, and returns a wrapper object for the known response body format(s).
Corresponds with POST /api/v1/search/unlock (the `SearchUnlock` operationId).
func (*ClientWithResponses) SearchUnlockWithResponse ¶ added in v0.1.4
func (c *ClientWithResponses) SearchUnlockWithResponse(ctx context.Context, body SearchUnlockJSONRequestBody, reqEditors ...RequestEditorFn) (*SearchUnlockResponse, error)
SearchUnlockWithResponse Pay for previewed results and receive them in full
Charges only for results not already unlocked by an earlier call against the same `queryId` -- re-sending the same ids costs nothing. Omit `resultIds` (or pass `null`) to unlock everything from the preview.
Set `includeFigures` to receive figure images as base64 in `metadata.figures[].image_data`. Images are returned for every result unlocked under this `queryId`, including ones unlocked by an earlier call -- so re-sending ids you have already paid for is how you fetch images you skipped the first time, and it charges nothing. At most 50 images are fetched per call; the ids in `resultIds` (or, when it is omitted, the results this call unlocked) get that budget first. Figures are free: they are not priced into the token cost, so the flag changes latency and response size and never the charge. Use the preview's `figureCount` to decide whether to ask.
Takes a body of the `application/json` content type, and returns a wrapper object for the known response body format(s).
Corresponds with POST /api/v1/search/unlock (the `SearchUnlock` operationId).
type ClientWithResponsesInterface ¶
type ClientWithResponsesInterface interface {
// SearchAssistedWithBodyWithResponse Assisted search (verified results only)
//
// Agentic search: the query is interpreted, one or more internal searches are planned and run, every candidate is verified as actually addressing the query, and only verified results are returned.
//
// **Billing differs from `/search/query`:** only delivered, verified results are charged. A clarification request or an honest no-results answer costs nothing. Internal search fan-out and LLM tokens are absorbed by Redpine.
//
// Accepts the same `filters` as `/search/query`, applied to every internal search.
//
// Takes any type of body and a specified content type, and returns a wrapper object for the known response body format(s).
//
// Corresponds with POST /api/v1/search/assisted (the `SearchAssisted` operationId).
SearchAssistedWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*SearchAssistedResponse, error)
// SearchAssistedWithResponse Assisted search (verified results only)
//
// Agentic search: the query is interpreted, one or more internal searches are planned and run, every candidate is verified as actually addressing the query, and only verified results are returned.
//
// **Billing differs from `/search/query`:** only delivered, verified results are charged. A clarification request or an honest no-results answer costs nothing. Internal search fan-out and LLM tokens are absorbed by Redpine.
//
// Accepts the same `filters` as `/search/query`, applied to every internal search.
//
// Takes a body of the `application/json` content type, and returns a wrapper object for the known response body format(s).
//
// Corresponds with POST /api/v1/search/assisted (the `SearchAssisted` operationId).
SearchAssistedWithResponse(ctx context.Context, body SearchAssistedJSONRequestBody, reqEditors ...RequestEditorFn) (*SearchAssistedResponse, error)
// ListCollectionsWithResponse List collections
//
// List all document collections accessible to the authenticated API key.
//
// Returns a wrapper object for the known response body format(s).
//
// Corresponds with GET /api/v1/search/collections (the `ListCollections` operationId).
ListCollectionsWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*ListCollectionsResponse, error)
// ListCollectionJournalsWithResponse List the journals your key can reach in a collection
//
// Free. Journals present in your scope of the collection, ranked by h-index (each with its journal_metric.impact_factor, an impact factor computed by Redpine from OpenAlex citation data with the JIF formula. It is not Clarivate's Journal Impact Factor. Journals that publish many news items, letters and editorials (for example BMJ, JAMA, The Lancet) score far below their JCR figure, because OpenAlex classifies those items as articles.), or with `topic` by the relevant content each journal holds on it. Only journals anchored to the metrics table count as proved; sampled, title-only and unresolved entries are reported beside the total. Each journal carries the ISSNs to filter a search on.
//
// Returns a wrapper object for the known response body format(s).
//
// Corresponds with GET /api/v1/search/collections/{name}/journals (the `ListCollectionJournals` operationId).
ListCollectionJournalsWithResponse(ctx context.Context, name string, params *ListCollectionJournalsParams, reqEditors ...RequestEditorFn) (*ListCollectionJournalsResponse, error)
// SearchPreviewWithBodyWithResponse Preview search results without charging
//
// Run the same pipeline as POST /api/v1/search/query -- same entitlement checks, same retraction filtering, same relevance ranking -- but never charge for it. Every result of a new preview comes back locked, with a teaser snippet in `text` and the cost to unlock it. Works even at a zero balance. Consumes no credits, no trial query and no quota.
//
// Call POST /api/v1/search/unlock with the returned `queryId` to pay for and receive some or all of the results in full.
//
// Send an `Idempotency-Key` header to make retries safe: a repeat with the same key and body returns the original `queryId` instead of buying the same results again under a new one.
//
// Takes any type of body and a specified content type, and returns a wrapper object for the known response body format(s).
//
// Corresponds with POST /api/v1/search/preview (the `SearchPreview` operationId).
SearchPreviewWithBodyWithResponse(ctx context.Context, params *SearchPreviewParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*SearchPreviewResponse, error)
// SearchPreviewWithResponse Preview search results without charging
//
// Run the same pipeline as POST /api/v1/search/query -- same entitlement checks, same retraction filtering, same relevance ranking -- but never charge for it. Every result of a new preview comes back locked, with a teaser snippet in `text` and the cost to unlock it. Works even at a zero balance. Consumes no credits, no trial query and no quota.
//
// Call POST /api/v1/search/unlock with the returned `queryId` to pay for and receive some or all of the results in full.
//
// Send an `Idempotency-Key` header to make retries safe: a repeat with the same key and body returns the original `queryId` instead of buying the same results again under a new one.
//
// Takes a body of the `application/json` content type, and returns a wrapper object for the known response body format(s).
//
// Corresponds with POST /api/v1/search/preview (the `SearchPreview` operationId).
SearchPreviewWithResponse(ctx context.Context, params *SearchPreviewParams, body SearchPreviewJSONRequestBody, reqEditors ...RequestEditorFn) (*SearchPreviewResponse, error)
// SearchQueryWithBodyWithResponse Search documents
//
// Search one or more collections using natural language or keyword queries. Results are ranked by relevance using hybrid retrieval (dense + sparse). Pass `collections` (up to 5) to search several collections in one call and receive a single merged, relevance-ranked list with per-result origin labels.
//
// Takes any type of body and a specified content type, and returns a wrapper object for the known response body format(s).
//
// Corresponds with POST /api/v1/search/query (the `SearchQuery` operationId).
SearchQueryWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*SearchQueryResponse, error)
// SearchQueryWithResponse Search documents
//
// Search one or more collections using natural language or keyword queries. Results are ranked by relevance using hybrid retrieval (dense + sparse). Pass `collections` (up to 5) to search several collections in one call and receive a single merged, relevance-ranked list with per-result origin labels.
//
// Takes a body of the `application/json` content type, and returns a wrapper object for the known response body format(s).
//
// Corresponds with POST /api/v1/search/query (the `SearchQuery` operationId).
SearchQueryWithResponse(ctx context.Context, body SearchQueryJSONRequestBody, reqEditors ...RequestEditorFn) (*SearchQueryResponse, error)
// GetQuotaWithResponse Current quota usage and limits
//
// Daily and monthly query usage and limits for the authenticated organization.
//
// Returns a wrapper object for the known response body format(s).
//
// Corresponds with GET /api/v1/search/quota (the `GetQuota` operationId).
GetQuotaWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*GetQuotaResponse, error)
// GetCachedResultWithResponse Re-fetch cached results
//
// Retrieve previously returned search results using the queryId from a prior search response. Returns the same results without billing. The request must use the same API key that performed the original search. Results are available for 7 days.
//
// Each result carries `locked`/`tokens`/`cost`: a result not yet paid for through POST /api/v1/search/unlock comes back as a teaser (`locked: true`), never the full text.
//
// Returns a wrapper object for the known response body format(s).
//
// Corresponds with GET /api/v1/search/results/{queryId} (the `GetCachedResult` operationId).
GetCachedResultWithResponse(ctx context.Context, queryId string, params *GetCachedResultParams, reqEditors ...RequestEditorFn) (*GetCachedResultResponse, error)
// SearchUnlockWithBodyWithResponse Pay for previewed results and receive them in full
//
// Charges only for results not already unlocked by an earlier call against the same `queryId` -- re-sending the same ids costs nothing. Omit `resultIds` (or pass `null`) to unlock everything from the preview.
//
// Set `includeFigures` to receive figure images as base64 in `metadata.figures[].image_data`. Images are returned for every result unlocked under this `queryId`, including ones unlocked by an earlier call -- so re-sending ids you have already paid for is how you fetch images you skipped the first time, and it charges nothing. At most 50 images are fetched per call; the ids in `resultIds` (or, when it is omitted, the results this call unlocked) get that budget first. Figures are free: they are not priced into the token cost, so the flag changes latency and response size and never the charge. Use the preview's `figureCount` to decide whether to ask.
//
// Takes any type of body and a specified content type, and returns a wrapper object for the known response body format(s).
//
// Corresponds with POST /api/v1/search/unlock (the `SearchUnlock` operationId).
SearchUnlockWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*SearchUnlockResponse, error)
// SearchUnlockWithResponse Pay for previewed results and receive them in full
//
// Charges only for results not already unlocked by an earlier call against the same `queryId` -- re-sending the same ids costs nothing. Omit `resultIds` (or pass `null`) to unlock everything from the preview.
//
// Set `includeFigures` to receive figure images as base64 in `metadata.figures[].image_data`. Images are returned for every result unlocked under this `queryId`, including ones unlocked by an earlier call -- so re-sending ids you have already paid for is how you fetch images you skipped the first time, and it charges nothing. At most 50 images are fetched per call; the ids in `resultIds` (or, when it is omitted, the results this call unlocked) get that budget first. Figures are free: they are not priced into the token cost, so the flag changes latency and response size and never the charge. Use the preview's `figureCount` to decide whether to ask.
//
// Takes a body of the `application/json` content type, and returns a wrapper object for the known response body format(s).
//
// Corresponds with POST /api/v1/search/unlock (the `SearchUnlock` operationId).
SearchUnlockWithResponse(ctx context.Context, body SearchUnlockJSONRequestBody, reqEditors ...RequestEditorFn) (*SearchUnlockResponse, error)
// SearchCollectionWithBodyWithResponse Search a single collection by name
//
// Shorthand for POST /api/v1/search/query with the collection named in the path instead of the body. Same pipeline, same response shape, one collection per call — use /query's `collections` form to search several at once.
//
// Takes any type of body and a specified content type, and returns a wrapper object for the known response body format(s).
//
// Corresponds with POST /api/v1/search/{collection} (the `SearchCollection` operationId).
SearchCollectionWithBodyWithResponse(ctx context.Context, collection string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*SearchCollectionResponse, error)
// SearchCollectionWithResponse Search a single collection by name
//
// Shorthand for POST /api/v1/search/query with the collection named in the path instead of the body. Same pipeline, same response shape, one collection per call — use /query's `collections` form to search several at once.
//
// Takes a body of the `application/json` content type, and returns a wrapper object for the known response body format(s).
//
// Corresponds with POST /api/v1/search/{collection} (the `SearchCollection` operationId).
SearchCollectionWithResponse(ctx context.Context, collection string, body SearchCollectionJSONRequestBody, reqEditors ...RequestEditorFn) (*SearchCollectionResponse, error)
}
ClientWithResponsesInterface is the interface specification for the client with responses above.
type CollectionsResponse ¶
type CollectionsResponse struct {
// Collections List of accessible collections.
Collections []struct {
// DocumentCount Number of documents in the collection.
DocumentCount int `json:"documentCount"`
// Name Collection name.
Name string `json:"name"`
} `json:"collections"`
// Count Total number of accessible collections.
Count int `json:"count"`
}
CollectionsResponse defines model for CollectionsResponse.
type DiscoveryAnswer ¶ added in v0.1.7
type DiscoveryAnswer struct {
// Callout Set when there is a notice (today: add a payment method to unlock licensed journals).
Callout *DiscoveryCallout `json:"callout,omitempty"`
// Intent Which catalogue question was answered
Intent DiscoveryAnswerIntent `json:"intent"`
// MetricsNote How to read the h-index and IF figures; set whenever metrics are shown
MetricsNote *string `json:"metricsNote,omitempty"`
NextActions *[]DiscoveryNextAction `json:"nextActions,omitempty"`
// QueryId Audit reference (disc_…)
QueryId string `json:"queryId"`
// Scopes One block per collection
Scopes *[]DiscoveryScope `json:"scopes,omitempty"`
// Text Pre-rendered text form (what MCP shows)
Text string `json:"text"`
// Topic Topic, for a topic-scoped journals answer
Topic *string `json:"topic,omitempty"`
}
DiscoveryAnswer A catalogue answer: what data sources, publishers or journals your key can reach. Present only when the query asked about the catalogue rather than for literature; then `results` is empty and nothing was charged (`X-Query-Cost: 0.000000`).
type DiscoveryAnswerIntent ¶ added in v0.1.7
type DiscoveryAnswerIntent string
DiscoveryAnswerIntent Which catalogue question was answered
const ( Journals DiscoveryAnswerIntent = "journals" Publishers DiscoveryAnswerIntent = "publishers" Sources DiscoveryAnswerIntent = "sources" )
Defines values for DiscoveryAnswerIntent.
func (DiscoveryAnswerIntent) Valid ¶ added in v0.1.7
func (e DiscoveryAnswerIntent) Valid() bool
Valid indicates whether the value is a known member of the DiscoveryAnswerIntent enum.
type DiscoveryCallout ¶ added in v0.1.7
type DiscoveryCallout struct {
Kind *DiscoveryCalloutKind `json:"kind,omitempty"`
// Message The notice, verbatim
Message string `json:"message"`
}
DiscoveryCallout defines model for DiscoveryCallout.
type DiscoveryCalloutKind ¶ added in v0.1.7
type DiscoveryCalloutKind string
DiscoveryCalloutKind defines model for DiscoveryCallout.Kind.
const (
AddPaymentMethod DiscoveryCalloutKind = "add_payment_method"
)
Defines values for DiscoveryCalloutKind.
func (DiscoveryCalloutKind) Valid ¶ added in v0.1.7
func (e DiscoveryCalloutKind) Valid() bool
Valid indicates whether the value is a known member of the DiscoveryCalloutKind enum.
type DiscoveryCollectionItem ¶ added in v0.1.7
type DiscoveryCollectionItem struct {
// CollectionKind physical, publisher, journal, curated or meta
CollectionKind string `json:"collectionKind"`
// Description Collection description
Description *string `json:"description,omitempty"`
// DisplayName Display name
DisplayName string `json:"displayName"`
Kind DiscoveryCollectionItemKind `json:"kind"`
// Members Member display names (metas only)
Members *[]string `json:"members,omitempty"`
// Name Collection name to pass to search
Name string `json:"name"`
// PricePer1000 Your organisation's price per 1000 tokens, when a single price applies
PricePer1000 *string `json:"pricePer1000,omitempty"`
// PriceRange Min/max member price when a meta-collection's members differ
PriceRange *struct {
// Max Highest member price per 1000 tokens
Max string `json:"max"`
// Min Lowest member price per 1000 tokens
Min string `json:"min"`
Per DiscoveryCollectionItemPriceRangePer `json:"per"`
} `json:"priceRange,omitempty"`
// RevenueModel licensed or open_access
RevenueModel string `json:"revenueModel"`
}
DiscoveryCollectionItem defines model for DiscoveryCollectionItem.
type DiscoveryCollectionItemKind ¶ added in v0.1.7
type DiscoveryCollectionItemKind string
DiscoveryCollectionItemKind defines model for DiscoveryCollectionItem.Kind.
const (
Collection DiscoveryCollectionItemKind = "collection"
)
Defines values for DiscoveryCollectionItemKind.
func (DiscoveryCollectionItemKind) Valid ¶ added in v0.1.7
func (e DiscoveryCollectionItemKind) Valid() bool
Valid indicates whether the value is a known member of the DiscoveryCollectionItemKind enum.
type DiscoveryCollectionItemPriceRangePer ¶ added in v0.1.7
type DiscoveryCollectionItemPriceRangePer string
DiscoveryCollectionItemPriceRangePer defines model for DiscoveryCollectionItem.PriceRange.Per.
const (
N1000Tokens DiscoveryCollectionItemPriceRangePer = "1000_tokens"
)
Defines values for DiscoveryCollectionItemPriceRangePer.
func (DiscoveryCollectionItemPriceRangePer) Valid ¶ added in v0.1.7
func (e DiscoveryCollectionItemPriceRangePer) Valid() bool
Valid indicates whether the value is a known member of the DiscoveryCollectionItemPriceRangePer enum.
type DiscoveryJournalItem ¶ added in v0.1.7
type DiscoveryJournalItem struct {
// HIndex h-index (OpenAlex), null when unknown
HIndex *int `json:"hIndex,omitempty"`
// ImpactFactor The journal's journal_metric.impact_factor: an impact factor computed by Redpine from OpenAlex citation data with the JIF formula. It is not Clarivate's Journal Impact Factor. Journals that publish many news items, letters and editorials (for example BMJ, JAMA, The Lancet) score far below their JCR figure, because OpenAlex classifies those items as articles. Null when unknown.
ImpactFactor *float32 `json:"impactFactor,omitempty"`
// IssnL Linking ISSN when the journal is known to the metrics table
IssnL *string `json:"issnL,omitempty"`
// Issns The journal's ISSNs present in your scope; filter on these to search it
Issns *[]string `json:"issns,omitempty"`
Kind DiscoveryJournalItemKind `json:"kind"`
// Publisher Publisher, when known
Publisher *string `json:"publisher,omitempty"`
// Title Journal title
Title string `json:"title"`
}
DiscoveryJournalItem defines model for DiscoveryJournalItem.
type DiscoveryJournalItemKind ¶ added in v0.1.7
type DiscoveryJournalItemKind string
DiscoveryJournalItemKind defines model for DiscoveryJournalItem.Kind.
const (
Journal DiscoveryJournalItemKind = "journal"
)
Defines values for DiscoveryJournalItemKind.
func (DiscoveryJournalItemKind) Valid ¶ added in v0.1.7
func (e DiscoveryJournalItemKind) Valid() bool
Valid indicates whether the value is a known member of the DiscoveryJournalItemKind enum.
type DiscoveryNextAction ¶ added in v0.1.7
type DiscoveryNextAction struct {
// Action search, list_collections, list_journals, request_journal
Action string `json:"action"`
// Hint A ready-to-use call or a one-line instruction
Hint string `json:"hint"`
}
DiscoveryNextAction defines model for DiscoveryNextAction.
type DiscoveryPublisherItem ¶ added in v0.1.7
type DiscoveryPublisherItem struct {
// Collections Collections (display names) it appears in
Collections *[]string `json:"collections,omitempty"`
Kind DiscoveryPublisherItemKind `json:"kind"`
// Name Publisher name as stored in the corpus
Name string `json:"name"`
}
DiscoveryPublisherItem defines model for DiscoveryPublisherItem.
type DiscoveryPublisherItemKind ¶ added in v0.1.7
type DiscoveryPublisherItemKind string
DiscoveryPublisherItemKind defines model for DiscoveryPublisherItem.Kind.
const (
Publisher DiscoveryPublisherItemKind = "publisher"
)
Defines values for DiscoveryPublisherItemKind.
func (DiscoveryPublisherItemKind) Valid ¶ added in v0.1.7
func (e DiscoveryPublisherItemKind) Valid() bool
Valid indicates whether the value is a known member of the DiscoveryPublisherItemKind enum.
type DiscoveryScope ¶ added in v0.1.7
type DiscoveryScope struct {
// Collection The requested collection name
Collection string `json:"collection"`
// DisplayName Display name of the requested collection
DisplayName string `json:"displayName"`
// IssnValuesSeen Raw distinct ISSN values seen in your scope
IssnValuesSeen *int `json:"issnValuesSeen,omitempty"`
// Items Ranked items; the `kind` of each says which shape it is.
Items *[]DiscoveryScope_Items_Item `json:"items,omitempty"`
// Note A caveat about this block, when any
Note *string `json:"note,omitempty"`
// Offset Rank of the first item in this page, zero-based
Offset *int `json:"offset,omitempty"`
// Publishers Publishers present in your scope of this collection
Publishers *[]string `json:"publishers,omitempty"`
// RankedBy How items are ordered: `h_index` or `relevant_content`; null when the items are not ranked
RankedBy *string `json:"rankedBy,omitempty"`
// SampledEntries ISSN groups seen in the corpus but unknown to the metrics table; never counted as proved journals
SampledEntries *int `json:"sampledEntries,omitempty"`
// Shown Items in this page (and rendered in the text form)
Shown *int `json:"shown,omitempty"`
// TitleOnly Journals known only by a title (points with no ISSN)
TitleOnly *int `json:"titleOnly,omitempty"`
// Total Proved distinct journals (or items) in this scope
Total int `json:"total"`
// TruncatedInventory True when the inventory is incomplete (limits or deadline)
TruncatedInventory *bool `json:"truncatedInventory,omitempty"`
// Unranked Journals with no metrics (sampled or title-only entries); never ranked
Unranked *[]DiscoveryJournalItem `json:"unranked,omitempty"`
// UnresolvedIssns ISSNs that could not be resolved to a title
UnresolvedIssns *int `json:"unresolvedIssns,omitempty"`
}
DiscoveryScope defines model for DiscoveryScope.
type DiscoveryScope_Items_Item ¶ added in v0.1.7
type DiscoveryScope_Items_Item struct {
// contains filtered or unexported fields
}
DiscoveryScope_Items_Item defines model for DiscoveryScope.items.Item.
func (DiscoveryScope_Items_Item) AsDiscoveryCollectionItem ¶ added in v0.1.7
func (t DiscoveryScope_Items_Item) AsDiscoveryCollectionItem() (DiscoveryCollectionItem, error)
AsDiscoveryCollectionItem returns the union data inside the DiscoveryScope_Items_Item as a DiscoveryCollectionItem
func (DiscoveryScope_Items_Item) AsDiscoveryJournalItem ¶ added in v0.1.7
func (t DiscoveryScope_Items_Item) AsDiscoveryJournalItem() (DiscoveryJournalItem, error)
AsDiscoveryJournalItem returns the union data inside the DiscoveryScope_Items_Item as a DiscoveryJournalItem
func (DiscoveryScope_Items_Item) AsDiscoveryPublisherItem ¶ added in v0.1.7
func (t DiscoveryScope_Items_Item) AsDiscoveryPublisherItem() (DiscoveryPublisherItem, error)
AsDiscoveryPublisherItem returns the union data inside the DiscoveryScope_Items_Item as a DiscoveryPublisherItem
func (*DiscoveryScope_Items_Item) FromDiscoveryCollectionItem ¶ added in v0.1.7
func (t *DiscoveryScope_Items_Item) FromDiscoveryCollectionItem(v DiscoveryCollectionItem) error
FromDiscoveryCollectionItem overwrites any union data inside the DiscoveryScope_Items_Item as the provided DiscoveryCollectionItem
func (*DiscoveryScope_Items_Item) FromDiscoveryJournalItem ¶ added in v0.1.7
func (t *DiscoveryScope_Items_Item) FromDiscoveryJournalItem(v DiscoveryJournalItem) error
FromDiscoveryJournalItem overwrites any union data inside the DiscoveryScope_Items_Item as the provided DiscoveryJournalItem
func (*DiscoveryScope_Items_Item) FromDiscoveryPublisherItem ¶ added in v0.1.7
func (t *DiscoveryScope_Items_Item) FromDiscoveryPublisherItem(v DiscoveryPublisherItem) error
FromDiscoveryPublisherItem overwrites any union data inside the DiscoveryScope_Items_Item as the provided DiscoveryPublisherItem
func (DiscoveryScope_Items_Item) MarshalJSON ¶ added in v0.1.7
func (t DiscoveryScope_Items_Item) MarshalJSON() ([]byte, error)
func (*DiscoveryScope_Items_Item) MergeDiscoveryCollectionItem ¶ added in v0.1.7
func (t *DiscoveryScope_Items_Item) MergeDiscoveryCollectionItem(v DiscoveryCollectionItem) error
MergeDiscoveryCollectionItem performs a merge with any union data inside the DiscoveryScope_Items_Item, using the provided DiscoveryCollectionItem
func (*DiscoveryScope_Items_Item) MergeDiscoveryJournalItem ¶ added in v0.1.7
func (t *DiscoveryScope_Items_Item) MergeDiscoveryJournalItem(v DiscoveryJournalItem) error
MergeDiscoveryJournalItem performs a merge with any union data inside the DiscoveryScope_Items_Item, using the provided DiscoveryJournalItem
func (*DiscoveryScope_Items_Item) MergeDiscoveryPublisherItem ¶ added in v0.1.7
func (t *DiscoveryScope_Items_Item) MergeDiscoveryPublisherItem(v DiscoveryPublisherItem) error
MergeDiscoveryPublisherItem performs a merge with any union data inside the DiscoveryScope_Items_Item, using the provided DiscoveryPublisherItem
func (*DiscoveryScope_Items_Item) UnmarshalJSON ¶ added in v0.1.7
func (t *DiscoveryScope_Items_Item) UnmarshalJSON(b []byte) error
type Error ¶
type Error struct {
Error struct {
// Code Machine-readable error code.
//
// Examples: UNAUTHORIZED, FORBIDDEN, NOT_FOUND, VALIDATION_ERROR, RATE_LIMITED
Code string `json:"code"`
// Message Human-readable error description.
Message string `json:"message"`
// RequestId Request ID for debugging.
RequestId *string `json:"requestId,omitempty"`
} `json:"error"`
}
Error defines model for Error.
type ExpiredError ¶ added in v0.1.4
type ExpiredError struct{ APIError }
ExpiredError is 410: the cached result or preview is past its 7-day window. Run the search again.
func (*ExpiredError) Unwrap ¶ added in v0.1.4
func (e *ExpiredError) Unwrap() error
type Field ¶
type Field struct {
// contains filtered or unexported fields
}
Field names a filterable field; apply one operator to get a Filter.
type Filter ¶
type Filter struct {
// contains filtered or unexported fields
}
Filter is an immutable node of the structured filter DSL the search API accepts:
leaf {"field": name, "<op>": value}
combinator {"and"|"or"|"not": [nodes]} (always a list)
ops eq ne in not_in gt gte lt lte between ([lo, hi])
F("issn").Eq("1664-302X").Or(F("issn").Eq("1932-6203"))
F("journal_metric.2yr_mean_citedness").Gte(5).And(F("doi").Eq("10.1/x").Not())
type FilterWarning ¶
type FilterWarning struct {
// Code Machine-readable code, e.g. `unindexed_filter_field`.
Code string `json:"code"`
// Field The filter field the warning concerns.
Field string `json:"field"`
// Message Human-readable explanation.
Message string `json:"message"`
}
FilterWarning defines model for FilterWarning.
type GetCachedResultParams ¶ added in v0.1.5
type GetCachedResultParams struct {
// IncludeFigures Include figure images for results already unlocked. Free, like the rest of this endpoint: it re-delivers content that is already paid for and unlocks nothing. Applies to results that came from POST /api/v1/search/preview; a cached POST /api/v1/search/query response does not retain figures.
IncludeFigures *bool `form:"includeFigures,omitempty" json:"includeFigures,omitempty"`
// ImageMaxWidth Maximum image width in pixels.
ImageMaxWidth *int `form:"imageMaxWidth,omitempty" json:"imageMaxWidth,omitempty"`
// ImageMaxHeight Maximum image height in pixels.
ImageMaxHeight *int `form:"imageMaxHeight,omitempty" json:"imageMaxHeight,omitempty"`
// ImageQuality JPEG quality for fetched images.
ImageQuality *int `form:"imageQuality,omitempty" json:"imageQuality,omitempty"`
}
GetCachedResultParams defines parameters for GetCachedResult.
type GetCachedResultResponse ¶
type GetCachedResultResponse struct {
Body []byte
HTTPResponse *http.Response
// JSON200 the response for an HTTP 200 `application/json` response
JSON200 *SearchResultsPreviewResponse
// JSON401 the response for an HTTP 401 `application/json` response
JSON401 *Error
// JSON404 the response for an HTTP 404 `application/json` response
JSON404 *Error
// JSON410 the response for an HTTP 410 `application/json` response
JSON410 *Error
// Headers200 the parsed response headers for an HTTP 200 response
Headers200 *GetCachedResultResponse200Headers
}
func ParseGetCachedResultResponse ¶
func ParseGetCachedResultResponse(rsp *http.Response) (*GetCachedResultResponse, error)
ParseGetCachedResultResponse parses an HTTP response from a GetCachedResultWithResponse call
func (GetCachedResultResponse) ContentType ¶
func (r GetCachedResultResponse) ContentType() string
ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers
func (GetCachedResultResponse) GetBody ¶
func (r GetCachedResultResponse) GetBody() []byte
GetBody returns the raw response body bytes
func (GetCachedResultResponse) GetJSON200 ¶
func (r GetCachedResultResponse) GetJSON200() *SearchResultsPreviewResponse
GetJSON200 returns the response for an HTTP 200 `application/json` response
func (GetCachedResultResponse) GetJSON401 ¶
func (r GetCachedResultResponse) GetJSON401() *Error
GetJSON401 returns the response for an HTTP 401 `application/json` response
func (GetCachedResultResponse) GetJSON404 ¶
func (r GetCachedResultResponse) GetJSON404() *Error
GetJSON404 returns the response for an HTTP 404 `application/json` response
func (GetCachedResultResponse) GetJSON410 ¶
func (r GetCachedResultResponse) GetJSON410() *Error
GetJSON410 returns the response for an HTTP 410 `application/json` response
func (GetCachedResultResponse) Status ¶
func (r GetCachedResultResponse) Status() string
Status returns HTTPResponse.Status
func (GetCachedResultResponse) StatusCode ¶
func (r GetCachedResultResponse) StatusCode() int
StatusCode returns HTTPResponse.StatusCode
type GetCachedResultResponse200Headers ¶
GetCachedResultResponse200Headers the declared response headers of an HTTP 200 response for GetCachedResult
type GetQuotaResponse ¶
type GetQuotaResponse struct {
Body []byte
HTTPResponse *http.Response
// JSON200 the response for an HTTP 200 `application/json` response
JSON200 *QuotaInfo
// JSON401 the response for an HTTP 401 `application/json` response
JSON401 *Error
}
func ParseGetQuotaResponse ¶
func ParseGetQuotaResponse(rsp *http.Response) (*GetQuotaResponse, error)
ParseGetQuotaResponse parses an HTTP response from a GetQuotaWithResponse call
func (GetQuotaResponse) ContentType ¶
func (r GetQuotaResponse) ContentType() string
ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers
func (GetQuotaResponse) GetBody ¶
func (r GetQuotaResponse) GetBody() []byte
GetBody returns the raw response body bytes
func (GetQuotaResponse) GetJSON200 ¶
func (r GetQuotaResponse) GetJSON200() *QuotaInfo
GetJSON200 returns the response for an HTTP 200 `application/json` response
func (GetQuotaResponse) GetJSON401 ¶
func (r GetQuotaResponse) GetJSON401() *Error
GetJSON401 returns the response for an HTTP 401 `application/json` response
func (GetQuotaResponse) Status ¶
func (r GetQuotaResponse) Status() string
Status returns HTTPResponse.Status
func (GetQuotaResponse) StatusCode ¶
func (r GetQuotaResponse) StatusCode() int
StatusCode returns HTTPResponse.StatusCode
type HttpRequestDoer ¶
Doer performs HTTP requests.
The standard http.Client implements this interface.
type InsufficientCreditsError ¶ added in v0.1.4
type InsufficientCreditsError struct{ APIError }
InsufficientCreditsError is 402: billing suspended, or not enough credits to unlock the requested rows.
func (*InsufficientCreditsError) Unwrap ¶ added in v0.1.4
func (e *InsufficientCreditsError) Unwrap() error
type JournalMetricExpansion ¶
type JournalMetricExpansion struct {
// Condition Threshold applied, e.g. `gte 5.0`.
Condition string `json:"condition"`
// Field Metric field expanded, e.g. `journal_metric.2yr_mean_citedness`.
Field string `json:"field"`
// IssnCount ISSNs pushed down (a journal usually has both a print and an electronic ISSN).
IssnCount int `json:"issnCount"`
// MatchedJournals Distinct journals matching the threshold.
MatchedJournals int `json:"matchedJournals"`
// SampleIssns First few ISSNs, for inspection.
SampleIssns *[]string `json:"sampleIssns,omitempty"`
}
JournalMetricExpansion defines model for JournalMetricExpansion.
type ListCollectionJournalsParams ¶ added in v0.1.7
type ListCollectionJournalsParams struct {
// Topic Rank journals by their relevant content on this topic.
Topic *string `form:"topic,omitempty" json:"topic,omitempty"`
// Publisher Narrow to one publisher.
Publisher *string `form:"publisher,omitempty" json:"publisher,omitempty"`
// MinHIndex Minimum h-index.
MinHIndex *int `form:"min_h_index,omitempty" json:"min_h_index,omitempty"`
// Limit Journals per page.
Limit *int `form:"limit,omitempty" json:"limit,omitempty"`
// Offset Rank of the first journal to return, zero-based.
Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}
ListCollectionJournalsParams defines parameters for ListCollectionJournals.
type ListCollectionJournalsResponse ¶ added in v0.1.7
type ListCollectionJournalsResponse struct {
Body []byte
HTTPResponse *http.Response
// JSON200 the response for an HTTP 200 `application/json` response
JSON200 *DiscoveryAnswer
// JSON401 the response for an HTTP 401 `application/json` response
JSON401 *Error
// JSON403 the response for an HTTP 403 `application/json` response
JSON403 *Error
// JSON404 the response for an HTTP 404 `application/json` response
JSON404 *Error
// JSON503 the response for an HTTP 503 `application/json` response
JSON503 *Error
// Headers200 the parsed response headers for an HTTP 200 response
Headers200 *ListCollectionJournalsResponse200Headers
}
func ParseListCollectionJournalsResponse ¶ added in v0.1.7
func ParseListCollectionJournalsResponse(rsp *http.Response) (*ListCollectionJournalsResponse, error)
ParseListCollectionJournalsResponse parses an HTTP response from a ListCollectionJournalsWithResponse call
func (ListCollectionJournalsResponse) ContentType ¶ added in v0.1.7
func (r ListCollectionJournalsResponse) ContentType() string
ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers
func (ListCollectionJournalsResponse) GetBody ¶ added in v0.1.7
func (r ListCollectionJournalsResponse) GetBody() []byte
GetBody returns the raw response body bytes
func (ListCollectionJournalsResponse) GetJSON200 ¶ added in v0.1.7
func (r ListCollectionJournalsResponse) GetJSON200() *DiscoveryAnswer
GetJSON200 returns the response for an HTTP 200 `application/json` response
func (ListCollectionJournalsResponse) GetJSON401 ¶ added in v0.1.7
func (r ListCollectionJournalsResponse) GetJSON401() *Error
GetJSON401 returns the response for an HTTP 401 `application/json` response
func (ListCollectionJournalsResponse) GetJSON403 ¶ added in v0.1.7
func (r ListCollectionJournalsResponse) GetJSON403() *Error
GetJSON403 returns the response for an HTTP 403 `application/json` response
func (ListCollectionJournalsResponse) GetJSON404 ¶ added in v0.1.7
func (r ListCollectionJournalsResponse) GetJSON404() *Error
GetJSON404 returns the response for an HTTP 404 `application/json` response
func (ListCollectionJournalsResponse) GetJSON503 ¶ added in v0.1.7
func (r ListCollectionJournalsResponse) GetJSON503() *Error
GetJSON503 returns the response for an HTTP 503 `application/json` response
func (ListCollectionJournalsResponse) Status ¶ added in v0.1.7
func (r ListCollectionJournalsResponse) Status() string
Status returns HTTPResponse.Status
func (ListCollectionJournalsResponse) StatusCode ¶ added in v0.1.7
func (r ListCollectionJournalsResponse) StatusCode() int
StatusCode returns HTTPResponse.StatusCode
type ListCollectionJournalsResponse200Headers ¶ added in v0.1.7
ListCollectionJournalsResponse200Headers the declared response headers of an HTTP 200 response for ListCollectionJournals
type ListCollectionsResponse ¶
type ListCollectionsResponse struct {
Body []byte
HTTPResponse *http.Response
// JSON200 the response for an HTTP 200 `application/json` response
JSON200 *CollectionsResponse
// JSON401 the response for an HTTP 401 `application/json` response
JSON401 *Error
// JSON403 the response for an HTTP 403 `application/json` response
JSON403 *Error
// JSON429 the response for an HTTP 429 `application/json` response
JSON429 *Error
}
func ParseListCollectionsResponse ¶
func ParseListCollectionsResponse(rsp *http.Response) (*ListCollectionsResponse, error)
ParseListCollectionsResponse parses an HTTP response from a ListCollectionsWithResponse call
func (ListCollectionsResponse) ContentType ¶
func (r ListCollectionsResponse) ContentType() string
ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers
func (ListCollectionsResponse) GetBody ¶
func (r ListCollectionsResponse) GetBody() []byte
GetBody returns the raw response body bytes
func (ListCollectionsResponse) GetJSON200 ¶
func (r ListCollectionsResponse) GetJSON200() *CollectionsResponse
GetJSON200 returns the response for an HTTP 200 `application/json` response
func (ListCollectionsResponse) GetJSON401 ¶
func (r ListCollectionsResponse) GetJSON401() *Error
GetJSON401 returns the response for an HTTP 401 `application/json` response
func (ListCollectionsResponse) GetJSON403 ¶
func (r ListCollectionsResponse) GetJSON403() *Error
GetJSON403 returns the response for an HTTP 403 `application/json` response
func (ListCollectionsResponse) GetJSON429 ¶
func (r ListCollectionsResponse) GetJSON429() *Error
GetJSON429 returns the response for an HTTP 429 `application/json` response
func (ListCollectionsResponse) Status ¶
func (r ListCollectionsResponse) Status() string
Status returns HTTPResponse.Status
func (ListCollectionsResponse) StatusCode ¶
func (r ListCollectionsResponse) StatusCode() int
StatusCode returns HTTPResponse.StatusCode
type NotFoundError ¶
type NotFoundError struct{ APIError }
NotFoundError is 404: collection or queryId not found.
func (*NotFoundError) Unwrap ¶
func (e *NotFoundError) Unwrap() error
type Option ¶
type Option func(*config)
Option configures New.
func WithAPIKey ¶
func WithMaxRetries ¶
func WithTimeout ¶
type PreviewOptions ¶ added in v0.1.4
type PreviewOptions struct {
Collection string
Collections []string
Limit int
Filters any // Filter, map[string]any, or nil
}
PreviewOptions configures Preview. Exactly one of Collection / Collections.
type PreviewResult ¶ added in v0.1.4
type PreviewResult struct {
// Collection Origin collection of this result — the name as requested, so a logical collection reports the logical name rather than the physical one it resolves to. Always populated.
Collection *string `json:"collection,omitempty"`
// Cost Cost to unlock this one result.
Cost *string `json:"cost,omitempty"`
// FigureCount How many figures this result carries. Reported on locked rows too — the captions and images stay behind the paywall, but the count is what tells you whether unlocking with includeFigures is worth it. 0 for text-only content.
FigureCount int `json:"figureCount"`
// Id Chunk/point ID
Id string `json:"id"`
// Locked True when text is a teaser rather than the full chunk
Locked bool `json:"locked"`
// Metadata Document metadata (title, authors, journal, etc.). Always present on /search/preview and /search/unlock, which take no includeMetadata option. On /search/results it is null when the original search set includeMetadata to false. `figures` (captions, and `image_data` when images were requested) is present only on unlocked results — a locked result reports `figureCount` and nothing else about its figures.
Metadata *map[string]interface{} `json:"metadata,omitempty"`
// Relevance How well this passage answers the query, 0 to 1, rounded to three decimals. Null when the result has no score, including rows cached before this field existed.
Relevance *float32 `json:"relevance,omitempty"`
// Text Full chunk text when `locked` is false. A short teaser snippet — never the full chunk — when `locked` is true.
Text string `json:"text"`
// Tokens Billable tokens to unlock this result.
Tokens *int `json:"tokens,omitempty"`
}
PreviewResult defines model for PreviewResult.
type PreviewUnlockResponse ¶ added in v0.1.4
type PreviewUnlockResponse struct {
// CostCharged What THIS call charged — not a running total. Null on a preview (always free) and on an unlock whose entire delta was already unlocked.
CostCharged *string `json:"costCharged,omitempty"`
// CostToUnlockRemaining Cost to unlock every result not yet unlocked. An estimate, not a binding quote: it is summed from each result's own individually-rounded cost, while the amount actually charged on the next unlock is computed per collection at that call's combined token total — the two can differ by a rounding fraction.
CostToUnlockRemaining string `json:"costToUnlockRemaining"`
// Discovery A catalogue answer: what data sources, publishers or journals your key can reach. Present only when the query asked about the catalogue rather than for literature; then `results` is empty and nothing was charged (`X-Query-Cost: 0.000000`).
Discovery *DiscoveryAnswer `json:"discovery,omitempty"`
// FilterWarnings Advisory warnings about the supplied filter — for example filtering on a known field with no payload index, which is matched by scanning, or a collection excluded because it holds only open-access content and the filter asked for open_access=false. The search still runs. Omitted when there are none.
FilterWarnings *[]FilterWarning `json:"filterWarnings,omitempty"`
// FiltersApplied The filters you sent, after validation. Omitted when no filters were sent.
FiltersApplied *map[string]interface{} `json:"filtersApplied,omitempty"`
// JournalMetricExpansions How each journal-metric condition resolved to ISSNs; omitted when no metric filter was used.
JournalMetricExpansions *[]JournalMetricExpansion `json:"journalMetricExpansions,omitempty"`
// QueryId Pass this to POST /search/unlock.
QueryId string `json:"queryId"`
// Results Every result from the query, filtered through the unlock ledger.
Results []PreviewResult `json:"results"`
}
PreviewUnlockResponse defines model for PreviewUnlockResponse.
type QueryUnderstanding ¶
type QueryUnderstanding struct {
// Aspects Facets asked about the entity (e.g. mechanism of action, dermal penetration, clinical outcomes)
Aspects *[]string `json:"aspects,omitempty"`
// CaseSummary For a long query such as a patient case: the summary the results were judged against. Empty for an ordinary query.
CaseSummary *string `json:"caseSummary,omitempty"`
// Entities Entities the query is about (substances, genes, diseases, organisms, methods)
Entities *[]string `json:"entities,omitempty"`
// Filters Structured metadata constraints read off the query. Possible keys (snake_case, present only when the query named the constraint): 'journal' (str), 'publisher' (str), 'article_type' (str, JATS vocabulary), 'publication_date' ({'gte'?: 'YYYY-MM-DD', 'lt'?: 'YYYY-MM-DD'}). Empty object when the query named none.
Filters *map[string]interface{} `json:"filters,omitempty"`
// Intent What the query is asking for
Intent *string `json:"intent,omitempty"`
// SubQuestions The separate problems a long query was split into, each searched and given result slots on its own. Empty for a single-question query.
SubQuestions *[]string `json:"subQuestions,omitempty"`
}
QueryUnderstanding How the endpoint read the query.
type QuotaExceededError ¶
QuotaExceededError is 429. RetryAfter is seconds when the server said.
func (*QuotaExceededError) Unwrap ¶
func (e *QuotaExceededError) Unwrap() error
type QuotaInfo ¶
type QuotaInfo struct {
// DailyLimit Max queries per day.
DailyLimit int `json:"dailyLimit"`
// DailyRemaining Queries remaining today.
DailyRemaining int `json:"dailyRemaining"`
// DailyUsed Queries used today.
DailyUsed int `json:"dailyUsed"`
// MonthlyLimit Max queries per month.
MonthlyLimit int `json:"monthlyLimit"`
// MonthlyRemaining Queries remaining this month.
MonthlyRemaining int `json:"monthlyRemaining"`
// MonthlyUsed Queries used this month.
MonthlyUsed int `json:"monthlyUsed"`
}
QuotaInfo defines model for QuotaInfo.
type Redpine ¶
type Redpine struct {
// contains filtered or unexported fields
}
Redpine is the hand-written client over the generated core. Named Redpine (not Client) because generated.go already declares a low-level type Client; mirrors the TS SDK's exported Redpine class.
func New ¶
New builds a Redpine client. Key from WithAPIKey, else REDPINE_API_KEY, else CONNECT_API_KEY.
func (*Redpine) AssistedSearch ¶
func (c *Redpine) AssistedSearch(ctx context.Context, query string, o AssistedSearchOptions) (*AssistedSearchResponse, error)
func (*Redpine) Collections ¶
func (c *Redpine) Collections(ctx context.Context) (*CollectionsResponse, error)
func (*Redpine) GetResults ¶
func (*Redpine) Preview ¶ added in v0.1.4
func (c *Redpine) Preview(ctx context.Context, query string, o PreviewOptions) (*PreviewUnlockResponse, error)
Preview is free: teaser rows plus the cost to unlock each. Never charged, never a quota slot.
func (*Redpine) Search ¶
func (c *Redpine) Search(ctx context.Context, query string, o SearchOptions) (*SearchResponse, error)
func (*Redpine) SearchCollection ¶
func (c *Redpine) SearchCollection(ctx context.Context, collection, query string, o SearchCollectionOptions) (*SearchResponse, error)
type RelevanceInfo ¶
type RelevanceInfo struct {
// JudgeScore Relevance score assigned by the judge (0..1)
JudgeScore float32 `json:"judgeScore"`
// MatchedTerms Entity/synonym surface forms found in the chunk (for highlighting)
MatchedTerms *[]string `json:"matchedTerms,omitempty"`
// Rationale One-sentence explanation of relevance
Rationale *string `json:"rationale,omitempty"`
}
RelevanceInfo Why a result was judged relevant.
type RequestEditorFn ¶
RequestEditorFn is the function signature for the RequestEditor callback function
type SearchAssistedJSONRequestBody ¶
type SearchAssistedJSONRequestBody = AssistedSearchRequest
SearchAssistedJSONRequestBody defines body for SearchAssisted for application/json ContentType.
type SearchAssistedResponse ¶
type SearchAssistedResponse struct {
Body []byte
HTTPResponse *http.Response
// JSON200 the response for an HTTP 200 `application/json` response
JSON200 *AssistedSearchResponse
// JSON401 the response for an HTTP 401 `application/json` response
JSON401 *Error
// JSON403 the response for an HTTP 403 `application/json` response
JSON403 *Error
// JSON422 the response for an HTTP 422 `application/json` response
JSON422 *Error
// JSON429 the response for an HTTP 429 `application/json` response
JSON429 *Error
// JSON503 the response for an HTTP 503 `application/json` response
JSON503 *Error
// Headers200 the parsed response headers for an HTTP 200 response
Headers200 *SearchAssistedResponse200Headers
}
func ParseSearchAssistedResponse ¶
func ParseSearchAssistedResponse(rsp *http.Response) (*SearchAssistedResponse, error)
ParseSearchAssistedResponse parses an HTTP response from a SearchAssistedWithResponse call
func (SearchAssistedResponse) ContentType ¶
func (r SearchAssistedResponse) ContentType() string
ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers
func (SearchAssistedResponse) GetBody ¶
func (r SearchAssistedResponse) GetBody() []byte
GetBody returns the raw response body bytes
func (SearchAssistedResponse) GetJSON200 ¶
func (r SearchAssistedResponse) GetJSON200() *AssistedSearchResponse
GetJSON200 returns the response for an HTTP 200 `application/json` response
func (SearchAssistedResponse) GetJSON401 ¶
func (r SearchAssistedResponse) GetJSON401() *Error
GetJSON401 returns the response for an HTTP 401 `application/json` response
func (SearchAssistedResponse) GetJSON403 ¶
func (r SearchAssistedResponse) GetJSON403() *Error
GetJSON403 returns the response for an HTTP 403 `application/json` response
func (SearchAssistedResponse) GetJSON422 ¶
func (r SearchAssistedResponse) GetJSON422() *Error
GetJSON422 returns the response for an HTTP 422 `application/json` response
func (SearchAssistedResponse) GetJSON429 ¶
func (r SearchAssistedResponse) GetJSON429() *Error
GetJSON429 returns the response for an HTTP 429 `application/json` response
func (SearchAssistedResponse) GetJSON503 ¶
func (r SearchAssistedResponse) GetJSON503() *Error
GetJSON503 returns the response for an HTTP 503 `application/json` response
func (SearchAssistedResponse) Status ¶
func (r SearchAssistedResponse) Status() string
Status returns HTTPResponse.Status
func (SearchAssistedResponse) StatusCode ¶
func (r SearchAssistedResponse) StatusCode() int
StatusCode returns HTTPResponse.StatusCode
type SearchAssistedResponse200Headers ¶
type SearchAssistedResponse200Headers struct {
XBillingMode *string
XCreditsRemaining *string
XQueryCost *string
XRateLimitLimit *int
XRateLimitRemaining *int
XRateLimitReset *int
XTokensUsed *int
}
SearchAssistedResponse200Headers the declared response headers of an HTTP 200 response for SearchAssisted
type SearchCollectionJSONBody ¶
type SearchCollectionJSONBody struct {
// Filters Optional metadata filter. Two accepted forms.
//
// Flat (top-level keys are ANDed): `{"journal": "Nature", "publication_date": {"gte": "2020-01-01"}}`.
//
// Structured DSL (for OR / nesting): `{"and": [{"field": "journal", "eq": "Nature"}]}`. Operators: `eq`, `ne`, `in`, `not_in`, `gt`, `gte`, `lt`, `lte`, `between`. Combinators: `and`, `or`, `not`. One operator per condition, except range bounds (`gt`, `gte`, `lt`, `lte`) together; put other combinations in separate conditions under `and`.
//
// Mixing the flat and structured forms in one filter is rejected.
//
// Exclusion uses `ne` / `not_in` / `not` — there is no separate syntax: `{"and": [{"field": "issn", "not_in": ["1234-5679"]}]}`.
//
// Indexed on every collection (a field that is not a known result metadata field is rejected; a known field without an index, such as `pmid`, is matched by scanning and returns a `filterWarnings` entry, and is rejected on a collection that has no index for it): `article_type`, `chapter_authors`, `chapter_number`, `chapter_title`, `doi`, `isbn`, `issn`, `journal`, `keywords`, `open_access`, `publication_date`, `publisher`, `section`.
//
// Indexed on the editorial collections only: `has_results`, `last_updated_date`, `medical_board_approved`, `nct_id`, `overall_status`, `phases`, `topic`, `url`.
//
// `open_access` is also answered for a collection that holds only open-access content and carries no such field: `true` matches everything there, `false` (or the field under `or` / `not`) excludes that collection with a `filterWarnings` entry. `license` is returned in result metadata but is not filterable.
//
// `issn` accepts hyphenated or bare, upper- or lower-case X (`"1234-561X"`, `"1234561x"`). `doi` is matched case-insensitively and an optional `https://doi.org/` or `doi:` prefix is accepted.
//
// `journal_metric.2yr_mean_citedness`, `journal_metric.h_index`, `journal_metric.i10_index` and `journal_metric.impact_factor` accept range operators only and are resolved server-side into the matching ISSNs; see `journalMetricExpansions` in the response. `impact_factor` is an impact factor computed by Redpine from OpenAlex citation data with the JIF formula. It is not Clarivate's Journal Impact Factor. Journals that publish many news items, letters and editorials (for example BMJ, JAMA, The Lancet) score far below their JCR figure, because OpenAlex classifies those items as articles. A metric condition may match at most 35,000 journal ISSNs and a request may send at most 70,000 filter values. A threshold with one end must stay within its documented bound: journal_metric.2yr_mean_citedness: gte 1.1 or higher, or lte 0.0 or lower; journal_metric.h_index: gte 35 or higher, or lte 3 or lower; journal_metric.i10_index: gte 160 or higher (no upper bound alone); journal_metric.impact_factor: gte 0.9 or higher, or lte 0.2 or lower. On h_index and i10_index, gt N counts as gte N+1 and lt N as lte N-1. A range with both ends (gte with lte, or between) may sit anywhere if it matches no more than 35,000 ISSNs. For 'below X' use not with gte X, X at or above the metric's minimum; not also keeps documents with no journal metric, and on impact_factor journals with no impact_factor. Two conditions near their bounds use most of the 70,000 values, so a third, or a long in/not_in list beside them, can be refused.
Filters *map[string]interface{} `json:"filters,omitempty"`
// ImageMaxHeight Maximum image height in pixels
ImageMaxHeight *int `json:"imageMaxHeight,omitempty"`
// ImageMaxWidth Maximum image width in pixels
ImageMaxWidth *int `json:"imageMaxWidth,omitempty"`
// ImageQuality JPEG quality for fetched images
ImageQuality *int `json:"imageQuality,omitempty"`
// IncludeFigures Fetch and include figure images as base64 in metadata (adds latency). includeImages is accepted as a deprecated alias.
IncludeFigures *bool `json:"includeFigures,omitempty"`
// IncludeMetadata Whether to include metadata in results
IncludeMetadata *bool `json:"includeMetadata,omitempty"`
// Limit Maximum results to return (default 10, max 30)
Limit *int `json:"limit,omitempty"`
// Query Natural language or keyword search query.
Query string `json:"query"`
}
SearchCollectionJSONBody defines parameters for SearchCollection.
type SearchCollectionJSONRequestBody ¶
type SearchCollectionJSONRequestBody SearchCollectionJSONBody
SearchCollectionJSONRequestBody defines body for SearchCollection for application/json ContentType.
type SearchCollectionOptions ¶
type SearchCollectionOptions struct {
Limit int
Filters any
IncludeMetadata *bool
IncludeFigures *bool
}
SearchCollectionOptions for SearchCollection.
type SearchCollectionResponse ¶
type SearchCollectionResponse struct {
Body []byte
HTTPResponse *http.Response
// JSON200 the response for an HTTP 200 `application/json` response
JSON200 *SearchResponse
// JSON401 the response for an HTTP 401 `application/json` response
JSON401 *Error
// JSON403 the response for an HTTP 403 `application/json` response
JSON403 *Error
// JSON404 the response for an HTTP 404 `application/json` response
JSON404 *Error
// JSON422 the response for an HTTP 422 `application/json` response
JSON422 *Error
// JSON429 the response for an HTTP 429 `application/json` response
JSON429 *Error
// JSON503 the response for an HTTP 503 `application/json` response
JSON503 *Error
// Headers200 the parsed response headers for an HTTP 200 response
Headers200 *SearchCollectionResponse200Headers
}
func ParseSearchCollectionResponse ¶
func ParseSearchCollectionResponse(rsp *http.Response) (*SearchCollectionResponse, error)
ParseSearchCollectionResponse parses an HTTP response from a SearchCollectionWithResponse call
func (SearchCollectionResponse) ContentType ¶
func (r SearchCollectionResponse) ContentType() string
ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers
func (SearchCollectionResponse) GetBody ¶
func (r SearchCollectionResponse) GetBody() []byte
GetBody returns the raw response body bytes
func (SearchCollectionResponse) GetJSON200 ¶
func (r SearchCollectionResponse) GetJSON200() *SearchResponse
GetJSON200 returns the response for an HTTP 200 `application/json` response
func (SearchCollectionResponse) GetJSON401 ¶
func (r SearchCollectionResponse) GetJSON401() *Error
GetJSON401 returns the response for an HTTP 401 `application/json` response
func (SearchCollectionResponse) GetJSON403 ¶
func (r SearchCollectionResponse) GetJSON403() *Error
GetJSON403 returns the response for an HTTP 403 `application/json` response
func (SearchCollectionResponse) GetJSON404 ¶
func (r SearchCollectionResponse) GetJSON404() *Error
GetJSON404 returns the response for an HTTP 404 `application/json` response
func (SearchCollectionResponse) GetJSON422 ¶
func (r SearchCollectionResponse) GetJSON422() *Error
GetJSON422 returns the response for an HTTP 422 `application/json` response
func (SearchCollectionResponse) GetJSON429 ¶
func (r SearchCollectionResponse) GetJSON429() *Error
GetJSON429 returns the response for an HTTP 429 `application/json` response
func (SearchCollectionResponse) GetJSON503 ¶
func (r SearchCollectionResponse) GetJSON503() *Error
GetJSON503 returns the response for an HTTP 503 `application/json` response
func (SearchCollectionResponse) Status ¶
func (r SearchCollectionResponse) Status() string
Status returns HTTPResponse.Status
func (SearchCollectionResponse) StatusCode ¶
func (r SearchCollectionResponse) StatusCode() int
StatusCode returns HTTPResponse.StatusCode
type SearchCollectionResponse200Headers ¶
type SearchCollectionResponse200Headers struct {
XBillingMode *string
XCacheExpires *time.Time
XCreditsRemaining *string
XQueryCost *string
XRateLimitLimit *int
XRateLimitRemaining *int
XRateLimitReset *int
XTokensUsed *int
}
SearchCollectionResponse200Headers the declared response headers of an HTTP 200 response for SearchCollection
type SearchOptions ¶
type SearchOptions struct {
Collection string
Collections []string
Limit int
Filters any // Filter, map[string]any, or nil
IncludeMetadata *bool
IncludeFigures *bool
}
SearchOptions for Search. Exactly one of Collection / Collections is required.
type SearchPreviewJSONRequestBody ¶ added in v0.1.4
type SearchPreviewJSONRequestBody = SearchPreviewRequest
SearchPreviewJSONRequestBody defines body for SearchPreview for application/json ContentType.
type SearchPreviewParams ¶ added in v0.1.6
type SearchPreviewParams struct {
// IdempotencyKey Optional, 1-255 characters, scoped to your organization and kept for 24 hours. A repeat with the same key and the same body runs no new search: it returns the original `queryId`, rendered through the unlock ledger, so rows already unlocked come back in full with `locked: false`. Every row keeps its `cost` and `tokens`. The same key with a different body is a 422 `IDEMPOTENCY_KEY_REUSED`. A repeat while the first request is still running is a 409 `IDEMPOTENCY_KEY_IN_PROGRESS`, so retry it. If the original preview has expired, the request runs a new preview and the key moves to it. The response says which happened in `Idempotency-Status`.
IdempotencyKey *string `json:"Idempotency-Key,omitempty"`
}
SearchPreviewParams defines parameters for SearchPreview.
type SearchPreviewRequest ¶ added in v0.1.4
type SearchPreviewRequest struct {
// Collection Name of the collection to search. Mutually exclusive with `collections`.
Collection *string `json:"collection,omitempty"`
// Collections Collections to search together (max 5, unique). Each collection is searched with its own access entitlements and the results are merged into one relevance-ranked list; each result carries its origin `collection`. Mutually exclusive with `collection`.
Collections *[]string `json:"collections,omitempty"`
// Filters Optional metadata filter. Two accepted forms.
//
// Flat (top-level keys are ANDed): `{"journal": "Nature", "publication_date": {"gte": "2020-01-01"}}`.
//
// Structured DSL (for OR / nesting): `{"and": [{"field": "journal", "eq": "Nature"}]}`. Operators: `eq`, `ne`, `in`, `not_in`, `gt`, `gte`, `lt`, `lte`, `between`. Combinators: `and`, `or`, `not`. One operator per condition, except range bounds (`gt`, `gte`, `lt`, `lte`) together; put other combinations in separate conditions under `and`.
//
// Mixing the flat and structured forms in one filter is rejected.
//
// Exclusion uses `ne` / `not_in` / `not` — there is no separate syntax: `{"and": [{"field": "issn", "not_in": ["1234-5679"]}]}`.
//
// Indexed on every collection (a field that is not a known result metadata field is rejected; a known field without an index, such as `pmid`, is matched by scanning and returns a `filterWarnings` entry, and is rejected on a collection that has no index for it): `article_type`, `chapter_authors`, `chapter_number`, `chapter_title`, `doi`, `isbn`, `issn`, `journal`, `keywords`, `open_access`, `publication_date`, `publisher`, `section`.
//
// Indexed on the editorial collections only: `has_results`, `last_updated_date`, `medical_board_approved`, `nct_id`, `overall_status`, `phases`, `topic`, `url`.
//
// `open_access` is also answered for a collection that holds only open-access content and carries no such field: `true` matches everything there, `false` (or the field under `or` / `not`) excludes that collection with a `filterWarnings` entry. `license` is returned in result metadata but is not filterable.
//
// `issn` accepts hyphenated or bare, upper- or lower-case X (`"1234-561X"`, `"1234561x"`). `doi` is matched case-insensitively and an optional `https://doi.org/` or `doi:` prefix is accepted.
//
// `journal_metric.2yr_mean_citedness`, `journal_metric.h_index`, `journal_metric.i10_index` and `journal_metric.impact_factor` accept range operators only and are resolved server-side into the matching ISSNs; see `journalMetricExpansions` in the response. `impact_factor` is an impact factor computed by Redpine from OpenAlex citation data with the JIF formula. It is not Clarivate's Journal Impact Factor. Journals that publish many news items, letters and editorials (for example BMJ, JAMA, The Lancet) score far below their JCR figure, because OpenAlex classifies those items as articles. A metric condition may match at most 35,000 journal ISSNs and a request may send at most 70,000 filter values. A threshold with one end must stay within its documented bound: journal_metric.2yr_mean_citedness: gte 1.1 or higher, or lte 0.0 or lower; journal_metric.h_index: gte 35 or higher, or lte 3 or lower; journal_metric.i10_index: gte 160 or higher (no upper bound alone); journal_metric.impact_factor: gte 0.9 or higher, or lte 0.2 or lower. On h_index and i10_index, gt N counts as gte N+1 and lt N as lte N-1. A range with both ends (gte with lte, or between) may sit anywhere if it matches no more than 35,000 ISSNs. For 'below X' use not with gte X, X at or above the metric's minimum; not also keeps documents with no journal metric, and on impact_factor journals with no impact_factor. Two conditions near their bounds use most of the 70,000 values, so a third, or a long in/not_in list beside them, can be refused.
Filters *map[string]interface{} `json:"filters,omitempty"`
// Limit Maximum results to return (default 10, max 30)
Limit *int `json:"limit,omitempty"`
// Query Natural language or keyword search query.
Query string `json:"query"`
}
SearchPreviewRequest The result-selection half of SearchRequest. A preview quotes results rather than delivering them, so it takes no content-delivery options: figures are never fetched (they are not priced into the quote) and metadata is always returned. Provide exactly one of `collection` (single) or `collections` (multi).
type SearchPreviewResponse ¶ added in v0.1.4
type SearchPreviewResponse struct {
Body []byte
HTTPResponse *http.Response
// JSON200 the response for an HTTP 200 `application/json` response
JSON200 *PreviewUnlockResponse
// JSON401 the response for an HTTP 401 `application/json` response
JSON401 *Error
// JSON403 the response for an HTTP 403 `application/json` response
JSON403 *Error
// JSON404 the response for an HTTP 404 `application/json` response
JSON404 *Error
// JSON409 the response for an HTTP 409 `application/json` response
JSON409 *Error
// JSON422 the response for an HTTP 422 `application/json` response
JSON422 *Error
// JSON429 the response for an HTTP 429 `application/json` response
JSON429 *Error
// JSON503 the response for an HTTP 503 `application/json` response
JSON503 *Error
// Headers200 the parsed response headers for an HTTP 200 response
Headers200 *SearchPreviewResponse200Headers
}
func ParseSearchPreviewResponse ¶ added in v0.1.4
func ParseSearchPreviewResponse(rsp *http.Response) (*SearchPreviewResponse, error)
ParseSearchPreviewResponse parses an HTTP response from a SearchPreviewWithResponse call
func (SearchPreviewResponse) ContentType ¶ added in v0.1.4
func (r SearchPreviewResponse) ContentType() string
ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers
func (SearchPreviewResponse) GetBody ¶ added in v0.1.4
func (r SearchPreviewResponse) GetBody() []byte
GetBody returns the raw response body bytes
func (SearchPreviewResponse) GetJSON200 ¶ added in v0.1.4
func (r SearchPreviewResponse) GetJSON200() *PreviewUnlockResponse
GetJSON200 returns the response for an HTTP 200 `application/json` response
func (SearchPreviewResponse) GetJSON401 ¶ added in v0.1.4
func (r SearchPreviewResponse) GetJSON401() *Error
GetJSON401 returns the response for an HTTP 401 `application/json` response
func (SearchPreviewResponse) GetJSON403 ¶ added in v0.1.4
func (r SearchPreviewResponse) GetJSON403() *Error
GetJSON403 returns the response for an HTTP 403 `application/json` response
func (SearchPreviewResponse) GetJSON404 ¶ added in v0.1.4
func (r SearchPreviewResponse) GetJSON404() *Error
GetJSON404 returns the response for an HTTP 404 `application/json` response
func (SearchPreviewResponse) GetJSON409 ¶ added in v0.1.6
func (r SearchPreviewResponse) GetJSON409() *Error
GetJSON409 returns the response for an HTTP 409 `application/json` response
func (SearchPreviewResponse) GetJSON422 ¶ added in v0.1.4
func (r SearchPreviewResponse) GetJSON422() *Error
GetJSON422 returns the response for an HTTP 422 `application/json` response
func (SearchPreviewResponse) GetJSON429 ¶ added in v0.1.4
func (r SearchPreviewResponse) GetJSON429() *Error
GetJSON429 returns the response for an HTTP 429 `application/json` response
func (SearchPreviewResponse) GetJSON503 ¶ added in v0.1.4
func (r SearchPreviewResponse) GetJSON503() *Error
GetJSON503 returns the response for an HTTP 503 `application/json` response
func (SearchPreviewResponse) Status ¶ added in v0.1.4
func (r SearchPreviewResponse) Status() string
Status returns HTTPResponse.Status
func (SearchPreviewResponse) StatusCode ¶ added in v0.1.4
func (r SearchPreviewResponse) StatusCode() int
StatusCode returns HTTPResponse.StatusCode
type SearchPreviewResponse200Headers ¶ added in v0.1.6
type SearchPreviewResponse200Headers struct {
IdempotencyStatus *string
}
SearchPreviewResponse200Headers the declared response headers of an HTTP 200 response for SearchPreview
type SearchQueryJSONRequestBody ¶
type SearchQueryJSONRequestBody = SearchRequest
SearchQueryJSONRequestBody defines body for SearchQuery for application/json ContentType.
type SearchQueryResponse ¶
type SearchQueryResponse struct {
Body []byte
HTTPResponse *http.Response
// JSON200 the response for an HTTP 200 `application/json` response
JSON200 *SearchResponse
// JSON401 the response for an HTTP 401 `application/json` response
JSON401 *Error
// JSON403 the response for an HTTP 403 `application/json` response
JSON403 *Error
// JSON404 the response for an HTTP 404 `application/json` response
JSON404 *Error
// JSON422 the response for an HTTP 422 `application/json` response
JSON422 *Error
// JSON429 the response for an HTTP 429 `application/json` response
JSON429 *Error
// JSON503 the response for an HTTP 503 `application/json` response
JSON503 *Error
// Headers200 the parsed response headers for an HTTP 200 response
Headers200 *SearchQueryResponse200Headers
}
func ParseSearchQueryResponse ¶
func ParseSearchQueryResponse(rsp *http.Response) (*SearchQueryResponse, error)
ParseSearchQueryResponse parses an HTTP response from a SearchQueryWithResponse call
func (SearchQueryResponse) ContentType ¶
func (r SearchQueryResponse) ContentType() string
ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers
func (SearchQueryResponse) GetBody ¶
func (r SearchQueryResponse) GetBody() []byte
GetBody returns the raw response body bytes
func (SearchQueryResponse) GetJSON200 ¶
func (r SearchQueryResponse) GetJSON200() *SearchResponse
GetJSON200 returns the response for an HTTP 200 `application/json` response
func (SearchQueryResponse) GetJSON401 ¶
func (r SearchQueryResponse) GetJSON401() *Error
GetJSON401 returns the response for an HTTP 401 `application/json` response
func (SearchQueryResponse) GetJSON403 ¶
func (r SearchQueryResponse) GetJSON403() *Error
GetJSON403 returns the response for an HTTP 403 `application/json` response
func (SearchQueryResponse) GetJSON404 ¶
func (r SearchQueryResponse) GetJSON404() *Error
GetJSON404 returns the response for an HTTP 404 `application/json` response
func (SearchQueryResponse) GetJSON422 ¶
func (r SearchQueryResponse) GetJSON422() *Error
GetJSON422 returns the response for an HTTP 422 `application/json` response
func (SearchQueryResponse) GetJSON429 ¶
func (r SearchQueryResponse) GetJSON429() *Error
GetJSON429 returns the response for an HTTP 429 `application/json` response
func (SearchQueryResponse) GetJSON503 ¶
func (r SearchQueryResponse) GetJSON503() *Error
GetJSON503 returns the response for an HTTP 503 `application/json` response
func (SearchQueryResponse) Status ¶
func (r SearchQueryResponse) Status() string
Status returns HTTPResponse.Status
func (SearchQueryResponse) StatusCode ¶
func (r SearchQueryResponse) StatusCode() int
StatusCode returns HTTPResponse.StatusCode
type SearchQueryResponse200Headers ¶
type SearchQueryResponse200Headers struct {
XBillingMode *string
XCacheExpires *time.Time
XCreditsRemaining *string
XQueryCost *string
XRateLimitLimit *int
XRateLimitRemaining *int
XRateLimitReset *int
XTokensUsed *int
}
SearchQueryResponse200Headers the declared response headers of an HTTP 200 response for SearchQuery
type SearchRequest ¶
type SearchRequest struct {
// Collection Name of the collection to search. Mutually exclusive with `collections`.
Collection *string `json:"collection,omitempty"`
// Collections Collections to search together (max 5, unique). Each collection is searched with its own access entitlements and the results are merged into one relevance-ranked list; each result carries its origin `collection`. Mutually exclusive with `collection`.
Collections *[]string `json:"collections,omitempty"`
// Filters Optional metadata filter. Two accepted forms.
//
// Flat (top-level keys are ANDed): `{"journal": "Nature", "publication_date": {"gte": "2020-01-01"}}`.
//
// Structured DSL (for OR / nesting): `{"and": [{"field": "journal", "eq": "Nature"}]}`. Operators: `eq`, `ne`, `in`, `not_in`, `gt`, `gte`, `lt`, `lte`, `between`. Combinators: `and`, `or`, `not`. One operator per condition, except range bounds (`gt`, `gte`, `lt`, `lte`) together; put other combinations in separate conditions under `and`.
//
// Mixing the flat and structured forms in one filter is rejected.
//
// Exclusion uses `ne` / `not_in` / `not` — there is no separate syntax: `{"and": [{"field": "issn", "not_in": ["1234-5679"]}]}`.
//
// Indexed on every collection (a field that is not a known result metadata field is rejected; a known field without an index, such as `pmid`, is matched by scanning and returns a `filterWarnings` entry, and is rejected on a collection that has no index for it): `article_type`, `chapter_authors`, `chapter_number`, `chapter_title`, `doi`, `isbn`, `issn`, `journal`, `keywords`, `open_access`, `publication_date`, `publisher`, `section`.
//
// Indexed on the editorial collections only: `has_results`, `last_updated_date`, `medical_board_approved`, `nct_id`, `overall_status`, `phases`, `topic`, `url`.
//
// `open_access` is also answered for a collection that holds only open-access content and carries no such field: `true` matches everything there, `false` (or the field under `or` / `not`) excludes that collection with a `filterWarnings` entry. `license` is returned in result metadata but is not filterable.
//
// `issn` accepts hyphenated or bare, upper- or lower-case X (`"1234-561X"`, `"1234561x"`). `doi` is matched case-insensitively and an optional `https://doi.org/` or `doi:` prefix is accepted.
//
// `journal_metric.2yr_mean_citedness`, `journal_metric.h_index`, `journal_metric.i10_index` and `journal_metric.impact_factor` accept range operators only and are resolved server-side into the matching ISSNs; see `journalMetricExpansions` in the response. `impact_factor` is an impact factor computed by Redpine from OpenAlex citation data with the JIF formula. It is not Clarivate's Journal Impact Factor. Journals that publish many news items, letters and editorials (for example BMJ, JAMA, The Lancet) score far below their JCR figure, because OpenAlex classifies those items as articles. A metric condition may match at most 35,000 journal ISSNs and a request may send at most 70,000 filter values. A threshold with one end must stay within its documented bound: journal_metric.2yr_mean_citedness: gte 1.1 or higher, or lte 0.0 or lower; journal_metric.h_index: gte 35 or higher, or lte 3 or lower; journal_metric.i10_index: gte 160 or higher (no upper bound alone); journal_metric.impact_factor: gte 0.9 or higher, or lte 0.2 or lower. On h_index and i10_index, gt N counts as gte N+1 and lt N as lte N-1. A range with both ends (gte with lte, or between) may sit anywhere if it matches no more than 35,000 ISSNs. For 'below X' use not with gte X, X at or above the metric's minimum; not also keeps documents with no journal metric, and on impact_factor journals with no impact_factor. Two conditions near their bounds use most of the 70,000 values, so a third, or a long in/not_in list beside them, can be refused.
Filters *map[string]interface{} `json:"filters,omitempty"`
// ImageMaxHeight Maximum image height in pixels
ImageMaxHeight *int `json:"imageMaxHeight,omitempty"`
// ImageMaxWidth Maximum image width in pixels
ImageMaxWidth *int `json:"imageMaxWidth,omitempty"`
// ImageQuality JPEG quality for fetched images
ImageQuality *int `json:"imageQuality,omitempty"`
// IncludeFigures Fetch and include figure images as base64 in metadata (adds latency). includeImages is accepted as a deprecated alias.
IncludeFigures *bool `json:"includeFigures,omitempty"`
// IncludeMetadata Whether to include metadata in results
IncludeMetadata *bool `json:"includeMetadata,omitempty"`
// Limit Maximum results to return (default 10, max 30)
Limit *int `json:"limit,omitempty"`
// Query Natural language or keyword search query.
Query string `json:"query"`
}
SearchRequest Provide exactly one of `collection` (single) or `collections` (multi-collection search).
type SearchResponse ¶
type SearchResponse struct {
// Discovery A catalogue answer: what data sources, publishers or journals your key can reach. Present only when the query asked about the catalogue rather than for literature; then `results` is empty and nothing was charged (`X-Query-Cost: 0.000000`).
Discovery *DiscoveryAnswer `json:"discovery,omitempty"`
// FilterWarnings Advisory warnings about the supplied filter — for example filtering on a known field with no payload index, which is matched by scanning, or a collection excluded because it holds only open-access content and the filter asked for open_access=false. The search still runs. Omitted when there are none.
FilterWarnings *[]FilterWarning `json:"filterWarnings,omitempty"`
// FiltersApplied The filters you sent, after validation. Omitted when no filters were sent.
FiltersApplied *map[string]interface{} `json:"filtersApplied,omitempty"`
// JournalMetricExpansions How each journal-metric condition resolved to ISSNs; omitted when no metric filter was used
JournalMetricExpansions *[]JournalMetricExpansion `json:"journalMetricExpansions,omitempty"`
// LatencyMs Search latency in milliseconds
LatencyMs int `json:"latencyMs"`
// QueryId Unique identifier for this query. Use it to re-fetch the same results for free within 7 days via GET /api/v1/search/results/{queryId}.
QueryId string `json:"queryId"`
// Results Ranked list of matching document chunks.
Results []SearchResult `json:"results"`
}
SearchResponse defines model for SearchResponse.
type SearchResult ¶
type SearchResult struct {
// Collection Origin collection of this result — the name as requested, so a logical collection reports the logical name rather than the physical one it resolves to. Always populated.
Collection *string `json:"collection,omitempty"`
// Id Chunk/point ID
Id string `json:"id"`
// Metadata Document metadata (title, authors, journal, etc.). Null when includeMetadata is false.
Metadata *map[string]interface{} `json:"metadata,omitempty"`
// Relevance How well this passage answers the query, 0 to 1, rounded to three decimals. Null when the result has no score, including rows cached before this field existed.
Relevance *float32 `json:"relevance,omitempty"`
// Text Chunk text content
Text string `json:"text"`
}
SearchResult defines model for SearchResult.
type SearchResultsPreviewResponse ¶ added in v0.1.4
type SearchResultsPreviewResponse struct {
// FilterWarnings Advisory warnings about the supplied filter — for example filtering on a known field with no payload index, which is matched by scanning, or a collection excluded because it holds only open-access content and the filter asked for open_access=false. The search still runs. Omitted when there are none.
FilterWarnings *[]FilterWarning `json:"filterWarnings,omitempty"`
// JournalMetricExpansions How each journal-metric condition resolved to ISSNs; omitted when no metric filter was used
JournalMetricExpansions *[]JournalMetricExpansion `json:"journalMetricExpansions,omitempty"`
// LatencyMs Search latency in milliseconds
LatencyMs int `json:"latencyMs"`
// QueryId Unique identifier for this query, matching the original search response.
QueryId string `json:"queryId"`
// Results Every result from the original search, filtered through the unlock ledger.
Results []PreviewResult `json:"results"`
}
SearchResultsPreviewResponse defines model for SearchResultsPreviewResponse.
type SearchUnlockJSONRequestBody ¶ added in v0.1.4
type SearchUnlockJSONRequestBody = UnlockRequest
SearchUnlockJSONRequestBody defines body for SearchUnlock for application/json ContentType.
type SearchUnlockResponse ¶ added in v0.1.4
type SearchUnlockResponse struct {
Body []byte
HTTPResponse *http.Response
// JSON200 the response for an HTTP 200 `application/json` response
JSON200 *PreviewUnlockResponse
// JSON401 the response for an HTTP 401 `application/json` response
JSON401 *Error
// JSON402 the response for an HTTP 402 `application/json` response
JSON402 *Error
// JSON404 the response for an HTTP 404 `application/json` response
JSON404 *Error
// JSON410 the response for an HTTP 410 `application/json` response
JSON410 *Error
// JSON422 the response for an HTTP 422 `application/json` response
JSON422 *Error
// JSON429 the response for an HTTP 429 `application/json` response
JSON429 *Error
// JSON503 the response for an HTTP 503 `application/json` response
JSON503 *Error
}
func ParseSearchUnlockResponse ¶ added in v0.1.4
func ParseSearchUnlockResponse(rsp *http.Response) (*SearchUnlockResponse, error)
ParseSearchUnlockResponse parses an HTTP response from a SearchUnlockWithResponse call
func (SearchUnlockResponse) ContentType ¶ added in v0.1.4
func (r SearchUnlockResponse) ContentType() string
ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers
func (SearchUnlockResponse) GetBody ¶ added in v0.1.4
func (r SearchUnlockResponse) GetBody() []byte
GetBody returns the raw response body bytes
func (SearchUnlockResponse) GetJSON200 ¶ added in v0.1.4
func (r SearchUnlockResponse) GetJSON200() *PreviewUnlockResponse
GetJSON200 returns the response for an HTTP 200 `application/json` response
func (SearchUnlockResponse) GetJSON401 ¶ added in v0.1.4
func (r SearchUnlockResponse) GetJSON401() *Error
GetJSON401 returns the response for an HTTP 401 `application/json` response
func (SearchUnlockResponse) GetJSON402 ¶ added in v0.1.4
func (r SearchUnlockResponse) GetJSON402() *Error
GetJSON402 returns the response for an HTTP 402 `application/json` response
func (SearchUnlockResponse) GetJSON404 ¶ added in v0.1.4
func (r SearchUnlockResponse) GetJSON404() *Error
GetJSON404 returns the response for an HTTP 404 `application/json` response
func (SearchUnlockResponse) GetJSON410 ¶ added in v0.1.4
func (r SearchUnlockResponse) GetJSON410() *Error
GetJSON410 returns the response for an HTTP 410 `application/json` response
func (SearchUnlockResponse) GetJSON422 ¶ added in v0.1.4
func (r SearchUnlockResponse) GetJSON422() *Error
GetJSON422 returns the response for an HTTP 422 `application/json` response
func (SearchUnlockResponse) GetJSON429 ¶ added in v0.1.4
func (r SearchUnlockResponse) GetJSON429() *Error
GetJSON429 returns the response for an HTTP 429 `application/json` response
func (SearchUnlockResponse) GetJSON503 ¶ added in v0.1.4
func (r SearchUnlockResponse) GetJSON503() *Error
GetJSON503 returns the response for an HTTP 503 `application/json` response
func (SearchUnlockResponse) Status ¶ added in v0.1.4
func (r SearchUnlockResponse) Status() string
Status returns HTTPResponse.Status
func (SearchUnlockResponse) StatusCode ¶ added in v0.1.4
func (r SearchUnlockResponse) StatusCode() int
StatusCode returns HTTPResponse.StatusCode
type UnlockRequest ¶ added in v0.1.4
type UnlockRequest struct {
// ImageMaxHeight Maximum image height in pixels
ImageMaxHeight *int `json:"imageMaxHeight,omitempty"`
// ImageMaxWidth Maximum image width in pixels
ImageMaxWidth *int `json:"imageMaxWidth,omitempty"`
// ImageQuality JPEG quality for fetched images
ImageQuality *int `json:"imageQuality,omitempty"`
// IncludeFigures Fetch figure images, returned as base64 in each result's metadata. Candidates are every result unlocked under this queryId, this call's and earlier calls' alike, but at most 50 images are fetched per call: the ids in resultIds — or, when it is omitted, the results this call unlocked — get that budget first, and figures past it come back as captions with no image_data. Ask again for the ids you still want; re-sending ids already unlocked charges nothing. Free — figures are not priced into the token cost, so this changes latency and response size, never the charge. Off by default: use the preview's figureCount to decide. includeImages is a deprecated alias.
IncludeFigures *bool `json:"includeFigures,omitempty"`
// QueryId The `queryId` from a previous POST /search/preview response.
QueryId string `json:"queryId"`
// ResultIds Result ids to unlock. Omit (or pass `null`) to unlock every result from the preview. Re-sending an id that is already unlocked costs nothing — only the delta is charged.
ResultIds *[]string `json:"resultIds,omitempty"`
}
UnlockRequest defines model for UnlockRequest.
type ValidationError ¶
type ValidationError struct{ APIError }
ValidationError is 422: request rejected (query too long, bad filter, ...).
func (*ValidationError) Unwrap ¶
func (e *ValidationError) Unwrap() error