ahrefs

package module
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 17, 2021 License: Apache-2.0 Imports: 10 Imported by: 0

README

ahrefs-go

GoDoc Build Status Go Report Card

ahrefs-go is a Go client library for accessing the Ahrefs API.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BacklinksOnePerDomainResponse

type BacklinksOnePerDomainResponse struct {
	Refpages []Refpage `json:"refpages"`
}

type Client

type Client struct {

	// Ahrefs API URL.
	BaseURL *url.URL

	// Client user agent.
	UserAgent string

	// Service interface.
	Service Service
	// contains filtered or unexported fields
}

func NewClient

func NewClient(httpClient *http.Client, token string) *Client

func (*Client) Do

func (c *Client) Do(ctx context.Context, builder *requestBuilder, v interface{}) (*http.Response, error)

type Option

type Option func(*requestBuilder)

Option is a function that changes the request.

func WithHaving

func WithHaving(having string) Option

func WithLimit

func WithLimit(limit int64) Option

func WithTarget

func WithTarget(target string) Option

func WithWhere

func WithWhere(where string) Option

type Page

type Page struct {
	URL             string `json:"url"`
	AhrefsRank      int64  `json:"ahrefs_rank"`
	FirstSeen       string `json:"first_seen"`
	LastVisited     string `json:"last_visited"`
	HTTPCode        int64  `json:"http_code"`
	Size            int64  `json:"size"`
	LinksInternal   int64  `json:"links_internal"`
	LinksExternal   int64  `json:"links_external"`
	Encoding        string `json:"encoding"`
	Title           string `json:"title"`
	RedirectURL     string `json:"redirect_url"`
	ContentEncoding string `json:"content_encoding"`
}

type PagesResponse

type PagesResponse struct {
	Pages []Page     `json:"pages"`
	Stats PagesStats `json:"stats"`
}

type PagesStats

type PagesStats struct {
	Pages int64 `json:"pages"`
}

type PositionMetrics

type PositionMetrics struct {
	Positions      int64   `json:"positions"`
	PositionsTop10 int64   `json:"positions_top10"`
	PositionsTop3  int64   `json:"positions_top3"`
	Traffic        float64 `json:"traffic"`
	TrafficTop10   float64 `json:"traffic_top10"`
	TrafficTop3    float64 `json:"traffic_top3"`
	Cost           float64 `json:"cost"`
	CostTop10      float64 `json:"cost_top10"`
	CostTop3       float64 `json:"cost_top3"`
}

type PositionMetricsResponse

type PositionMetricsResponse struct {
	PositionMetrics PositionMetrics `json:"metrics"`
}

type ReferringDomain

type ReferringDomain struct {
	ReferringDomain string `json:"refdomain"`
	DomainRating    int64  `json:"domain_rating"`
	Backlinks       int64  `json:"backlinks"`
}

type ReferringDomainByType

type ReferringDomainByType struct {
	RefDomain          string  `json:"refdomain"`
	ReferringDomainTop string  `json:"refdomain_top"`
	Backlinks          int64   `json:"backlinks"`
	BacklinksDofollow  int64   `json:"backlinks_dofollow"`
	ReferringPages     int64   `json:"refpages"`
	FirstSeen          string  `json:"first_seen"`
	LastVisited        string  `json:"last_visited"`
	DomainRating       int64   `json:"domain_rating"`
	Traffic            float64 `json:"traffic"`
	LinkedDomains      int64   `json:"linked_domains"`
	RefDomains         int64   `json:"refdomains"`
}

type ReferringDomainsByTypeResponse

type ReferringDomainsByTypeResponse struct {
	ReferringDomainsByType []ReferringDomainByType     `json:"refdomains"`
	Stats                  ReferringDomainsByTypeStats `json:"stats"`
	TLDs                   []TLD                       `json:"tlds"`
}

type ReferringDomainsByTypeStats

type ReferringDomainsByTypeStats struct {
	RefDomains             int64 `json:"refdomains"`
	IPs                    int64 `json:"ips"`
	ClassC                 int64 `json:"class_c"`
	MaxBacklinks           int64 `json:"max_backlinks"`
	MaxBacklinksDofollow   int64 `json:"max_backlinks_dofollow"`
	MaxRefpages            int64 `json:"max_refpages"`
	TotalBacklinks         int64 `json:"total_backlinks"`
	TotalBacklinksDofollow int64 `json:"total_backlinks_dofollow"`
	All                    int64 `json:"all"`
	Text                   int64 `json:"text"`
	Image                  int64 `json:"image"`
	Nofollow               int64 `json:"nofollow"`
	Ugc                    int64 `json:"ugc"`
	Sponsored              int64 `json:"sponsored"`
	Dofollow               int64 `json:"dofollow"`
	Redirect               int64 `json:"redirect"`
	Canonical              int64 `json:"canonical"`
	Gov                    int64 `json:"gov"`
	Edu                    int64 `json:"edu"`
	RSS                    int64 `json:"rss"`
	Alternate              int64 `json:"alternate"`
}

type ReferringDomainsResponse

type ReferringDomainsResponse struct {
	ReferringDomains []ReferringDomain     `json:"refdomains"`
	Stats            ReferringDomainsStats `json:"stats"`
}

type ReferringDomainsStats

type ReferringDomainsStats struct {
	ReferringDomains int64 `json:"refdomains"`
	IPs              int64 `json:"ips"`
	ClassC           int64 `json:"class_c"`
}

type Refpage

type Refpage struct {
	URLFrom          string `json:"url_from"`
	AhrefsRank       int64  `json:"ahrefs_rank"`
	DomainRating     int64  `json:"domain_rating"`
	AhrefsTop        int64  `json:"ahrefs_top"`
	IPFrom           string `json:"ip_from"`
	LinksInternal    int64  `json:"links_internal"`
	LinksExternal    int64  `json:"links_external"`
	PageSize         int64  `json:"page_size"`
	Encoding         string `json:"encoding"`
	Title            string `json:"title"`
	Language         string `json:"language"`
	URLTo            string `json:"url_to"`
	FirstSeen        string `json:"first_seen"`
	LastVisited      string `json:"last_visited"`
	PrevVisited      string `json:"prev_visited"`
	Original         bool   `json:"original"`
	Redirect         int64  `json:"redirect"`
	Anchor           string `json:"anchor"`
	TextPre          string `json:"text_pre"`
	TextPost         string `json:"text_post"`
	HTTPCode         int64  `json:"http_code"`
	URLFromFirstSeen string `json:"url_from_first_seen"`
	FirstOrigin      string `json:"first_origin"`
	LastOrigin       string `json:"last_origin"`
	LinkType         string `json:"link_type"`
	Nofollow         bool   `json:"nofollow"`
	Ugc              bool   `json:"ugc"`
	Sponsored        bool   `json:"sponsored"`
	TotalBacklinks   int64  `json:"total_backlinks"`
}

type Service

type Service interface {
	ReferringDomains(ctx context.Context, opts ...Option) (*ReferringDomainsResponse, *http.Response, error)
	ReferringDomainsByType(ctx context.Context, opts ...Option) (*ReferringDomainsByTypeResponse, *http.Response, error)
	BacklinksOnePerDomain(ctx context.Context, opts ...Option) (*BacklinksOnePerDomainResponse, *http.Response, error)
	PositionMetrics(ctx context.Context, opts ...Option) (*PositionMetricsResponse, *http.Response, error)
	Pages(ctx context.Context, opts ...Option) (*PagesResponse, *http.Response, error)
}

type TLD

type TLD struct {
	TLD   string `json:"tld"`
	Count int64  `json:"count"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL