Skip to content

autoapicom/auto-api-go

Repository files navigation

auto-api-client-go

Go Reference Go Version License

Go client for auto-api.com — car listings from 8 marketplaces (encar, mobile.de, autoscout24, che168, dongchedi, guazi, dubicars, dubizzle).

No external dependencies. Stdlib net/http + encoding/json only. Supports context for timeouts and cancellation.

Installation

go get github.com/autoapicom/auto-api-go

Usage

import "github.com/autoapicom/auto-api-go"

client := autoapi.NewClient("your-api-key")
ctx := context.Background()

Get filters

filters, err := client.GetFilters(ctx, "encar")

Search offers

offers, err := client.GetOffers(ctx, "mobilede", &autoapi.OffersParams{
    Page:     1,
    Brand:    "BMW",
    YearFrom: 2020,
})

// Pagination
fmt.Println(offers.Meta.Page)
fmt.Println(offers.Meta.NextPage)

Get single offer

offer, err := client.GetOffer(ctx, "encar", "40427050")

Track changes

changeID, err := client.GetChangeID(ctx, "encar", "2025-01-15")
changes, err := client.GetChanges(ctx, "encar", changeID)

// Next batch
nextBatch, err := client.GetChanges(ctx, "encar", changes.Meta.NextChangeID)

Get offer by URL

info, err := client.GetOfferByURL(ctx, "https://encar.com/dc/dc_cardetailview.do?carid=40427050")

Decode offer data

Each marketplace returns different fields, so OfferItem.Data is json.RawMessage. Unmarshal it yourself:

for _, item := range offers.Result {
    var d autoapi.OfferData
    json.Unmarshal(item.Data, &d)
    fmt.Printf("%s %s %s — $%s\n", d.Mark, d.Model, d.Year, d.Price)
}

Error handling

import "errors"

offers, err := client.GetOffers(ctx, "encar", &autoapi.OffersParams{Page: 1})
if err != nil {
    var authErr *autoapi.AuthError
    var apiErr *autoapi.ApiError
    if errors.As(err, &authErr) {
        // 401/403 — invalid API key
    } else if errors.As(err, &apiErr) {
        fmt.Println(apiErr.StatusCode, apiErr.Message)
    }
}

Supported sources

Source Platform Region
encar encar.com South Korea
mobilede mobile.de Germany
autoscout24 autoscout24.com Europe
che168 che168.com China
dongchedi dongchedi.com China
guazi guazi.com China
dubicars dubicars.com UAE
dubizzle dubizzle.com UAE

Other languages

Language Package
PHP autoapi/client
TypeScript @autoapicom/client
Python autoapicom-client
C# AutoApi.Client
Java auto-api-client
Ruby auto-api-client
Rust auto-api-client

Documentation

auto-api.com

About

Go module for auto-api.com — search and track car listings across encar, mobile.de, autoscout24 and more

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages