omnixent

A simple API which lets you to understand what people searches on the internet.


Keywords
amazon, api, beam, deno, denoland, google, graphql-api, search, search-engine, search-engines, social-networks, youtube
License
GPL-3.0

Documentation

Omnixent is a community effort to build a simple API which allows you to understand what people searches on search engines, social network etc.

🎉 Read the announcement post here!

Index

Built by

Docs

Status

Omnixent is still under active development, but you can already start to use the following APIs (list will be updated as soon as new features will roll out).

  • ✅ Ready
  • 🚧 Under active development
  • 🛣 In roadmap
Search Engine Status
Google ✅
YouTube ✅
Amazon ✅
Facebook 🛣
Twitter 🛣
Bing 🚧
Yandex 🚧
DuckDuckGo 🚧
Baidu 🛣

API Example

Omnixent is entirely written in Elixir, so that it can take advantage of using some well known OTP features such as Mnesia. In fact, it doesn't depend on external tools/databases for storing data, generating APIs, cache etc.

Elixir Native API

iex> Omnixent.Services.search("Java", :google, :us, :en)
%{
  service:  :google,
  term:     "java",
  country:  :us,
  language: :en,
  result: [
    %{
      term: "java",
      date: 2020729,
      id: 4029
      results: ["java", "javascript", "java vs javascript", "java 10 repl", "java jdk"]
    },
    %{
      term: "when java",
      date: 2020729,
      id: 4030
      results: ["when javascript", "when java was developed", "when java 1.8 released"]
    },
    ...
  ]
}

REST API

Omnixent also provides some really useful REST APIs:

curl -X GET https://localhost:4000?term=java,language=en&country=us

[
  {
    "term": "java",
    "results": ["java", "javascript", "java vs javascript", "java 10 repl", "java jdk"]
  },
  {
    "term": "when java",
    "results": ["when javascript", "when java was developed", "when java 1.8 released"]
  },
  ...
]

GraphQL API

In the next releases, Omnixent will also support GraphQL:

query Search($term: String!, $country: String!, $language: String!) {
  google(where: { _and: { _eq: { term: $term, country: $country, language $language } }}) {
    when,
    where,
  },
  youtube(where: { _and: { _eq: { term: $term, country: $country, language $language } }}) {
    when,
    where,
  }
}

Installation

If available in Hex, the package can be installed by adding Omnixent to your list of dependencies in mix.exs:

def deps do
  [
    {:omnixent, "~> 0.0.5"}
  ]
end

License

Omnixent is licensed under the GPLv3 License