Documentation
¶
Index ¶
- type FlexibleTime
- type FrontendDataPolicy
- type FrontendDefaultParams
- type FrontendDerankReason
- type FrontendDerankResult
- type FrontendDisplayPricing
- type FrontendEndpoint
- type FrontendFeatures
- type FrontendFortuna
- type FrontendIcon
- type FrontendLineItem
- type FrontendModel
- type FrontendModelsResponse
- type FrontendPricing
- type FrontendProviderInfo
- type FrontendReasoningConfig
- type FrontendRegionOverride
- type FrontendRoutingHeuristics
- type FrontendStatusHeuristics
- type FrontendSupportedVideoParameters
- type FrontendToolChoice
- type FrontendVariablePricing
- type StringifiedNumber
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type FlexibleTime ¶
FlexibleTime handles multiple timestamp formats
func (FlexibleTime) MarshalJSON ¶
func (ft FlexibleTime) MarshalJSON() ([]byte, error)
func (*FlexibleTime) UnmarshalJSON ¶
func (ft *FlexibleTime) UnmarshalJSON(data []byte) error
type FrontendDataPolicy ¶
type FrontendDataPolicy struct {
Training bool `json:"training"`
TrainingOpenRouter bool `json:"trainingOpenRouter"`
RetainsPrompts bool `json:"retainsPrompts"`
RetentionDays *int `json:"retentionDays,omitempty"`
CanPublish bool `json:"canPublish"`
TermsOfServiceURL string `json:"termsOfServiceURL"`
PrivacyPolicyURL string `json:"privacyPolicyURL"`
RequiresUserIDs bool `json:"requiresUserIDs,omitempty"`
}
FrontendDataPolicy represents a provider's data handling policy.
type FrontendDefaultParams ¶
type FrontendDefaultParams struct {
Temperature *float64 `json:"temperature"`
TopP *float64 `json:"top_p"`
TopK *float64 `json:"top_k"`
FrequencyPenalty *float64 `json:"frequency_penalty"`
PresencePenalty *float64 `json:"presence_penalty"`
RepetitionPenalty *float64 `json:"repetition_penalty"`
}
FrontendDefaultParams represents default sampling parameters for a model.
type FrontendDerankReason ¶ added in v0.2.0
type FrontendDerankReason struct {
Signal string `json:"signal"`
StddevsBelowMedian float64 `json:"stddevs_below_median"`
Threshold float64 `json:"threshold"`
Value float64 `json:"value"`
}
FrontendDerankReason represents a single reason an endpoint was deranked.
type FrontendDerankResult ¶ added in v0.2.0
type FrontendDerankResult struct {
IsDeranked bool `json:"is_deranked"`
DerankReasons []FrontendDerankReason `json:"derank_reasons"`
}
FrontendDerankResult represents whether and why an endpoint is deranked.
type FrontendDisplayPricing ¶ added in v0.2.0
type FrontendDisplayPricing struct {
Kind string `json:"kind"`
SKULabel string `json:"sku_label"`
Price string `json:"price"`
DisplayMultiplier int `json:"displayMultiplier"`
UnitLabel string `json:"unitLabel"`
}
FrontendDisplayPricing represents a human-readable pricing line item.
type FrontendEndpoint ¶
type FrontendEndpoint struct {
ID string `json:"id"`
Name string `json:"name"`
ContextLength int `json:"context_length"`
Model *FrontendModel `json:"model"`
ModelVariantSlug string `json:"model_variant_slug"`
ModelVariantPermaslug string `json:"model_variant_permaslug"`
AdapterName string `json:"adapter_name"`
ProviderName string `json:"provider_name"`
ProviderInfo *FrontendProviderInfo `json:"provider_info"`
ProviderDisplayName string `json:"provider_display_name"`
ProviderSlug string `json:"provider_slug"`
ProviderModelID string `json:"provider_model_id"`
Quantization string `json:"quantization"`
Variant string `json:"variant"`
IsFree bool `json:"is_free"`
CanAbort bool `json:"can_abort"`
MaxPromptTokens *int `json:"max_prompt_tokens"`
MaxCompletionTokens int `json:"max_completion_tokens"`
MaxTokensPerImage *int `json:"max_tokens_per_image"`
SupportedParameters []string `json:"supported_parameters"`
ExcludedParameters []string `json:"excluded_parameters"`
IsBYOK bool `json:"is_byok"`
ModerationRequired bool `json:"moderation_required"`
DataPolicy *FrontendDataPolicy `json:"data_policy"`
Pricing *FrontendPricing `json:"pricing"`
DisplayPricing []FrontendDisplayPricing `json:"display_pricing"`
VariablePricings []FrontendVariablePricing `json:"variable_pricings,omitempty"`
LineItems []FrontendLineItem `json:"line_items,omitempty"`
PricingJSON map[string]any `json:"pricing_json"`
PricingVersionID string `json:"pricing_version_id"`
IsHidden bool `json:"is_hidden"`
IsPrivate bool `json:"is_private"`
IsDeranked bool `json:"is_deranked"`
IsDisabled bool `json:"is_disabled"`
SupportsToolParams bool `json:"supports_tool_parameters"`
SupportsReasoning bool `json:"supports_reasoning"`
SupportsMultipart bool `json:"supports_multipart"`
LimitRPM *int `json:"limit_rpm"`
LimitRPD *int `json:"limit_rpd"`
LimitRPMCF *int `json:"limit_rpm_cf"`
HasCompletions bool `json:"has_completions"`
HasChatCompletions bool `json:"has_chat_completions"`
Features *FrontendFeatures `json:"features"`
SupportedVideoParameters *FrontendSupportedVideoParameters `json:"supported_video_parameters"`
ProviderRegion *string `json:"provider_region"`
DeprecationDate *FlexibleTime `json:"deprecation_date"`
AllowedPassthroughParameters []string `json:"allowed_passthrough_parameters"`
CapacityTPM *float64 `json:"capacity_tpm"`
CreatedAt FlexibleTime `json:"created_at"`
RoutingHeuristics *FrontendRoutingHeuristics `json:"routing_heuristics"`
Status int `json:"status"`
StatusHeuristics *FrontendStatusHeuristics `json:"status_heuristics"`
StatusHeuristics5m *FrontendStatusHeuristics `json:"status_heuristics_5m"`
StatusHeuristics1d *FrontendStatusHeuristics `json:"status_heuristics_1d"`
Fortuna *FrontendFortuna `json:"fortuna"`
}
FrontendEndpoint represents a provider endpoint serving a model.
type FrontendFeatures ¶
type FrontendFeatures struct {
ReasoningConfig *FrontendReasoningConfig `json:"reasoning_config,omitempty"`
ChatTemplateConfig map[string]any `json:"chat_template_config,omitempty"`
ReasoningReturnMechanism *string `json:"reasoning_return_mechanism,omitempty"`
SupportsFileURLs *bool `json:"supports_file_urls,omitempty"`
SupportsBase64Video *bool `json:"supports_base64_video_input,omitempty"`
SupportsVideoURLs *bool `json:"supports_video_urls,omitempty"`
SupportsToolChoice *FrontendToolChoice `json:"supports_tool_choice,omitempty"`
SupportsInputAudio *bool `json:"supports_input_audio,omitempty"`
SupportsNativeWeb *bool `json:"supports_native_web_search,omitempty"`
SupportsMultipart *bool `json:"supports_multipart,omitempty"`
}
FrontendFeatures represents model and endpoint feature support.
type FrontendFortuna ¶ added in v0.2.0
type FrontendFortuna struct {
BetaAlpha float64 `json:"beta_alpha"`
BetaBeta float64 `json:"beta_beta"`
CapacityScore float64 `json:"capacity_score"`
CapacityCeilingRPM float64 `json:"capacity_ceiling_rpm"`
RecentPeakRPM float64 `json:"recent_peak_rpm"`
}
FrontendFortuna represents capacity and load-balancing scoring for an endpoint.
type FrontendIcon ¶
type FrontendIcon struct {
URL string `json:"url"`
}
FrontendIcon represents a provider icon.
type FrontendLineItem ¶
FrontendLineItem represents a pricing line item.
type FrontendModel ¶
type FrontendModel struct {
Slug string `json:"slug"`
HFSlug *string `json:"hf_slug"`
UpdatedAt FlexibleTime `json:"updated_at"`
CreatedAt FlexibleTime `json:"created_at"`
HFUpdatedAt *FlexibleTime `json:"hf_updated_at"`
Name string `json:"name"`
ShortName string `json:"short_name"`
Author string `json:"author"`
AuthorDisplayName string `json:"author_display_name"`
Description string `json:"description"`
ModelVersionGroupID *string `json:"model_version_group_id"`
ContextLength int `json:"context_length"`
InputModalities []string `json:"input_modalities"`
OutputModalities []string `json:"output_modalities"`
HasTextOutput bool `json:"has_text_output"`
Group string `json:"group"`
InstructType *string `json:"instruct_type"`
DefaultSystem *string `json:"default_system"`
DefaultStops []string `json:"default_stops"`
Hidden bool `json:"hidden"`
Router *string `json:"router"`
WarningMessage *string `json:"warning_message"`
PromotionMessage *string `json:"promotion_message"`
RoutingErrorMessage *string `json:"routing_error_message"`
IsPrivate bool `json:"is_private"`
Permaslug string `json:"permaslug"`
SupportsReasoning bool `json:"supports_reasoning"`
ReasoningConfig *FrontendReasoningConfig `json:"reasoning_config"`
Features *FrontendFeatures `json:"features"`
DefaultParameters *FrontendDefaultParams `json:"default_parameters"`
DefaultOrder []string `json:"default_order"`
QuickStartExampleType string `json:"quick_start_example_type"`
IsTrainableText *bool `json:"is_trainable_text"`
IsTrainableImage *bool `json:"is_trainable_image"`
KnowledgeCutoff *string `json:"knowledge_cutoff"`
LimitRPM *int `json:"limit_rpm"`
LimitRPD *int `json:"limit_rpd"`
SupportedTTSVoices []string `json:"supported_tts_voices"`
Endpoint *FrontendEndpoint `json:"endpoint,omitempty"`
}
FrontendModel represents a model in the OpenRouter frontend API.
func ListFrontendModels ¶
func ListFrontendModels(ctx context.Context) ([]FrontendModel, error)
type FrontendModelsResponse ¶
type FrontendModelsResponse struct {
Data []FrontendModel `json:"data"`
}
FrontendModelsResponse is the root response for the catalog models endpoint.
type FrontendPricing ¶
type FrontendPricing struct {
Prompt StringifiedNumber `json:"prompt"`
Completion StringifiedNumber `json:"completion"`
Image StringifiedNumber `json:"image,omitempty"`
ImageOutput StringifiedNumber `json:"image_output,omitempty"`
Audio StringifiedNumber `json:"audio,omitempty"`
InputAudioCache StringifiedNumber `json:"input_audio_cache,omitempty"`
InputCacheRead StringifiedNumber `json:"input_cache_read,omitempty"`
InputCacheWrite StringifiedNumber `json:"input_cache_write,omitempty"`
InternalReasoning StringifiedNumber `json:"internal_reasoning,omitempty"`
WebSearch StringifiedNumber `json:"web_search,omitempty"`
Discount float64 `json:"discount"`
DisplayPricing []FrontendDisplayPricing `json:"display_pricing,omitempty"`
LineItems []FrontendLineItem `json:"line_items,omitempty"`
}
FrontendPricing represents endpoint pricing information.
type FrontendProviderInfo ¶
type FrontendProviderInfo struct {
Name string `json:"name"`
DisplayName string `json:"displayName"`
Slug string `json:"slug"`
BaseURL string `json:"baseUrl"`
DataPolicy *FrontendDataPolicy `json:"dataPolicy"`
Headquarters string `json:"headquarters"`
Datacenters []string `json:"datacenters,omitempty"`
RegionOverrides map[string]FrontendRegionOverride `json:"regionOverrides,omitempty"`
HasChatCompletions bool `json:"hasChatCompletions"`
HasCompletions bool `json:"hasCompletions"`
IsAbortable bool `json:"isAbortable"`
ModerationRequired bool `json:"moderationRequired"`
Editors []string `json:"editors"`
Owners []string `json:"owners"`
AdapterName string `json:"adapterName"`
IsMultipartSupported bool `json:"isMultipartSupported,omitempty"`
StatusPageURL *string `json:"statusPageUrl"`
BYOKEnabled bool `json:"byokEnabled"`
Icon *FrontendIcon `json:"icon"`
IgnoredProviderModels []string `json:"ignoredProviderModels,omitempty"`
SendClientIP bool `json:"sendClientIp"`
PricingStrategy string `json:"pricingStrategy"`
}
FrontendProviderInfo represents information about an inference provider.
type FrontendReasoningConfig ¶
type FrontendReasoningConfig struct {
StartToken *string `json:"start_token"`
EndToken *string `json:"end_token"`
IsMandatoryReasoning *bool `json:"is_mandatory_reasoning,omitempty"`
SupportsReasoningEffort *bool `json:"supports_reasoning_effort,omitempty"`
SupportedReasoningEfforts []string `json:"supported_reasoning_efforts"`
DefaultReasoningEffort *string `json:"default_reasoning_effort,omitempty"`
DefaultReasoningEnabled *bool `json:"default_reasoning_enabled,omitempty"`
ReasoningReturnMechanism *string `json:"reasoning_return_mechanism,omitempty"`
}
FrontendReasoningConfig represents reasoning configuration for a model or endpoint.
type FrontendRegionOverride ¶
type FrontendRegionOverride struct {
BaseURL string `json:"baseUrl"`
}
FrontendRegionOverride represents region-specific provider overrides.
type FrontendRoutingHeuristics ¶ added in v0.2.0
type FrontendRoutingHeuristics struct {
RequestCount int `json:"request_count"`
P50Throughput float64 `json:"p50_throughput"`
P50Latency float64 `json:"p50_latency"`
RequestCount30Minutes int `json:"request_count_30_minutes"`
P50Throughput30Minutes float64 `json:"p50_throughput_30_minutes"`
P75Throughput30Minutes float64 `json:"p75_throughput_30_minutes"`
P90Throughput30Minutes float64 `json:"p90_throughput_30_minutes"`
P99Throughput30Minutes float64 `json:"p99_throughput_30_minutes"`
P50Latency30Minutes float64 `json:"p50_latency_30_minutes"`
P75Latency30Minutes float64 `json:"p75_latency_30_minutes"`
P90Latency30Minutes float64 `json:"p90_latency_30_minutes"`
P99Latency30Minutes float64 `json:"p99_latency_30_minutes"`
EffectivePromptPrice float64 `json:"effective_prompt_price"`
EffectiveCompletionPrice float64 `json:"effective_completion_price"`
RequestCount5Minutes int `json:"request_count_5_minutes"`
P50Throughput5Minutes float64 `json:"p50_throughput_5_minutes"`
P75Throughput5Minutes float64 `json:"p75_throughput_5_minutes"`
P90Throughput5Minutes float64 `json:"p90_throughput_5_minutes"`
P99Throughput5Minutes float64 `json:"p99_throughput_5_minutes"`
P50Latency5Minutes float64 `json:"p50_latency_5_minutes"`
P75Latency5Minutes float64 `json:"p75_latency_5_minutes"`
P90Latency5Minutes float64 `json:"p90_latency_5_minutes"`
P99Latency5Minutes float64 `json:"p99_latency_5_minutes"`
P50Throughput2Hours float64 `json:"p50_throughput_2_hours"`
ToolFinishReasonRequestSuccessRate *float64 `json:"tool_finish_reason_request_success_rate,omitempty"`
ToolCallsFinishReasonRequestCount *int `json:"tool_calls_finish_reason_request_count,omitempty"`
DerankResult *FrontendDerankResult `json:"derank_result,omitempty"`
}
FrontendRoutingHeuristics represents throughput, latency and routing statistics for an endpoint.
type FrontendStatusHeuristics ¶ added in v0.2.0
type FrontendStatusHeuristics struct {
Success int `json:"success"`
DerankableError int `json:"derankableError"`
RateLimited int `json:"rateLimited"`
}
FrontendStatusHeuristics represents request outcome counts over a time window.
type FrontendSupportedVideoParameters ¶ added in v0.2.0
type FrontendSupportedVideoParameters struct {
SupportedResolutions []string `json:"supported_resolutions"`
SupportedAspectRatios []string `json:"supported_aspect_ratios"`
SupportedSizes []string `json:"supported_sizes"`
SupportedDurations []int `json:"supported_durations"`
SupportedFrameImages []string `json:"supported_frame_images"`
GenerateAudio *bool `json:"generate_audio"`
Seed *bool `json:"seed"`
}
FrontendSupportedVideoParameters represents video generation parameter support for an endpoint.
type FrontendToolChoice ¶
type FrontendToolChoice struct {
LiteralNone bool `json:"literal_none"`
LiteralAuto bool `json:"literal_auto"`
LiteralRequired bool `json:"literal_required"`
TypeFunction bool `json:"type_function"`
}
FrontendToolChoice represents which tool_choice values an endpoint supports.
type FrontendVariablePricing ¶
type FrontendVariablePricing struct {
Type string `json:"type"`
Threshold any `json:"threshold"`
Prompt StringifiedNumber `json:"prompt"`
Completions StringifiedNumber `json:"completions"`
InputCacheRead StringifiedNumber `json:"input_cache_read,omitempty"`
InputCacheWrite StringifiedNumber `json:"input_cache_write,omitempty"`
}
FrontendVariablePricing represents variable pricing tiers.
type StringifiedNumber ¶
type StringifiedNumber float64
StringifiedNumber represents a number that was stringified in JSON
func (StringifiedNumber) Float64 ¶
func (sn StringifiedNumber) Float64() float64
Float64 returns the float64 value
func (StringifiedNumber) MarshalJSON ¶
func (sn StringifiedNumber) MarshalJSON() ([]byte, error)
func (*StringifiedNumber) UnmarshalJSON ¶
func (sn *StringifiedNumber) UnmarshalJSON(data []byte) error