Omnixent is a community effort to build a simple API which allows you to understand what people searches on search engines, social network etc.
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 |
---|---|
YouTube | |
Amazon | |
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