Search Links
Search for payment links using various criteria such as title, amount, currency, status, and metadata. Returns a paginated list of matching links.
Request Parametersโ
Search - 2 fieldsSearch Parameters
`query`STRING(optional)
Search query string. Searches across title, description, and metadata fields.
`filters`OBJECT(optional)
Filter criteria object. Supports filtering by amount, currency, used status, multiple flag, and created date range.
Pagination - 3 fieldsPagination Parameters
Responsesโ
200
Successful searchSearch completed successfully. Returns a paginated list of matching links.
Response structure:
object- Always returns "search"data- Array of matching link objectslimit- Records per pageoffset- Number of records skippedtotal- Total number of links matching search criteriaquery- Search query appliedfilters- Filters applied to search
400
Bad requestRequest validation failed. Check the error message for details.
Common causes:
- Invalid filter values
- Invalid date format in filters
- Invalid limit value (exceeds maximum)
- Malformed query string
401
UnauthorizedAuthentication failed. Invalid or missing API key.
Common causes:
- Missing Authorization header
- Invalid secret key
- Using public key instead of secret key
- Incorrect HTTP Basic Auth format
5xx
Server errorServer-side error occurred. These are rare but should be handled gracefully.
How to handle:
- Retry the request with exponential backoff
- Check status.omise.co for service incidents
- See Error Handling for detailed guidance
Code samplesโ
- cURL
- Ruby
- Python
- Node.js
- PHP
- Java
- C#
- Go
curl https://api.omise.co/links/search \
-u skey_test_5xuy4w91xqz7d1w9u0t: \
-G \
-d "query=Invoice" \
-d "filters[currency]=thb" \
-d "filters[used]=false" \
-d "limit=20"
require 'omise'
Omise.api_key = 'skey_test_5xuy4w91xqz7d1w9u0t'
links = Omise::Link.search(
query: 'Invoice',
filters: { currency: 'thb', used: false },
limit: 20
)
import omise
omise.api_secret = 'skey_test_5xuy4w91xqz7d1w9u0t'
links = omise.Link.search(
query='Invoice',
filters={'currency': 'thb', 'used': False},
limit=20
)
const omise = require('omise')({
secretKey: 'skey_test_5xuy4w91xqz7d1w9u0t'
});
const links = await omise.links.search({
query: 'Invoice',
filters: { currency: 'thb', used: false },
limit: 20
});
<?php
define('OMISE_SECRET_KEY', 'skey_test_5xuy4w91xqz7d1w9u0t');
$links = OmiseLink::search([
'query' => 'Invoice',
'filters' => ['currency' => 'thb', 'used' => false],
'limit' => 20
]);
Client client = new Client.Builder()
.secretKey("skey_test_5xuy4w91xqz7d1w9u0t")
.build();
SearchResult<Link> links = client.links().search()
.query("Invoice")
.filter("currency", "thb")
.filter("used", false)
.limit(20)
.send();
var client = new Client("skey_test_5xuy4w91xqz7d1w9u0t");
var links = await client.Links.Search(new SearchLinkRequest
{
Query = "Invoice",
Filters = new Dictionary<string, object>
{
{ "currency", "thb" },
{ "used", false }
},
Limit = 20
});
client, _ := omise.NewClient(
"pkey_test_5xuy4w91xqz7d1w9u0t",
"skey_test_5xuy4w91xqz7d1w9u0t",
)
links, _ := client.Links().Search(&operations.SearchLink{
Query: "Invoice",
Filters: map[string]interface{}{
"currency": "thb",
"used": false,
},
Limit: 20,
})
Error and result codesโ
Common Error Codesโ
| Code | Description | Resolution |
|---|---|---|
bad_request | Missing or invalid parameters | Check parameter values and formats |
authentication_failure | Invalid API key | Verify your secret key is correct |
invalid_filter | Invalid filter value | Ensure filter values match expected types |
Available Filtersโ
| Filter | Type | Description |
|---|---|---|
amount | integer | Filter by exact amount |
currency | string | Filter by currency code (thb, jpy, sgd, myr, usd) |
used | boolean | Filter by usage status |
multiple | boolean | Filter by reusability |
created_at | object | Filter by creation date range (gte, lte) |
API Credentials
Try it outโ
Required - 1 fields
Additional - 6 fields
Your IP:
...Loading...