Safe (Gnosis Safe) safes API
The safes API from Safe (Gnosis Safe) — 6 operation(s) for safes.
The safes API from Safe (Gnosis Safe) — 6 operation(s) for safes.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/gnosis-safe-safes-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Safe Transaction Service 4337 Safes API
version: 6.3.0
description: API to keep track of transactions sent via Safe smart contracts
servers:
- url: https://api.safe.global/tx-service/eth/api/v1
description: Base URL declared by the provider in apis.yml (roadmap#122).
tags:
- name: safes
paths:
/tx-service/eth/api/v1/safes/{address}/:
get:
operationId: safes_retrieve
description: Returns detailed information of a given Safe account
parameters:
- in: path
name: address
schema:
type: string
required: true
tags:
- safes
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/SafeInfoResponse'
description: ''
'404':
description: Safe not found
'422':
description: 'code = 1: Checksum address validation failed
code = 50: Cannot get Safe info'
path: /tx-service/eth/api/v1/safes/{address}/
title: Get Safe Status
additionalInfo: ''
/tx-service/eth/api/v1/safes/{address}/balances/:
get:
operationId: safes_balances_retrieve
description: Get balance for Ether and ERC20 tokens of a given Safe account
parameters:
- in: path
name: address
schema:
type: string
required: true
- in: query
name: trusted
schema:
type: boolean
default: false
description: If `True` just trusted tokens will be returned
- in: query
name: exclude_spam
schema:
type: boolean
default: false
description: If `True` spam tokens will not be returned
tags:
- safes
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/SafeBalanceResponse'
description: ''
'404':
description: Safe not found
'422':
description: Safe address checksum not valid
path: /tx-service/eth/api/v1/safes/{address}/balances/
title: List a Safe's Balances (Deprecated)
additionalInfo: ''
/tx-service/eth/api/v1/safes/{address}/creation/:
get:
operationId: safes_creation_retrieve
description: 'Returns detailed information on the Safe creation transaction of a given Safe.
Note: When event indexing is being used and multiple Safes are deployed in the same transaction
the result might not be accurate due to the indexer not knowing which events belong to which Safe
deployment.'
parameters:
- in: path
name: address
schema:
type: string
required: true
tags:
- safes
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/SafeCreationInfoResponse'
description: ''
'404':
description: Safe creation not found
'422':
description: Owner address checksum not valid
'503':
description: Problem connecting to Ethereum network
path: /tx-service/eth/api/v1/safes/{address}/creation/
title: Get Safe Creation Status
additionalInfo: ''
/tx-service/eth/api/v1/safes/{address}/export/:
get:
operationId: safes_export_retrieve
description: 'Get transactions optimized for CSV export with transfer information.
The maximum limit allowed is 1000.'
parameters:
- in: path
name: address
schema:
type: string
required: true
- in: query
name: execution_date__gte
schema:
type: string
format: date-time
description: Filter transactions executed after this date (ISO format)
- in: query
name: execution_date__lte
schema:
type: string
format: date-time
description: Filter transactions executed before this date (ISO format)
- in: query
name: limit
schema:
type: integer
description: Maximum number of transactions to return (max 1000)
- in: query
name: offset
schema:
type: integer
description: Number of transactions to skip
tags:
- safes
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedSafeExportTransactionList'
description: ''
'404':
description: Safe not found
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/CodeErrorResponse'
description: Safe address checksum not valid
path: /tx-service/eth/api/v1/safes/{address}/export/
title: Get Transactions for CSV Export
additionalInfo: ''
/tx-service/eth/api/v2/safes/{address}/balances/:
get:
operationId: safes_balances_retrieve_2
description: 'Get paginated balances for Ether and ERC20 tokens.
The maximum limit allowed is 200.'
parameters:
- in: path
name: address
schema:
type: string
required: true
- in: query
name: trusted
schema:
type: boolean
default: false
description: If `True` just trusted tokens will be returned
- in: query
name: exclude_spam
schema:
type: boolean
default: false
description: If `True` spam tokens will not be returned
- in: query
name: limit
schema:
type: integer
description: Number of results to return per page.
- in: query
name: offset
schema:
type: integer
description: The initial index from which to return the results.
tags:
- safes
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedSafeCollectibleResponseList'
description: ''
'404':
description: Safe not found
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/CodeErrorResponse'
description: Safe address checksum not valid
path: /tx-service/eth/api/v2/safes/{address}/balances/
title: Get Safe Balances
additionalInfo: ''
/tx-service/eth/api/v2/safes/{address}/collectibles/:
get:
operationId: safes_collectibles_retrieve
description: 'Get paginated collectibles (ERC721 tokens) and information about them of a given Safe account.
The maximum limit allowed is 10.'
parameters:
- in: path
name: address
schema:
type: string
required: true
- in: query
name: trusted
schema:
type: boolean
default: false
description: If `True` just trusted tokens will be returned
- in: query
name: exclude_spam
schema:
type: boolean
default: false
description: If `True` spam tokens will not be returned
- in: query
name: limit
schema:
type: integer
description: Number of results to return per page.
- in: query
name: offset
schema:
type: integer
description: The initial index from which to return the results.
tags:
- safes
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedSafeCollectibleResponseList'
description: ''
'404':
description: Safe not found
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/CodeErrorResponse'
description: Safe address checksum not valid
path: /tx-service/eth/api/v2/safes/{address}/collectibles/
title: List Collectibles
additionalInfo: ''
components:
schemas:
SafeExportTransaction:
type: object
description: Serializer for the export endpoint that returns transaction data optimized for CSV export
properties:
safe:
type: string
From:
type: string
title: ' from'
to:
type: string
amount:
type: string
assetType:
type: string
assetAddress:
type:
- string
- 'null'
assetSymbol:
type:
- string
- 'null'
assetDecimals:
type:
- integer
- 'null'
proposerAddress:
type:
- string
- 'null'
proposedAt:
type:
- string
- 'null'
format: date-time
executorAddress:
type:
- string
- 'null'
executedAt:
type:
- string
- 'null'
format: date-time
note:
type:
- string
- 'null'
transactionHash:
type: string
contractAddress:
type:
- string
- 'null'
nonce:
type:
- string
- 'null'
required:
- From
- amount
- assetAddress
- assetDecimals
- assetSymbol
- assetType
- contractAddress
- executedAt
- executorAddress
- nonce
- note
- proposedAt
- proposerAddress
- safe
- to
- transactionHash
PaginatedSafeCollectibleResponseList:
type: object
required:
- count
- results
properties:
count:
type: integer
example: 123
next:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?offset=400&limit=100
previous:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?offset=200&limit=100
results:
type: array
items:
$ref: '#/components/schemas/SafeCollectibleResponse'
SafeCollectibleResponse:
type: object
properties:
address:
type: string
tokenName:
type: string
tokenSymbol:
type: string
logoUri:
type: string
id:
type: string
uri:
type: string
name:
type: string
description:
type: string
imageUri:
type: string
metadata:
type: object
additionalProperties: {}
required:
- address
- description
- id
- imageUri
- logoUri
- metadata
- name
- tokenName
- tokenSymbol
- uri
SafeInfoResponse:
type: object
properties:
address:
type: string
nonce:
type: string
threshold:
type: integer
owners:
type: array
items:
type: string
masterCopy:
type: string
modules:
type: array
items:
type: string
fallbackHandler:
type: string
guard:
type: string
moduleGuard:
type: string
version:
type:
- string
- 'null'
required:
- address
- fallbackHandler
- guard
- masterCopy
- moduleGuard
- modules
- nonce
- owners
- threshold
- version
Erc20Info:
type: object
properties:
name:
type: string
symbol:
type: string
decimals:
type: integer
logoUri:
type: string
required:
- decimals
- logoUri
- name
- symbol
SafeOperationResponse:
type: object
properties:
created:
type: string
format: date-time
modified:
type: string
format: date-time
safeOperationHash:
type: string
validAfter:
type: string
format: date-time
validUntil:
type: string
format: date-time
moduleAddress:
type: string
confirmations:
type: object
additionalProperties: {}
description: 'Filters confirmations queryset
:param obj: SafeOperation instance
:return: Serialized queryset'
readOnly: true
preparedSignature:
type: string
readOnly: true
required:
- confirmations
- created
- modified
- moduleAddress
- preparedSignature
- safeOperationHash
- validAfter
- validUntil
PaginatedSafeExportTransactionList:
type: object
required:
- count
- results
properties:
count:
type: integer
example: 123
next:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?offset=400&limit=100
previous:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?offset=200&limit=100
results:
type: array
items:
$ref: '#/components/schemas/SafeExportTransaction'
CodeErrorResponse:
type: object
properties:
code:
type: integer
message:
type: string
arguments:
type: array
items: {}
required:
- arguments
- code
- message
SafeBalanceResponse:
type: object
properties:
tokenAddress:
type: string
token:
$ref: '#/components/schemas/Erc20Info'
balance:
type: string
required:
- balance
- token
- tokenAddress
SafeCreationInfoResponse:
type: object
properties:
created:
type: string
format: date-time
creator:
type: string
transactionHash:
type: string
factoryAddress:
type: string
masterCopy:
type:
- string
- 'null'
setupData:
type:
- string
- 'null'
saltNonce:
type:
- string
- 'null'
dataDecoded:
type: object
additionalProperties: {}
readOnly: true
userOperation:
oneOf:
- $ref: '#/components/schemas/UserOperationWithSafeOperationResponse'
- type: 'null'
required:
- created
- creator
- dataDecoded
- factoryAddress
- masterCopy
- saltNonce
- setupData
- transactionHash
- userOperation
UserOperationWithSafeOperationResponse:
type: object
properties:
ethereumTxHash:
type: string
sender:
type: string
userOperationHash:
type: string
nonce:
type: string
initCode:
type:
- string
- 'null'
callData:
type:
- string
- 'null'
callGasLimit:
type: string
verificationGasLimit:
type: string
preVerificationGas:
type: string
maxFeePerGas:
type: string
maxPriorityFeePerGas:
type: string
paymaster:
type:
- string
- 'null'
paymasterData:
type:
- string
- 'null'
signature:
type: string
entryPoint:
type: string
safeOperation:
oneOf:
- $ref: '#/components/schemas/SafeOperationResponse'
- type: 'null'
readOnly: true
required:
- callData
- callGasLimit
- entryPoint
- ethereumTxHash
- initCode
- maxFeePerGas
- maxPriorityFeePerGas
- nonce
- paymaster
- paymasterData
- preVerificationGas
- safeOperation
- sender
- signature
- userOperationHash
- verificationGasLimit
securitySchemes:
cookieAuth:
type: apiKey
in: cookie
name: sessionid
tokenAuth:
type: apiKey
in: header
name: Authorization
description: Token-based authentication with required prefix "Token"